From 141e1489b26cbf9a0e7879c00bcf72ecffd5688e Mon Sep 17 00:00:00 2001 From: Ivan Kokshaysky Date: Sat, 21 Jun 2008 03:28:54 +0400 Subject: [PATCH] --- yaml --- r: 98359 b: refs/heads/master c: a744e0160ac5804b763449aa34d3991dc21af0be h: refs/heads/master i: 98357: 09b8feb963481970da24baaaca8cf349112f21a5 98355: f26a110946fafcdda09a4115a5dabcc35db4bef0 98351: a1cfff810ed2c485fd8285e942aea1d3cd13b01a v: v3 --- [refs] | 2 +- trunk/arch/alpha/kernel/pci.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 3a9b979d53b1..c02f71fdb1b4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d559d4a24a3fed75bd890abcc1f95cd8d8dad6e1 +refs/heads/master: a744e0160ac5804b763449aa34d3991dc21af0be diff --git a/trunk/arch/alpha/kernel/pci.c b/trunk/arch/alpha/kernel/pci.c index 36ab22a7ea12..5cf45fc51343 100644 --- a/trunk/arch/alpha/kernel/pci.c +++ b/trunk/arch/alpha/kernel/pci.c @@ -71,6 +71,23 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82378, quirk_i static void __init quirk_cypress(struct pci_dev *dev) { + /* The Notorious Cy82C693 chip. */ + + /* The generic legacy mode IDE fixup in drivers/pci/probe.c + doesn't work correctly with the Cypress IDE controller as + it has non-standard register layout. Fix that. */ + if (dev->class >> 8 == PCI_CLASS_STORAGE_IDE) { + dev->resource[2].start = dev->resource[3].start = 0; + dev->resource[2].end = dev->resource[3].end = 0; + dev->resource[2].flags = dev->resource[3].flags = 0; + if (PCI_FUNC(dev->devfn) == 2) { + dev->resource[0].start = 0x170; + dev->resource[0].end = 0x177; + dev->resource[1].start = 0x376; + dev->resource[1].end = 0x376; + } + } + /* The Cypress bridge responds on the PCI bus in the address range 0xffff0000-0xffffffff (conventional x86 BIOS ROM). There is no way to turn this off. The bridge also supports several extended