]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - src/patches/linux-h12y-mmio-quirks.patch
Added new Addon sslh Deamon for ssh/ssl proxy on red
[people/pmueller/ipfire-2.x.git] / src / patches / linux-h12y-mmio-quirks.patch
CommitLineData
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;