pci_write_config_word(info->dev, PCI_COMMAND, cmd);
}
-static int xgi_post_vbios(xgi_ioctl_post_vbios_t * info)
-{
- return 1;
-}
-
/*
* struct pci_device_id {
* unsigned int vendor, device; // Vendor and device ID or PCI_ANY_ID
void __exit xgi_exit_module(void)
{
int i;
- xgi_info_t *info, *max_devices;
#ifdef CONFIG_DEVFS_FS
- /*
- XGI_DEVFS_REMOVE_CONTROL();
- for (i = 0; i < XGI_MAX_DEVICES; i++)
- XGI_DEVFS_REMOVE_DEVICE(i);
- */
XGI_DEVFS_REMOVE_DEVICE(xgi_num_devices);
#endif
BOOL is_wrong_signal = FALSE;
static U32 last_int_tick_low,
last_int_tick_high;
- static U32 new_int_tick_low, new_int_tick_high;
+ static U32 new_int_tick_low;
static U32 continoue_int_count = 0;
// OE II is busy.
while (old_ge_status & 0x001c0000) {
BOOL xgi_crt_irq_handler(xgi_info_t * info)
{
BOOL ret = FALSE;
- U8 *mmio_vbase = info->mmio.vbase;
- U32 device_status = 0;
- U32 hw_status = 0;
U8 save_3ce = bReadReg(0x3ce);
if (bIn3cf(0x37) & 0x01) // CRT1 interrupt just happened
// What happened?
op3cf_37 = bIn3cf(0x37);
-#if 0
- if (op3cf_37 & 0x04)
- device_status |= GDEVST_CONNECT;
- else
- device_status &= ~GDEVST_CONNECT;
-
- device_status |= GDEVST_DEVICE_CHANGED;
- hw_status |= HWST_DEVICE_CHANGED;
-#endif
// Clear CRT interrupt
op3cf_3d = bIn3cf(0x3d);
bOut3cf(0x3d, (op3cf_3d | 0x04));
BOOL xgi_dvi_irq_handler(xgi_info_t * info)
{
BOOL ret = FALSE;
- U8 *mmio_vbase = info->mmio.vbase;
- U32 device_status = 0;
- U32 hw_status = 0;
U8 save_3ce = bReadReg(0x3ce);
if (bIn3cf(0x38) & 0x20) // DVI interrupt just happened
// What happened?
op3cf_37 = bIn3cf(0x37);
-#if 0
- //Also update our internal flag
- if (op3cf_37 & 0x10) // Second Monitor plugged In
- {
- device_status |= GDEVST_CONNECT;
- //Because currenly we cannot determine if DVI digital
- //or DVI analog is connected according to DVI interrupt
- //We should still call BIOS to check it when utility ask us
- device_status &= ~GDEVST_CHECKED;
- } else {
- device_status &= ~GDEVST_CONNECT;
- }
-#endif
+
//Notify BIOS that DVI plug/unplug happened
op3x5_5a = bIn3x5(0x5a);
bOut3x5(0x5a, op3x5_5a & 0xf7);
bWriteReg(0x3d4, save_3x4);
- //device_status |= GDEVST_DEVICE_CHANGED;
- //hw_status |= HWST_DEVICE_CHANGED;
-
// Clear DVI interrupt
op3cf_39 = bIn3cf(0x39);
bOut3c5(0x39, (op3cf_39 & ~0x01)); //Set 3cf.39 bit 0 to 0