added capability to driver to run without an INT assigned. Driver now autodisables 'Sync_to_Retrace' functionality if it finds no INT assigned, instead of not loading/running the driver at all. This should enable some users outthere to finally run the nVidia driver on their systems. Bumped version to 0.56. Note: While driver has been tested with INT assigned, it has not yet been tested without it. (got to find a system which has the option or fixed disabled BIOS setting).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14438 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rudolf Cornelissen
2005-10-20 09:00:38 +00:00
parent 1c88c851ad
commit ce3fc95ee4
4 changed files with 25 additions and 12 deletions
+5 -2
View File
@@ -4,7 +4,7 @@
Other authors:
Mark Watson
Rudolf Cornelissen 9/2002-5/2003
Rudolf Cornelissen 9/2002-10/2005
*/
#define MODULE_BIT 0x02000000
@@ -156,5 +156,8 @@ status_t GET_PIXEL_CLOCK_LIMITS(display_mode *dm, uint32 *low, uint32 *high)
/* Return the semaphore id that will be used to signal a vertical sync occured. */
sem_id ACCELERANT_RETRACE_SEMAPHORE(void)
{
return si->vblank;
if (si->ps.int_assigned)
return si->vblank;
else
return B_ERROR;
}
@@ -17,15 +17,19 @@
Enable/Disable interrupts. Just a wrapper around the
ioctl() to the kernel driver.
*/
static void interrupt_enable(bool flag) {
status_t result;
static void interrupt_enable(bool flag)
{
status_t result = B_OK;
nv_set_bool_state sbs;
/* set the magic number so the driver knows we're for real */
sbs.magic = NV_PRIVATE_DATA_MAGIC;
sbs.do_it = flag;
/* contact driver and get a pointer to the registers and shared data */
result = ioctl(fd, NV_RUN_INTERRUPTS, &sbs, sizeof(sbs));
if (si->ps.int_assigned)
{
/* set the magic number so the driver knows we're for real */
sbs.magic = NV_PRIVATE_DATA_MAGIC;
sbs.do_it = flag;
/* contact driver and get a pointer to the registers and shared data */
result = ioctl(fd, NV_RUN_INTERRUPTS, &sbs, sizeof(sbs));
}
}
/* First validate the mode, then call lots of bit banging stuff to set the mode(s)! */
@@ -1,7 +1,7 @@
/* Authors:
Mark Watson 12/1999,
Apsed,
Rudolf Cornelissen 10/2002-9/2005
Rudolf Cornelissen 10/2002-10/2005
*/
#define MODULE_BIT 0x00008000
@@ -91,7 +91,13 @@ status_t nv_general_powerup()
{
status_t status;
LOG(1,("POWERUP: Haiku nVidia Accelerant 0.55 running.\n"));
/* log VBLANK INT usability status */
if (si->ps.int_assigned)
LOG(4,("POWERUP: Usable INT assigned to HW; Vblank semaphore enabled\n"));
else
LOG(4,("POWERUP: No (usable) INT assigned to HW; Vblank semaphore disabled\n"));
LOG(1,("POWERUP: Haiku nVidia Accelerant 0.56 running.\n"));
/* preset no laptop */
si->ps.laptop = false;
@@ -1,7 +1,7 @@
/* Read initialisation information from card */
/* some bits are hacks, where PINS is not known */
/* Author:
Rudolf Cornelissen 7/2003-9/2005
Rudolf Cornelissen 7/2003-10/2005
*/
#define MODULE_BIT 0x00002000