ALi M1543(C) and SiS 551x IDE fixes.
This commit is contained in:
@@ -782,9 +782,9 @@ ali5229_write(int func, int addr, uint8_t val, void *priv)
|
||||
/* Datasheet erratum: the PCI BAR's actually have different sizes. */
|
||||
if (addr == 0x20)
|
||||
dev->ide_conf[addr] = (val & 0xe0) | 0x01;
|
||||
else if ((addr & 0x43) == 0x00)
|
||||
else if ((addr & 0x07) == 0x00)
|
||||
dev->ide_conf[addr] = (val & 0xf8) | 0x01;
|
||||
else if ((addr & 0x43) == 0x40)
|
||||
else if ((addr & 0x07) == 0x04)
|
||||
dev->ide_conf[addr] = (val & 0xfc) | 0x01;
|
||||
else
|
||||
dev->ide_conf[addr] = val;
|
||||
|
@@ -224,6 +224,10 @@ sis_5513_ide_write(int addr, uint8_t val, void *priv)
|
||||
case 0x20 ... 0x21:
|
||||
if (addr == 0x20)
|
||||
dev->pci_conf[addr] = (val & 0xe0) | 0x01;
|
||||
else if ((addr & 0x07) == 0x00)
|
||||
dev->pci_conf[addr] = (val & 0xf8) | 0x01;
|
||||
else if ((addr & 0x07) == 0x04)
|
||||
dev->pci_conf[addr] = (val & 0xfc) | 0x01;
|
||||
else
|
||||
dev->pci_conf[addr] = val;
|
||||
sis_5513_ide_handler(dev);
|
||||
|
Reference in New Issue
Block a user