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:
|
Other authors:
|
||||||
Mark Watson
|
Mark Watson
|
||||||
Rudolf Cornelissen 9/2002-5/2003
|
Rudolf Cornelissen 9/2002-10/2005
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MODULE_BIT 0x02000000
|
#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. */
|
/* Return the semaphore id that will be used to signal a vertical sync occured. */
|
||||||
sem_id ACCELERANT_RETRACE_SEMAPHORE(void)
|
sem_id ACCELERANT_RETRACE_SEMAPHORE(void)
|
||||||
{
|
{
|
||||||
|
if (si->ps.int_assigned)
|
||||||
return si->vblank;
|
return si->vblank;
|
||||||
|
else
|
||||||
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,16 +17,20 @@
|
|||||||
Enable/Disable interrupts. Just a wrapper around the
|
Enable/Disable interrupts. Just a wrapper around the
|
||||||
ioctl() to the kernel driver.
|
ioctl() to the kernel driver.
|
||||||
*/
|
*/
|
||||||
static void interrupt_enable(bool flag) {
|
static void interrupt_enable(bool flag)
|
||||||
status_t result;
|
{
|
||||||
|
status_t result = B_OK;
|
||||||
nv_set_bool_state sbs;
|
nv_set_bool_state sbs;
|
||||||
|
|
||||||
|
if (si->ps.int_assigned)
|
||||||
|
{
|
||||||
/* set the magic number so the driver knows we're for real */
|
/* set the magic number so the driver knows we're for real */
|
||||||
sbs.magic = NV_PRIVATE_DATA_MAGIC;
|
sbs.magic = NV_PRIVATE_DATA_MAGIC;
|
||||||
sbs.do_it = flag;
|
sbs.do_it = flag;
|
||||||
/* contact driver and get a pointer to the registers and shared data */
|
/* contact driver and get a pointer to the registers and shared data */
|
||||||
result = ioctl(fd, NV_RUN_INTERRUPTS, &sbs, sizeof(sbs));
|
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)! */
|
/* First validate the mode, then call lots of bit banging stuff to set the mode(s)! */
|
||||||
status_t SET_DISPLAY_MODE(display_mode *mode_to_set)
|
status_t SET_DISPLAY_MODE(display_mode *mode_to_set)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* Authors:
|
/* Authors:
|
||||||
Mark Watson 12/1999,
|
Mark Watson 12/1999,
|
||||||
Apsed,
|
Apsed,
|
||||||
Rudolf Cornelissen 10/2002-9/2005
|
Rudolf Cornelissen 10/2002-10/2005
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MODULE_BIT 0x00008000
|
#define MODULE_BIT 0x00008000
|
||||||
@@ -91,7 +91,13 @@ status_t nv_general_powerup()
|
|||||||
{
|
{
|
||||||
status_t status;
|
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 */
|
/* preset no laptop */
|
||||||
si->ps.laptop = false;
|
si->ps.laptop = false;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* Read initialisation information from card */
|
/* Read initialisation information from card */
|
||||||
/* some bits are hacks, where PINS is not known */
|
/* some bits are hacks, where PINS is not known */
|
||||||
/* Author:
|
/* Author:
|
||||||
Rudolf Cornelissen 7/2003-9/2005
|
Rudolf Cornelissen 7/2003-10/2005
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MODULE_BIT 0x00002000
|
#define MODULE_BIT 0x00002000
|
||||||
|
|||||||
Reference in New Issue
Block a user