diff options
author | Olaf Hering <olaf@aepfle.de> | 2007-02-10 21:38:37 +0100 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-02-13 15:35:52 +1100 |
commit | 2d99c41f05fc2a26737aacf943db03ca89841199 (patch) | |
tree | 6eeb3fda8792be533988e8a58250f957a0dcb47d /arch/powerpc/platforms/pseries | |
parent | 872758563d7f132d25fc06857bd19df06c5c70c7 (diff) |
[POWERPC] Mark winbond IDE PCI resources with start 0 as unassigned
libata calls pci_request_regions to claim PCI BAR 0 - 5
pci_request_regions fails if one of the regions cant be claimed.
bar 5 has start == 0, __request_resource will fail.
Tested on a p630 in SMP mode with pata_sl82c105
00:03.1 IDE interface: Symphony Labs SL82c105 (rev 05) (prog-if 8f [Master SecP SecO PriP PriO])
Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin A routed to IRQ 86
Region 0: I/O ports at 3fd3000f000 [size=8]
Region 1: I/O ports at 3fd3000f010 [size=4]
Region 2: I/O ports at 3fd3000f020 [size=8]
Region 3: I/O ports at 3fd3000f030 [size=4]
Region 4: I/O ports at 3fd3000f040 [size=16]
Region 5: I/O ports at 3fd30000000 [size=16]
00: ad 10 05 01 41 01 80 02 05 8f 01 01 08 48 80 00
10: 01 f0 00 00 11 f0 00 00 21 f0 00 00 31 f0 00 00
20: 41 f0 00 00 01 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 56 01 02 28
40: b3 08 ff 00 09 09 00 00 09 09 00 00 09 09 00 00
50: 09 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
name "ide"
linux,phandle 00d5cdc0 (14011840)
assigned-addresses 81001910 00000000 0000f000 00000000 00000008 81001914
00000000 0000f010 00000000 00000004 81001918 00000000
0000f020 00000000 00000008 8100191c 00000000 0000f030
00000000 00000004 81001920 00000000 0000f040 00000000
00000010 81001924 00000000 00000000 00000000 00000010
interrupts 00000003
built-in
#size-cells 00000000
#address-cells 00000001
device_type "ide"
reg 00001900 00000000 00000000 00000000 00000000
41001910 00000000 00000000 00000000 00000008
41001914 00000000 00000000 00000000 00000004
41001918 00000000 00000000 00000000 00000008
4100191c 00000000 00000000 00000000 00000004
41001920 00000000 00000000 00000000 00000010
41001924 00000000 00000000 00000000 00000010
compatible "pci10ad,105"
"pciclass,01018f"
ibm,fw-slot-number 00000000
fast-back-to-back
devsel-speed 00000001
max-latency 00000028 (40)
min-grant 00000002
class-code 0001018f (65935)
revision-id 00000005
device-id 00000105 (261)
vendor-id 000010ad (4269)
ibm,loc-code "U0.1-P1/Q6"
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/platforms/pseries')
-rw-r--r-- | arch/powerpc/platforms/pseries/pci.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/pseries/pci.c b/arch/powerpc/platforms/pseries/pci.c index c69bd15ced9..fa59124ce3f 100644 --- a/arch/powerpc/platforms/pseries/pci.c +++ b/arch/powerpc/platforms/pseries/pci.c @@ -98,6 +98,10 @@ static void fixup_winbond_82c105(struct pci_dev* dev) if (dev->resource[i].flags & IORESOURCE_IO && dev->bus->number == 0 && dev->devfn == 0x81) dev->resource[i].flags &= ~IORESOURCE_IO; + if (dev->resource[i].start == 0 && dev->resource[i].end) { + dev->resource[i].flags = 0; + dev->resource[i].end = 0; + } } } DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_WINBOND, PCI_DEVICE_ID_WINBOND_82C105, |