]>
Commit | Line | Data |
---|---|---|
2219b263 AF |
1 | --- linux/drivers/pci/quirks.c 2008-09-08 20:33:16.000000000 +0200 |
2 | +++ linux/drivers/pci/quirks.c 2008-10-06 16:37:35.000000000 +0200 | |
3 | @@ -1381,6 +1381,82 @@ | |
8a1d5ea4 AF |
4 | PCI_DEVICE_ID_TOSHIBA_TC86C001_IDE, |
5 | quirk_tc86c001_ide); | |
6 | ||
7 | +/* | |
8 | + * The Twinhad H12Y assign mmio (0xffbfe800-0xffbfecff) | |
9 | + * resources that seems to be used by an unknown device. | |
10 | + * This quirk reserve more than really used mmio space to | |
11 | + * force change the mmio area of the cardreader and the network chip. | |
2219b263 AF |
12 | + * See http://bugzilla.kernel.org/show_bug.cgi?id=10231 |
13 | + * and http://bugzilla.kernel.org/show_bug.cgi?id=9905 | |
8a1d5ea4 AF |
14 | + * for more details |
15 | + */ | |
16 | +static void __init quirk_h12y_1_mmio(struct pci_dev *dev) | |
17 | +{ | |
18 | +/* | |
19 | + * Network Device: Realtek 8139C of Twinhead H12Y | |
20 | + * PCI VENDOR: 0x10EC PCI ID:0x8139 | |
21 | + * SUB VENDOR: 0x14FF SUB ID:0xA003 | |
22 | + */ | |
23 | + struct resource *r = &dev->resource[1]; | |
24 | + if ((dev->subsystem_vendor) == 0x14FF && | |
25 | + (dev->subsystem_device) == 0xA003) { | |
26 | + r->start = 0; | |
27 | + r->end = 0x03ff; | |
28 | + } | |
29 | +} | |
30 | +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_REALTEK, | |
31 | + PCI_DEVICE_ID_REALTEK_8139, | |
32 | + quirk_h12y_1_mmio); | |
33 | + | |
34 | +static void __init quirk_h12y_2_mmio(struct pci_dev *dev) | |
35 | +{ | |
36 | +/* | |
37 | + * SD-Cardreader Device: O2 7120 of Twinhead H12Y | |
38 | + * PCI VENDOR: 0x1217 PCI ID:0x7120 | |
39 | + * SUB VENDOR: 0x14FF SUB ID:0xA003 | |
40 | + */ | |
41 | + struct resource *r = &dev->resource[0]; | |
42 | + if ((dev->subsystem_vendor) == 0x14FF && | |
43 | + (dev->subsystem_device) == 0xA003) { | |
44 | + r->start = 0; | |
45 | + r->end = 0x03ff; | |
46 | + } | |
47 | +} | |
48 | +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_O2,0x7120,quirk_h12y_2_mmio); | |
49 | + | |
2219b263 AF |
50 | +static void __init quirk_h12y_3_mmio(struct pci_dev *dev) |
51 | +{ | |
52 | +/* | |
53 | + * Firewire Device: O2 00F7 of Twinhead H12Y | |
54 | + * PCI VENDOR: 0x1217 PCI ID:0x00F7 | |
55 | + * SUB VENDOR: 0x14FF SUB ID:0xA003 | |
56 | + */ | |
57 | + struct resource *r = &dev->resource[1]; | |
58 | + if ((dev->subsystem_vendor) == 0x14FF && | |
59 | + (dev->subsystem_device) == 0xA003) { | |
60 | + r->start = 0; | |
61 | + r->end = 0x0fff; | |
62 | + } | |
63 | +} | |
64 | +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_O2,0x00F7,quirk_h12y_3_mmio); | |
65 | + | |
66 | +static void __init quirk_h12y_4_mmio(struct pci_dev *dev) | |
67 | +{ | |
68 | +/* | |
69 | + * MS-Cardreader Device: O2 7130 of Twinhead H12Y | |
70 | + * PCI VENDOR: 0x1217 PCI ID:0x7130 | |
71 | + * SUB VENDOR: 0x14FF SUB ID:0xA003 | |
72 | + */ | |
73 | + struct resource *r = &dev->resource[0]; | |
74 | + if ((dev->subsystem_vendor) == 0x14FF && | |
75 | + (dev->subsystem_device) == 0xA003) { | |
76 | + r->start = 0; | |
77 | + r->end = 0x1fff; | |
78 | + } | |
79 | +} | |
80 | +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_O2,0x7130,quirk_h12y_4_mmio); | |
81 | + | |
8a1d5ea4 AF |
82 | + |
83 | static void __devinit quirk_netmos(struct pci_dev *dev) | |
84 | { | |
85 | unsigned int num_parallel = (dev->subsystem_device & 0xf0) >> 4; |