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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user