diff options
Diffstat (limited to 'drivers/ide/pci/generic.c')
-rw-r--r-- | drivers/ide/pci/generic.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/drivers/ide/pci/generic.c b/drivers/ide/pci/generic.c index f82e82109728..78810ba982e9 100644 --- a/drivers/ide/pci/generic.c +++ b/drivers/ide/pci/generic.c | |||
@@ -180,6 +180,36 @@ static ide_pci_device_t generic_chipsets[] __devinitdata = { | |||
180 | .channels = 2, | 180 | .channels = 2, |
181 | .autodma = AUTODMA, | 181 | .autodma = AUTODMA, |
182 | .bootable = OFF_BOARD, | 182 | .bootable = OFF_BOARD, |
183 | },{ /* 15 */ | ||
184 | .name = "JMB361", | ||
185 | .init_hwif = init_hwif_generic, | ||
186 | .channels = 2, | ||
187 | .autodma = AUTODMA, | ||
188 | .bootable = OFF_BOARD, | ||
189 | },{ /* 16 */ | ||
190 | .name = "JMB363", | ||
191 | .init_hwif = init_hwif_generic, | ||
192 | .channels = 2, | ||
193 | .autodma = AUTODMA, | ||
194 | .bootable = OFF_BOARD, | ||
195 | },{ /* 17 */ | ||
196 | .name = "JMB365", | ||
197 | .init_hwif = init_hwif_generic, | ||
198 | .channels = 2, | ||
199 | .autodma = AUTODMA, | ||
200 | .bootable = OFF_BOARD, | ||
201 | },{ /* 18 */ | ||
202 | .name = "JMB366", | ||
203 | .init_hwif = init_hwif_generic, | ||
204 | .channels = 2, | ||
205 | .autodma = AUTODMA, | ||
206 | .bootable = OFF_BOARD, | ||
207 | },{ /* 19 */ | ||
208 | .name = "JMB368", | ||
209 | .init_hwif = init_hwif_generic, | ||
210 | .channels = 2, | ||
211 | .autodma = AUTODMA, | ||
212 | .bootable = OFF_BOARD, | ||
183 | } | 213 | } |
184 | }; | 214 | }; |
185 | 215 | ||
@@ -212,6 +242,9 @@ static int __devinit generic_init_one(struct pci_dev *dev, const struct pci_devi | |||
212 | (!(PCI_FUNC(dev->devfn) & 1))) | 242 | (!(PCI_FUNC(dev->devfn) & 1))) |
213 | goto out; | 243 | goto out; |
214 | 244 | ||
245 | if (dev->vendor == PCI_VENDOR_ID_JMICRON && PCI_FUNC(dev->devfn) != 1) | ||
246 | goto out; | ||
247 | |||
215 | pci_read_config_word(dev, PCI_COMMAND, &command); | 248 | pci_read_config_word(dev, PCI_COMMAND, &command); |
216 | if (!(command & PCI_COMMAND_IO)) { | 249 | if (!(command & PCI_COMMAND_IO)) { |
217 | printk(KERN_INFO "Skipping disabled %s IDE controller.\n", d->name); | 250 | printk(KERN_INFO "Skipping disabled %s IDE controller.\n", d->name); |
@@ -239,6 +272,11 @@ static struct pci_device_id generic_pci_tbl[] = { | |||
239 | { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12}, | 272 | { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12}, |
240 | { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 13}, | 273 | { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 13}, |
241 | { PCI_VENDOR_ID_NETCELL,PCI_DEVICE_ID_REVOLUTION, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 14}, | 274 | { PCI_VENDOR_ID_NETCELL,PCI_DEVICE_ID_REVOLUTION, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 14}, |
275 | { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB361, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 15}, | ||
276 | { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB363, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 16}, | ||
277 | { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB365, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 17}, | ||
278 | { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB366, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 18}, | ||
279 | { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB368, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 19}, | ||
242 | /* Must come last. If you add entries adjust this table appropriately and the init_one code */ | 280 | /* Must come last. If you add entries adjust this table appropriately and the init_one code */ |
243 | { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL, 0}, | 281 | { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL, 0}, |
244 | { 0, }, | 282 | { 0, }, |