diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-01-30 11:41:27 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-01-30 11:41:27 -0500 |
commit | 597049ccd729e80c5eff7d907beeb58d908aac6f (patch) | |
tree | 49e6ffd8838ed00923876fa3b1ed8a145444fd1a | |
parent | d3143e71a95fe504c3d2d4a3b7aac126a588b1ac (diff) | |
parent | e0b874df14052489e6408125903dba96b4dd7baa (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6:
via82cxxx/pata_via: correct PCI_DEVICE_ID_VIA_SATA_EIDE ID and add support for CX700 and 8237S
ide: unregister idepnp driver on unload
ide: add missing __init tags to IDE PCI host drivers
ia64: add pci_get_legacy_ide_irq()
ide/generic: Jmicron has its own drivers now
atiixp.c: add cable detection support for ATI IDE
atiixp.c: sb600 ide only has one channel
atiixp.c: remove unused code
jmicron: fix warning
ide: update MAINTAINERS entry
33 files changed, 71 insertions, 90 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index f0596e452c5c..1446cc41c12f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -1598,12 +1598,11 @@ M: ipslinux@adaptec.com | |||
1598 | W: http://www.developer.ibm.com/welcome/netfinity/serveraid.html | 1598 | W: http://www.developer.ibm.com/welcome/netfinity/serveraid.html |
1599 | S: Supported | 1599 | S: Supported |
1600 | 1600 | ||
1601 | IDE DRIVER [GENERAL] | 1601 | IDE SUBSYSTEM |
1602 | P: Bartlomiej Zolnierkiewicz | 1602 | P: Bartlomiej Zolnierkiewicz |
1603 | M: B.Zolnierkiewicz@elka.pw.edu.pl | 1603 | M: bzolnier@gmail.com |
1604 | L: linux-kernel@vger.kernel.org | ||
1605 | L: linux-ide@vger.kernel.org | 1604 | L: linux-ide@vger.kernel.org |
1606 | T: git kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6.git | 1605 | T: quilt kernel.org/pub/linux/kernel/people/bart/pata-2.6/ |
1607 | S: Maintained | 1606 | S: Maintained |
1608 | 1607 | ||
1609 | IDE/ATAPI CDROM DRIVER | 1608 | IDE/ATAPI CDROM DRIVER |
diff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c index f0d4f7e9ed31..0219419cae97 100644 --- a/drivers/ata/pata_via.c +++ b/drivers/ata/pata_via.c | |||
@@ -95,6 +95,7 @@ static const struct via_isa_bridge { | |||
95 | u8 rev_max; | 95 | u8 rev_max; |
96 | u16 flags; | 96 | u16 flags; |
97 | } via_isa_bridges[] = { | 97 | } via_isa_bridges[] = { |
98 | { "vt8237s", PCI_DEVICE_ID_VIA_8237S, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | ||
98 | { "vt8251", PCI_DEVICE_ID_VIA_8251, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | 99 | { "vt8251", PCI_DEVICE_ID_VIA_8251, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, |
99 | { "cx700", PCI_DEVICE_ID_VIA_CX700, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | 100 | { "cx700", PCI_DEVICE_ID_VIA_CX700, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, |
100 | { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST | VIA_NO_ENABLES}, | 101 | { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST | VIA_NO_ENABLES}, |
diff --git a/drivers/ide/ide-pnp.c b/drivers/ide/ide-pnp.c index df7d1504f84e..98410ca044cf 100644 --- a/drivers/ide/ide-pnp.c +++ b/drivers/ide/ide-pnp.c | |||
@@ -73,3 +73,8 @@ void __init pnpide_init(void) | |||
73 | { | 73 | { |
74 | pnp_register_driver(&idepnp_driver); | 74 | pnp_register_driver(&idepnp_driver); |
75 | } | 75 | } |
76 | |||
77 | void __exit pnpide_exit(void) | ||
78 | { | ||
79 | pnp_unregister_driver(&idepnp_driver); | ||
80 | } | ||
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c index 16890769dca6..3b334af0c7b9 100644 --- a/drivers/ide/ide.c +++ b/drivers/ide/ide.c | |||
@@ -1782,6 +1782,7 @@ done: | |||
1782 | } | 1782 | } |
1783 | 1783 | ||
1784 | extern void pnpide_init(void); | 1784 | extern void pnpide_init(void); |
1785 | extern void pnpide_exit(void); | ||
1785 | extern void h8300_ide_init(void); | 1786 | extern void h8300_ide_init(void); |
1786 | 1787 | ||
1787 | /* | 1788 | /* |
@@ -2094,6 +2095,10 @@ void cleanup_module (void) | |||
2094 | for (index = 0; index < MAX_HWIFS; ++index) | 2095 | for (index = 0; index < MAX_HWIFS; ++index) |
2095 | ide_unregister(index); | 2096 | ide_unregister(index); |
2096 | 2097 | ||
2098 | #ifdef CONFIG_BLK_DEV_IDEPNP | ||
2099 | pnpide_exit(); | ||
2100 | #endif | ||
2101 | |||
2097 | #ifdef CONFIG_PROC_FS | 2102 | #ifdef CONFIG_PROC_FS |
2098 | proc_ide_destroy(); | 2103 | proc_ide_destroy(); |
2099 | #endif | 2104 | #endif |
diff --git a/drivers/ide/pci/aec62xx.c b/drivers/ide/pci/aec62xx.c index f286079d233f..d261bfbad222 100644 --- a/drivers/ide/pci/aec62xx.c +++ b/drivers/ide/pci/aec62xx.c | |||
@@ -441,7 +441,7 @@ static struct pci_driver driver = { | |||
441 | .probe = aec62xx_init_one, | 441 | .probe = aec62xx_init_one, |
442 | }; | 442 | }; |
443 | 443 | ||
444 | static int aec62xx_ide_init(void) | 444 | static int __init aec62xx_ide_init(void) |
445 | { | 445 | { |
446 | return ide_pci_register_driver(&driver); | 446 | return ide_pci_register_driver(&driver); |
447 | } | 447 | } |
diff --git a/drivers/ide/pci/alim15x3.c b/drivers/ide/pci/alim15x3.c index 89109be5162c..68df77ec502b 100644 --- a/drivers/ide/pci/alim15x3.c +++ b/drivers/ide/pci/alim15x3.c | |||
@@ -907,7 +907,7 @@ static struct pci_driver driver = { | |||
907 | .probe = alim15x3_init_one, | 907 | .probe = alim15x3_init_one, |
908 | }; | 908 | }; |
909 | 909 | ||
910 | static int ali15x3_ide_init(void) | 910 | static int __init ali15x3_ide_init(void) |
911 | { | 911 | { |
912 | return ide_pci_register_driver(&driver); | 912 | return ide_pci_register_driver(&driver); |
913 | } | 913 | } |
diff --git a/drivers/ide/pci/amd74xx.c b/drivers/ide/pci/amd74xx.c index 753fe0e21456..a4336995a410 100644 --- a/drivers/ide/pci/amd74xx.c +++ b/drivers/ide/pci/amd74xx.c | |||
@@ -544,7 +544,7 @@ static struct pci_driver driver = { | |||
544 | .probe = amd74xx_probe, | 544 | .probe = amd74xx_probe, |
545 | }; | 545 | }; |
546 | 546 | ||
547 | static int amd74xx_ide_init(void) | 547 | static int __init amd74xx_ide_init(void) |
548 | { | 548 | { |
549 | return ide_pci_register_driver(&driver); | 549 | return ide_pci_register_driver(&driver); |
550 | } | 550 | } |
diff --git a/drivers/ide/pci/atiixp.c b/drivers/ide/pci/atiixp.c index 524e65de4398..982ac31fa995 100644 --- a/drivers/ide/pci/atiixp.c +++ b/drivers/ide/pci/atiixp.c | |||
@@ -291,8 +291,12 @@ fast_ata_pio: | |||
291 | 291 | ||
292 | static void __devinit init_hwif_atiixp(ide_hwif_t *hwif) | 292 | static void __devinit init_hwif_atiixp(ide_hwif_t *hwif) |
293 | { | 293 | { |
294 | u8 udma_mode = 0; | ||
295 | u8 ch = hwif->channel; | ||
296 | struct pci_dev *pdev = hwif->pci_dev; | ||
297 | |||
294 | if (!hwif->irq) | 298 | if (!hwif->irq) |
295 | hwif->irq = hwif->channel ? 15 : 14; | 299 | hwif->irq = ch ? 15 : 14; |
296 | 300 | ||
297 | hwif->autodma = 0; | 301 | hwif->autodma = 0; |
298 | hwif->tuneproc = &atiixp_tuneproc; | 302 | hwif->tuneproc = &atiixp_tuneproc; |
@@ -308,8 +312,12 @@ static void __devinit init_hwif_atiixp(ide_hwif_t *hwif) | |||
308 | hwif->mwdma_mask = 0x06; | 312 | hwif->mwdma_mask = 0x06; |
309 | hwif->swdma_mask = 0x04; | 313 | hwif->swdma_mask = 0x04; |
310 | 314 | ||
311 | /* FIXME: proper cable detection needed */ | 315 | pci_read_config_byte(pdev, ATIIXP_IDE_UDMA_MODE + ch, &udma_mode); |
312 | hwif->udma_four = 1; | 316 | if ((udma_mode & 0x07) >= 0x04 || (udma_mode & 0x70) >= 0x40) |
317 | hwif->udma_four = 1; | ||
318 | else | ||
319 | hwif->udma_four = 0; | ||
320 | |||
313 | hwif->ide_dma_host_on = &atiixp_ide_dma_host_on; | 321 | hwif->ide_dma_host_on = &atiixp_ide_dma_host_on; |
314 | hwif->ide_dma_host_off = &atiixp_ide_dma_host_off; | 322 | hwif->ide_dma_host_off = &atiixp_ide_dma_host_off; |
315 | hwif->ide_dma_check = &atiixp_dma_check; | 323 | hwif->ide_dma_check = &atiixp_dma_check; |
@@ -320,19 +328,6 @@ static void __devinit init_hwif_atiixp(ide_hwif_t *hwif) | |||
320 | hwif->drives[0].autodma = hwif->autodma; | 328 | hwif->drives[0].autodma = hwif->autodma; |
321 | } | 329 | } |
322 | 330 | ||
323 | static void __devinit init_hwif_sb600_legacy(ide_hwif_t *hwif) | ||
324 | { | ||
325 | |||
326 | hwif->atapi_dma = 1; | ||
327 | hwif->ultra_mask = 0x7f; | ||
328 | hwif->mwdma_mask = 0x07; | ||
329 | hwif->swdma_mask = 0x07; | ||
330 | |||
331 | if (!noautodma) | ||
332 | hwif->autodma = 1; | ||
333 | hwif->drives[0].autodma = hwif->autodma; | ||
334 | hwif->drives[1].autodma = hwif->autodma; | ||
335 | } | ||
336 | 331 | ||
337 | static ide_pci_device_t atiixp_pci_info[] __devinitdata = { | 332 | static ide_pci_device_t atiixp_pci_info[] __devinitdata = { |
338 | { /* 0 */ | 333 | { /* 0 */ |
@@ -343,12 +338,13 @@ static ide_pci_device_t atiixp_pci_info[] __devinitdata = { | |||
343 | .enablebits = {{0x48,0x01,0x00}, {0x48,0x08,0x00}}, | 338 | .enablebits = {{0x48,0x01,0x00}, {0x48,0x08,0x00}}, |
344 | .bootable = ON_BOARD, | 339 | .bootable = ON_BOARD, |
345 | },{ /* 1 */ | 340 | },{ /* 1 */ |
346 | .name = "ATI SB600 SATA Legacy IDE", | 341 | .name = "SB600_PATA", |
347 | .init_hwif = init_hwif_sb600_legacy, | 342 | .init_hwif = init_hwif_atiixp, |
348 | .channels = 2, | 343 | .channels = 1, |
349 | .autodma = AUTODMA, | 344 | .autodma = AUTODMA, |
350 | .bootable = ON_BOARD, | 345 | .enablebits = {{0x48,0x01,0x00}, {0x00,0x00,0x00}}, |
351 | } | 346 | .bootable = ON_BOARD, |
347 | }, | ||
352 | }; | 348 | }; |
353 | 349 | ||
354 | /** | 350 | /** |
@@ -369,7 +365,7 @@ static struct pci_device_id atiixp_pci_tbl[] = { | |||
369 | { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP200_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 365 | { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP200_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
370 | { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP300_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 366 | { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP300_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
371 | { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP400_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 367 | { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP400_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
372 | { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP600_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 368 | { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP600_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1}, |
373 | { 0, }, | 369 | { 0, }, |
374 | }; | 370 | }; |
375 | MODULE_DEVICE_TABLE(pci, atiixp_pci_tbl); | 371 | MODULE_DEVICE_TABLE(pci, atiixp_pci_tbl); |
@@ -380,7 +376,7 @@ static struct pci_driver driver = { | |||
380 | .probe = atiixp_init_one, | 376 | .probe = atiixp_init_one, |
381 | }; | 377 | }; |
382 | 378 | ||
383 | static int atiixp_ide_init(void) | 379 | static int __init atiixp_ide_init(void) |
384 | { | 380 | { |
385 | return ide_pci_register_driver(&driver); | 381 | return ide_pci_register_driver(&driver); |
386 | } | 382 | } |
diff --git a/drivers/ide/pci/cmd64x.c b/drivers/ide/pci/cmd64x.c index 20c32716bbc4..aee947e8fc38 100644 --- a/drivers/ide/pci/cmd64x.c +++ b/drivers/ide/pci/cmd64x.c | |||
@@ -793,7 +793,7 @@ static struct pci_driver driver = { | |||
793 | .probe = cmd64x_init_one, | 793 | .probe = cmd64x_init_one, |
794 | }; | 794 | }; |
795 | 795 | ||
796 | static int cmd64x_ide_init(void) | 796 | static int __init cmd64x_ide_init(void) |
797 | { | 797 | { |
798 | return ide_pci_register_driver(&driver); | 798 | return ide_pci_register_driver(&driver); |
799 | } | 799 | } |
diff --git a/drivers/ide/pci/cs5520.c b/drivers/ide/pci/cs5520.c index 079f7c86726b..ba6786aabf3b 100644 --- a/drivers/ide/pci/cs5520.c +++ b/drivers/ide/pci/cs5520.c | |||
@@ -260,7 +260,7 @@ static struct pci_driver driver = { | |||
260 | .probe = cs5520_init_one, | 260 | .probe = cs5520_init_one, |
261 | }; | 261 | }; |
262 | 262 | ||
263 | static int cs5520_ide_init(void) | 263 | static int __init cs5520_ide_init(void) |
264 | { | 264 | { |
265 | return ide_pci_register_driver(&driver); | 265 | return ide_pci_register_driver(&driver); |
266 | } | 266 | } |
diff --git a/drivers/ide/pci/cs5530.c b/drivers/ide/pci/cs5530.c index ae405fa32236..9bf5fdfc5b1f 100644 --- a/drivers/ide/pci/cs5530.c +++ b/drivers/ide/pci/cs5530.c | |||
@@ -374,7 +374,7 @@ static struct pci_driver driver = { | |||
374 | .probe = cs5530_init_one, | 374 | .probe = cs5530_init_one, |
375 | }; | 375 | }; |
376 | 376 | ||
377 | static int cs5530_ide_init(void) | 377 | static int __init cs5530_ide_init(void) |
378 | { | 378 | { |
379 | return ide_pci_register_driver(&driver); | 379 | return ide_pci_register_driver(&driver); |
380 | } | 380 | } |
diff --git a/drivers/ide/pci/cy82c693.c b/drivers/ide/pci/cy82c693.c index 64330c459bd4..9eafcbf444f4 100644 --- a/drivers/ide/pci/cy82c693.c +++ b/drivers/ide/pci/cy82c693.c | |||
@@ -519,7 +519,7 @@ static struct pci_driver driver = { | |||
519 | .probe = cy82c693_init_one, | 519 | .probe = cy82c693_init_one, |
520 | }; | 520 | }; |
521 | 521 | ||
522 | static int cy82c693_ide_init(void) | 522 | static int __init cy82c693_ide_init(void) |
523 | { | 523 | { |
524 | return ide_pci_register_driver(&driver); | 524 | return ide_pci_register_driver(&driver); |
525 | } | 525 | } |
diff --git a/drivers/ide/pci/generic.c b/drivers/ide/pci/generic.c index 9f306880491a..b408c6c517ea 100644 --- a/drivers/ide/pci/generic.c +++ b/drivers/ide/pci/generic.c | |||
@@ -185,36 +185,6 @@ static ide_pci_device_t generic_chipsets[] __devinitdata = { | |||
185 | .channels = 2, | 185 | .channels = 2, |
186 | .autodma = AUTODMA, | 186 | .autodma = AUTODMA, |
187 | .bootable = OFF_BOARD, | 187 | .bootable = OFF_BOARD, |
188 | },{ /* 15 */ | ||
189 | .name = "JMB361", | ||
190 | .init_hwif = init_hwif_generic, | ||
191 | .channels = 2, | ||
192 | .autodma = AUTODMA, | ||
193 | .bootable = OFF_BOARD, | ||
194 | },{ /* 16 */ | ||
195 | .name = "JMB363", | ||
196 | .init_hwif = init_hwif_generic, | ||
197 | .channels = 2, | ||
198 | .autodma = AUTODMA, | ||
199 | .bootable = OFF_BOARD, | ||
200 | },{ /* 17 */ | ||
201 | .name = "JMB365", | ||
202 | .init_hwif = init_hwif_generic, | ||
203 | .channels = 2, | ||
204 | .autodma = AUTODMA, | ||
205 | .bootable = OFF_BOARD, | ||
206 | },{ /* 18 */ | ||
207 | .name = "JMB366", | ||
208 | .init_hwif = init_hwif_generic, | ||
209 | .channels = 2, | ||
210 | .autodma = AUTODMA, | ||
211 | .bootable = OFF_BOARD, | ||
212 | },{ /* 19 */ | ||
213 | .name = "JMB368", | ||
214 | .init_hwif = init_hwif_generic, | ||
215 | .channels = 2, | ||
216 | .autodma = AUTODMA, | ||
217 | .bootable = OFF_BOARD, | ||
218 | } | 188 | } |
219 | }; | 189 | }; |
220 | 190 | ||
@@ -281,11 +251,6 @@ static struct pci_device_id generic_pci_tbl[] = { | |||
281 | { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12}, | 251 | { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12}, |
282 | { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 13}, | 252 | { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 13}, |
283 | { PCI_VENDOR_ID_NETCELL,PCI_DEVICE_ID_REVOLUTION, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 14}, | 253 | { PCI_VENDOR_ID_NETCELL,PCI_DEVICE_ID_REVOLUTION, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 14}, |
284 | { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB361, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 15}, | ||
285 | { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB363, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 16}, | ||
286 | { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB365, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 17}, | ||
287 | { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB366, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 18}, | ||
288 | { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB368, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 19}, | ||
289 | /* Must come last. If you add entries adjust this table appropriately and the init_one code */ | 254 | /* Must come last. If you add entries adjust this table appropriately and the init_one code */ |
290 | { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL, 0}, | 255 | { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL, 0}, |
291 | { 0, }, | 256 | { 0, }, |
@@ -298,7 +263,7 @@ static struct pci_driver driver = { | |||
298 | .probe = generic_init_one, | 263 | .probe = generic_init_one, |
299 | }; | 264 | }; |
300 | 265 | ||
301 | static int generic_ide_init(void) | 266 | static int __init generic_ide_init(void) |
302 | { | 267 | { |
303 | return ide_pci_register_driver(&driver); | 268 | return ide_pci_register_driver(&driver); |
304 | } | 269 | } |
diff --git a/drivers/ide/pci/hpt34x.c b/drivers/ide/pci/hpt34x.c index b46cb042290a..ce7b08f08a09 100644 --- a/drivers/ide/pci/hpt34x.c +++ b/drivers/ide/pci/hpt34x.c | |||
@@ -265,7 +265,7 @@ static struct pci_driver driver = { | |||
265 | .probe = hpt34x_init_one, | 265 | .probe = hpt34x_init_one, |
266 | }; | 266 | }; |
267 | 267 | ||
268 | static int hpt34x_ide_init(void) | 268 | static int __init hpt34x_ide_init(void) |
269 | { | 269 | { |
270 | return ide_pci_register_driver(&driver); | 270 | return ide_pci_register_driver(&driver); |
271 | } | 271 | } |
diff --git a/drivers/ide/pci/hpt366.c b/drivers/ide/pci/hpt366.c index 08119da06d54..b486442dd5d7 100644 --- a/drivers/ide/pci/hpt366.c +++ b/drivers/ide/pci/hpt366.c | |||
@@ -1613,7 +1613,7 @@ static struct pci_driver driver = { | |||
1613 | .probe = hpt366_init_one, | 1613 | .probe = hpt366_init_one, |
1614 | }; | 1614 | }; |
1615 | 1615 | ||
1616 | static int hpt366_ide_init(void) | 1616 | static int __init hpt366_ide_init(void) |
1617 | { | 1617 | { |
1618 | return ide_pci_register_driver(&driver); | 1618 | return ide_pci_register_driver(&driver); |
1619 | } | 1619 | } |
diff --git a/drivers/ide/pci/jmicron.c b/drivers/ide/pci/jmicron.c index c1cec236ecf0..35dda8fcd0ac 100644 --- a/drivers/ide/pci/jmicron.c +++ b/drivers/ide/pci/jmicron.c | |||
@@ -93,8 +93,9 @@ static int __devinit ata66_jmicron(ide_hwif_t *hwif) | |||
93 | return 0; | 93 | return 0; |
94 | return 1; | 94 | return 1; |
95 | case PORT_SATA: | 95 | case PORT_SATA: |
96 | return 1; | 96 | break; |
97 | } | 97 | } |
98 | return 1; /* Avoid bogus "control reaches end of non-void function" */ | ||
98 | } | 99 | } |
99 | 100 | ||
100 | static void jmicron_tuneproc (ide_drive_t *drive, byte mode_wanted) | 101 | static void jmicron_tuneproc (ide_drive_t *drive, byte mode_wanted) |
diff --git a/drivers/ide/pci/ns87415.c b/drivers/ide/pci/ns87415.c index d95714bcee4e..8aaea4ea5549 100644 --- a/drivers/ide/pci/ns87415.c +++ b/drivers/ide/pci/ns87415.c | |||
@@ -302,7 +302,7 @@ static struct pci_driver driver = { | |||
302 | .probe = ns87415_init_one, | 302 | .probe = ns87415_init_one, |
303 | }; | 303 | }; |
304 | 304 | ||
305 | static int ns87415_ide_init(void) | 305 | static int __init ns87415_ide_init(void) |
306 | { | 306 | { |
307 | return ide_pci_register_driver(&driver); | 307 | return ide_pci_register_driver(&driver); |
308 | } | 308 | } |
diff --git a/drivers/ide/pci/opti621.c b/drivers/ide/pci/opti621.c index 7a7c2ef78ac2..22bbf613f948 100644 --- a/drivers/ide/pci/opti621.c +++ b/drivers/ide/pci/opti621.c | |||
@@ -382,7 +382,7 @@ static struct pci_driver driver = { | |||
382 | .probe = opti621_init_one, | 382 | .probe = opti621_init_one, |
383 | }; | 383 | }; |
384 | 384 | ||
385 | static int opti621_ide_init(void) | 385 | static int __init opti621_ide_init(void) |
386 | { | 386 | { |
387 | return ide_pci_register_driver(&driver); | 387 | return ide_pci_register_driver(&driver); |
388 | } | 388 | } |
diff --git a/drivers/ide/pci/pdc202xx_new.c b/drivers/ide/pci/pdc202xx_new.c index 7cb48576e479..77a9aaa7dab9 100644 --- a/drivers/ide/pci/pdc202xx_new.c +++ b/drivers/ide/pci/pdc202xx_new.c | |||
@@ -756,7 +756,7 @@ static struct pci_driver driver = { | |||
756 | .probe = pdc202new_init_one, | 756 | .probe = pdc202new_init_one, |
757 | }; | 757 | }; |
758 | 758 | ||
759 | static int pdc202new_ide_init(void) | 759 | static int __init pdc202new_ide_init(void) |
760 | { | 760 | { |
761 | return ide_pci_register_driver(&driver); | 761 | return ide_pci_register_driver(&driver); |
762 | } | 762 | } |
diff --git a/drivers/ide/pci/pdc202xx_old.c b/drivers/ide/pci/pdc202xx_old.c index 184cdacddeb6..143239c093d5 100644 --- a/drivers/ide/pci/pdc202xx_old.c +++ b/drivers/ide/pci/pdc202xx_old.c | |||
@@ -719,7 +719,7 @@ static struct pci_driver driver = { | |||
719 | .probe = pdc202xx_init_one, | 719 | .probe = pdc202xx_init_one, |
720 | }; | 720 | }; |
721 | 721 | ||
722 | static int pdc202xx_ide_init(void) | 722 | static int __init pdc202xx_ide_init(void) |
723 | { | 723 | { |
724 | return ide_pci_register_driver(&driver); | 724 | return ide_pci_register_driver(&driver); |
725 | } | 725 | } |
diff --git a/drivers/ide/pci/rz1000.c b/drivers/ide/pci/rz1000.c index 5f6950c2d1d1..c1855311052b 100644 --- a/drivers/ide/pci/rz1000.c +++ b/drivers/ide/pci/rz1000.c | |||
@@ -77,7 +77,7 @@ static struct pci_driver driver = { | |||
77 | .probe = rz1000_init_one, | 77 | .probe = rz1000_init_one, |
78 | }; | 78 | }; |
79 | 79 | ||
80 | static int rz1000_ide_init(void) | 80 | static int __init rz1000_ide_init(void) |
81 | { | 81 | { |
82 | return ide_pci_register_driver(&driver); | 82 | return ide_pci_register_driver(&driver); |
83 | } | 83 | } |
diff --git a/drivers/ide/pci/sc1200.c b/drivers/ide/pci/sc1200.c index ff80937d94dd..8d762d323f8b 100644 --- a/drivers/ide/pci/sc1200.c +++ b/drivers/ide/pci/sc1200.c | |||
@@ -507,7 +507,7 @@ static struct pci_driver driver = { | |||
507 | #endif | 507 | #endif |
508 | }; | 508 | }; |
509 | 509 | ||
510 | static int sc1200_ide_init(void) | 510 | static int __init sc1200_ide_init(void) |
511 | { | 511 | { |
512 | return ide_pci_register_driver(&driver); | 512 | return ide_pci_register_driver(&driver); |
513 | } | 513 | } |
diff --git a/drivers/ide/pci/serverworks.c b/drivers/ide/pci/serverworks.c index 057548d07205..ea9a28a45853 100644 --- a/drivers/ide/pci/serverworks.c +++ b/drivers/ide/pci/serverworks.c | |||
@@ -666,7 +666,7 @@ static struct pci_driver driver = { | |||
666 | .probe = svwks_init_one, | 666 | .probe = svwks_init_one, |
667 | }; | 667 | }; |
668 | 668 | ||
669 | static int svwks_ide_init(void) | 669 | static int __init svwks_ide_init(void) |
670 | { | 670 | { |
671 | return ide_pci_register_driver(&driver); | 671 | return ide_pci_register_driver(&driver); |
672 | } | 672 | } |
diff --git a/drivers/ide/pci/sgiioc4.c b/drivers/ide/pci/sgiioc4.c index cfad09accf52..b0bf01809279 100644 --- a/drivers/ide/pci/sgiioc4.c +++ b/drivers/ide/pci/sgiioc4.c | |||
@@ -762,8 +762,7 @@ static struct ioc4_submodule ioc4_ide_submodule = { | |||
762 | /* .is_remove = ioc4_ide_remove_one, */ | 762 | /* .is_remove = ioc4_ide_remove_one, */ |
763 | }; | 763 | }; |
764 | 764 | ||
765 | static int __devinit | 765 | static int __init ioc4_ide_init(void) |
766 | ioc4_ide_init(void) | ||
767 | { | 766 | { |
768 | return ioc4_register_submodule(&ioc4_ide_submodule); | 767 | return ioc4_register_submodule(&ioc4_ide_submodule); |
769 | } | 768 | } |
diff --git a/drivers/ide/pci/siimage.c b/drivers/ide/pci/siimage.c index 697f566fb90a..4ff89c7d990a 100644 --- a/drivers/ide/pci/siimage.c +++ b/drivers/ide/pci/siimage.c | |||
@@ -1096,7 +1096,7 @@ static struct pci_driver driver = { | |||
1096 | .probe = siimage_init_one, | 1096 | .probe = siimage_init_one, |
1097 | }; | 1097 | }; |
1098 | 1098 | ||
1099 | static int siimage_ide_init(void) | 1099 | static int __init siimage_ide_init(void) |
1100 | { | 1100 | { |
1101 | return ide_pci_register_driver(&driver); | 1101 | return ide_pci_register_driver(&driver); |
1102 | } | 1102 | } |
diff --git a/drivers/ide/pci/sis5513.c b/drivers/ide/pci/sis5513.c index 6b313139b5e4..1afff659ab55 100644 --- a/drivers/ide/pci/sis5513.c +++ b/drivers/ide/pci/sis5513.c | |||
@@ -968,7 +968,7 @@ static struct pci_driver driver = { | |||
968 | .probe = sis5513_init_one, | 968 | .probe = sis5513_init_one, |
969 | }; | 969 | }; |
970 | 970 | ||
971 | static int sis5513_ide_init(void) | 971 | static int __init sis5513_ide_init(void) |
972 | { | 972 | { |
973 | return ide_pci_register_driver(&driver); | 973 | return ide_pci_register_driver(&driver); |
974 | } | 974 | } |
diff --git a/drivers/ide/pci/sl82c105.c b/drivers/ide/pci/sl82c105.c index 5afefe8692fe..170a26199050 100644 --- a/drivers/ide/pci/sl82c105.c +++ b/drivers/ide/pci/sl82c105.c | |||
@@ -492,7 +492,7 @@ static struct pci_driver driver = { | |||
492 | .probe = sl82c105_init_one, | 492 | .probe = sl82c105_init_one, |
493 | }; | 493 | }; |
494 | 494 | ||
495 | static int sl82c105_ide_init(void) | 495 | static int __init sl82c105_ide_init(void) |
496 | { | 496 | { |
497 | return ide_pci_register_driver(&driver); | 497 | return ide_pci_register_driver(&driver); |
498 | } | 498 | } |
diff --git a/drivers/ide/pci/slc90e66.c b/drivers/ide/pci/slc90e66.c index 9be7e49cba0e..90e79c0844d2 100644 --- a/drivers/ide/pci/slc90e66.c +++ b/drivers/ide/pci/slc90e66.c | |||
@@ -253,7 +253,7 @@ static struct pci_driver driver = { | |||
253 | .probe = slc90e66_init_one, | 253 | .probe = slc90e66_init_one, |
254 | }; | 254 | }; |
255 | 255 | ||
256 | static int slc90e66_ide_init(void) | 256 | static int __init slc90e66_ide_init(void) |
257 | { | 257 | { |
258 | return ide_pci_register_driver(&driver); | 258 | return ide_pci_register_driver(&driver); |
259 | } | 259 | } |
diff --git a/drivers/ide/pci/triflex.c b/drivers/ide/pci/triflex.c index 56d84931d6de..b13cce1fd1a6 100644 --- a/drivers/ide/pci/triflex.c +++ b/drivers/ide/pci/triflex.c | |||
@@ -173,7 +173,7 @@ static struct pci_driver driver = { | |||
173 | .probe = triflex_init_one, | 173 | .probe = triflex_init_one, |
174 | }; | 174 | }; |
175 | 175 | ||
176 | static int triflex_ide_init(void) | 176 | static int __init triflex_ide_init(void) |
177 | { | 177 | { |
178 | return ide_pci_register_driver(&driver); | 178 | return ide_pci_register_driver(&driver); |
179 | } | 179 | } |
diff --git a/drivers/ide/pci/trm290.c b/drivers/ide/pci/trm290.c index 2a282529bfc1..174b88c4780e 100644 --- a/drivers/ide/pci/trm290.c +++ b/drivers/ide/pci/trm290.c | |||
@@ -355,7 +355,7 @@ static struct pci_driver driver = { | |||
355 | .probe = trm290_init_one, | 355 | .probe = trm290_init_one, |
356 | }; | 356 | }; |
357 | 357 | ||
358 | static int trm290_ide_init(void) | 358 | static int __init trm290_ide_init(void) |
359 | { | 359 | { |
360 | return ide_pci_register_driver(&driver); | 360 | return ide_pci_register_driver(&driver); |
361 | } | 361 | } |
diff --git a/drivers/ide/pci/via82cxxx.c b/drivers/ide/pci/via82cxxx.c index 381cc6f101ce..a98b4d38b9dd 100644 --- a/drivers/ide/pci/via82cxxx.c +++ b/drivers/ide/pci/via82cxxx.c | |||
@@ -78,6 +78,8 @@ static struct via_isa_bridge { | |||
78 | u8 rev_max; | 78 | u8 rev_max; |
79 | u16 flags; | 79 | u16 flags; |
80 | } via_isa_bridges[] = { | 80 | } via_isa_bridges[] = { |
81 | { "cx7000", PCI_DEVICE_ID_VIA_CX700, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | ||
82 | { "vt8237s", PCI_DEVICE_ID_VIA_8237S, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | ||
81 | { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | 83 | { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, |
82 | { "vt8251", PCI_DEVICE_ID_VIA_8251, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | 84 | { "vt8251", PCI_DEVICE_ID_VIA_8251, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, |
83 | { "vt8237", PCI_DEVICE_ID_VIA_8237, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | 85 | { "vt8237", PCI_DEVICE_ID_VIA_8237, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, |
@@ -504,6 +506,7 @@ static struct pci_device_id via_pci_tbl[] = { | |||
504 | { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C576_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 506 | { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C576_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
505 | { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 507 | { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
506 | { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_6410, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1}, | 508 | { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_6410, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1}, |
509 | { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_SATA_EIDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1}, | ||
507 | { 0, }, | 510 | { 0, }, |
508 | }; | 511 | }; |
509 | MODULE_DEVICE_TABLE(pci, via_pci_tbl); | 512 | MODULE_DEVICE_TABLE(pci, via_pci_tbl); |
@@ -514,7 +517,7 @@ static struct pci_driver driver = { | |||
514 | .probe = via_init_one, | 517 | .probe = via_init_one, |
515 | }; | 518 | }; |
516 | 519 | ||
517 | static int via_ide_init(void) | 520 | static int __init via_ide_init(void) |
518 | { | 521 | { |
519 | return ide_pci_register_driver(&driver); | 522 | return ide_pci_register_driver(&driver); |
520 | } | 523 | } |
diff --git a/include/asm-ia64/pci.h b/include/asm-ia64/pci.h index 556f53fa44cb..5160233bbfac 100644 --- a/include/asm-ia64/pci.h +++ b/include/asm-ia64/pci.h | |||
@@ -167,4 +167,10 @@ pcibios_select_root(struct pci_dev *pdev, struct resource *res) | |||
167 | 167 | ||
168 | #define pcibios_scan_all_fns(a, b) 0 | 168 | #define pcibios_scan_all_fns(a, b) 0 |
169 | 169 | ||
170 | #define HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ | ||
171 | static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) | ||
172 | { | ||
173 | return channel ? 15 : 14; | ||
174 | } | ||
175 | |||
170 | #endif /* _ASM_IA64_PCI_H */ | 176 | #endif /* _ASM_IA64_PCI_H */ |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index f7a416c52edc..e642b99f9a92 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -1283,7 +1283,6 @@ | |||
1283 | #define PCI_DEVICE_ID_VIA_82C561 0x0561 | 1283 | #define PCI_DEVICE_ID_VIA_82C561 0x0561 |
1284 | #define PCI_DEVICE_ID_VIA_82C586_1 0x0571 | 1284 | #define PCI_DEVICE_ID_VIA_82C586_1 0x0571 |
1285 | #define PCI_DEVICE_ID_VIA_82C576 0x0576 | 1285 | #define PCI_DEVICE_ID_VIA_82C576 0x0576 |
1286 | #define PCI_DEVICE_ID_VIA_SATA_EIDE 0x0581 | ||
1287 | #define PCI_DEVICE_ID_VIA_82C586_0 0x0586 | 1286 | #define PCI_DEVICE_ID_VIA_82C586_0 0x0586 |
1288 | #define PCI_DEVICE_ID_VIA_82C596 0x0596 | 1287 | #define PCI_DEVICE_ID_VIA_82C596 0x0596 |
1289 | #define PCI_DEVICE_ID_VIA_82C597_0 0x0597 | 1288 | #define PCI_DEVICE_ID_VIA_82C597_0 0x0597 |
@@ -1326,6 +1325,8 @@ | |||
1326 | #define PCI_DEVICE_ID_VIA_8237 0x3227 | 1325 | #define PCI_DEVICE_ID_VIA_8237 0x3227 |
1327 | #define PCI_DEVICE_ID_VIA_8251 0x3287 | 1326 | #define PCI_DEVICE_ID_VIA_8251 0x3287 |
1328 | #define PCI_DEVICE_ID_VIA_8237A 0x3337 | 1327 | #define PCI_DEVICE_ID_VIA_8237A 0x3337 |
1328 | #define PCI_DEVICE_ID_VIA_8237S 0x3372 | ||
1329 | #define PCI_DEVICE_ID_VIA_SATA_EIDE 0x5324 | ||
1329 | #define PCI_DEVICE_ID_VIA_8231 0x8231 | 1330 | #define PCI_DEVICE_ID_VIA_8231 0x8231 |
1330 | #define PCI_DEVICE_ID_VIA_8231_4 0x8235 | 1331 | #define PCI_DEVICE_ID_VIA_8231_4 0x8235 |
1331 | #define PCI_DEVICE_ID_VIA_8365_1 0x8305 | 1332 | #define PCI_DEVICE_ID_VIA_8365_1 0x8305 |