preserve IRQ when splitting Jmicron devices

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23136 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Marcus Overhagen 2007-12-16 22:15:46 +00:00
parent 120453cdd0
commit 39ee19ec0c
1 changed files with 2 additions and 0 deletions

View File

@ -38,6 +38,7 @@ jmicron_fixup_ahci(PCI *pci, int domain, uint8 bus, uint8 device, uint8 function
dprintf("jmicron_fixup_ahci: 0xdc: 0x%08lx\n", pci->ReadPciConfig(domain, bus, device, function, 0xdc, 4));
uint32 val = pci->ReadPciConfig(domain, bus, device, function, 0xdc, 4);
if (!(val & (1 << 30))) {
uint8 irq = pci->ReadPciConfig(domain, bus, device, function, 0x3c, 1);
dprintf("jmicron_fixup_ahci: enabling split device mode\n");
val &= ~(1 << 24);
val |= (1 << 25) | (1 << 30);
@ -46,6 +47,7 @@ jmicron_fixup_ahci(PCI *pci, int domain, uint8 bus, uint8 device, uint8 function
val &= ~(1 << 16);
val |= (1 << 1) | (1 << 17) | (1 << 22);
pci->WritePciConfig(domain, bus, device, function, 0x40, 4, val);
pci->WritePciConfig(domain, bus, device, function, 0x3c, 1, irq);
}
dprintf("jmicron_fixup_ahci: 0x40: 0x%08lx\n", pci->ReadPciConfig(domain, bus, device, function, 0x40, 4));
dprintf("jmicron_fixup_ahci: 0xdc: 0x%08lx\n", pci->ReadPciConfig(domain, bus, device, function, 0xdc, 4));