From 39ee19ec0c12f52e821c0699d7faa6fcd5bffc1d Mon Sep 17 00:00:00 2001 From: Marcus Overhagen Date: Sun, 16 Dec 2007 22:15:46 +0000 Subject: [PATCH] preserve IRQ when splitting Jmicron devices git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23136 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/bus_managers/pci/pci_fixup.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/add-ons/kernel/bus_managers/pci/pci_fixup.cpp b/src/add-ons/kernel/bus_managers/pci/pci_fixup.cpp index 245c168118..a3cb6f74a7 100644 --- a/src/add-ons/kernel/bus_managers/pci/pci_fixup.cpp +++ b/src/add-ons/kernel/bus_managers/pci/pci_fixup.cpp @@ -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));