Correct Banshee subsystem ID.
This commit is contained in:
parent
fe96629ced
commit
cd7b41f73a
1 changed files with 39 additions and 5 deletions
|
|
@ -2330,11 +2330,11 @@ static uint8_t banshee_pci_read(int func, int addr, void *p)
|
|||
case 0x1a: ret = 0x00; break;
|
||||
case 0x1b: ret = 0x00; break;
|
||||
|
||||
/*Undocumented, but Voodoo 3 BIOS checks this*/
|
||||
case 0x2c: ret = 0x1a; break;
|
||||
case 0x2d: ret = 0x12; break;
|
||||
case 0x2e: ret = (banshee->type == TYPE_V3_3000) ? 0x3a : 0x30; break;
|
||||
case 0x2f: ret = 0x00; break;
|
||||
/*Subsystem vendor ID*/
|
||||
case 0x2c: ret = banshee->pci_regs[0x2c]; break;
|
||||
case 0x2d: ret = banshee->pci_regs[0x2d]; break;
|
||||
case 0x2e: ret = banshee->pci_regs[0x2e]; break;
|
||||
case 0x2f: ret = banshee->pci_regs[0x2f]; break;
|
||||
|
||||
case 0x30: ret = banshee->pci_regs[0x30] & 0x01; break; /*BIOS ROM address*/
|
||||
case 0x31: ret = 0x00; break;
|
||||
|
|
@ -2639,6 +2639,40 @@ static void *banshee_init_common(char *fn, int has_sgram, int type, int voodoo_t
|
|||
|
||||
ddc_init();
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case TYPE_BANSHEE:
|
||||
if (has_sgram)
|
||||
{
|
||||
banshee->pci_regs[0x2c] = 0x1a;
|
||||
banshee->pci_regs[0x2d] = 0x12;
|
||||
banshee->pci_regs[0x2e] = 0x04;
|
||||
banshee->pci_regs[0x2f] = 0x00;
|
||||
}
|
||||
else
|
||||
{
|
||||
banshee->pci_regs[0x2c] = 0x02;
|
||||
banshee->pci_regs[0x2d] = 0x11;
|
||||
banshee->pci_regs[0x2e] = 0x17;
|
||||
banshee->pci_regs[0x2f] = 0x10;
|
||||
}
|
||||
break;
|
||||
|
||||
case TYPE_V3_2000:
|
||||
banshee->pci_regs[0x2c] = 0x1a;
|
||||
banshee->pci_regs[0x2d] = 0x12;
|
||||
banshee->pci_regs[0x2e] = 0x30;
|
||||
banshee->pci_regs[0x2f] = 0x00;
|
||||
break;
|
||||
|
||||
case TYPE_V3_3000:
|
||||
banshee->pci_regs[0x2c] = 0x1a;
|
||||
banshee->pci_regs[0x2d] = 0x12;
|
||||
banshee->pci_regs[0x2e] = 0x3a;
|
||||
banshee->pci_regs[0x2f] = 0x00;
|
||||
break;
|
||||
}
|
||||
|
||||
return banshee;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue