linux/drivers/ata
Linus Torvalds dc87c3985e libata: honour host controllers that want just one host
The Marvell IDE interface on my machine would hit a BUG_ON() in
lib/iomem.c because it was calling ata_pci_init_one() specifying just a
single port on the host, but that would actually end up trying to
initialize two ports, the second one with bogus information.

This fixes "ata_pci_init_one()" so that it actually passes down the
n_ports variable that it got from the low-level driver to the host
allocation routine ("ata_host_alloc_pinfo()"), which results in the ATA
layer actually having the correct port number information.

And in order to make it all work, I also needed to fix a few places that
had incorrectly hard-coded the fact that a host always had exactly two
ports (both ata_pci_init_bmdma() and ata_request_legacy_irqs() would
just always iterate over both ports).

Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-04-30 17:43:48 -07:00
..
ahci.c ahci: consolidate common port flags 2007-04-28 14:51:33 -04:00
ata_generic.c pata: cable methods 2007-04-28 14:16:01 -04:00
ata_piix.c pata: cable methods 2007-04-28 14:16:01 -04:00
Kconfig libata/IDE: remove combined mode quirk 2007-04-28 14:15:59 -04:00
libata-acpi.c [libata] Disable ACPI by default; fix namespace problems 2007-03-28 01:57:37 -04:00
libata-core.c ata: printk warning fixes 2007-04-28 15:16:21 -04:00
libata-eh.c libata: separate ATA_EHI_DID_RESET into DID_SOFTRESET and DID_HARDRESET 2007-04-28 14:51:33 -04:00
libata-scsi.c libata: separate out ata_host_alloc() and ata_host_register() 2007-04-28 14:16:03 -04:00
libata-sff.c libata: honour host controllers that want just one host 2007-04-30 17:43:48 -07:00
libata.h libata: kill probe_ent and related helpers 2007-04-28 14:16:06 -04:00
Makefile pata_cmd640: CMD640 PCI support 2007-04-28 14:15:55 -04:00
pata_ali.c pata_ali: remove all the crap again and switch to cable_detect method 2007-04-28 14:16:00 -04:00
pata_amd.c pata_amd: remove contamination added during cable_detect conversion 2007-04-28 14:46:18 -04:00
pata_artop.c [libata] More PATA driver ->cable_detect support 2007-04-28 14:15:57 -04:00
pata_atiixp.c pata_atiixp: support ->cable_detect 2007-04-28 14:15:57 -04:00
pata_cmd64x.c [libata] More PATA driver ->cable_detect support 2007-04-28 14:15:57 -04:00
pata_cmd640.c drivers/ata/pata_cmd640.c: fix build with CONFIG_PM=n 2007-04-28 15:16:40 -04:00
pata_cs5520.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_cs5530.c [libata] More PATA driver ->cable_detect support 2007-04-28 14:15:57 -04:00
pata_cs5535.c pata: cable methods 2007-04-28 14:16:01 -04:00
pata_cypress.c pata: cable methods 2007-04-28 14:16:01 -04:00
pata_efar.c pata_efar: support ->cable_detect 2007-04-28 14:15:57 -04:00
pata_hpt3x2n.c pata_hpt3x2n: Add HPT371N support and other bits 2007-04-28 15:16:39 -04:00
pata_hpt3x3.c [libata] More PATA driver ->cable_detect support 2007-04-28 14:15:57 -04:00
pata_hpt37x.c pata_hpt37x: Further small fixes 2007-04-28 15:16:39 -04:00
pata_hpt366.c pata: cable methods 2007-04-28 14:16:01 -04:00
pata_isapnp.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_it821x.c [libata] Update several PATA drivers for new ->cable_detect hook 2007-04-28 14:15:56 -04:00
pata_it8213.c pata_it8213: Cable detect 2007-04-28 14:15:56 -04:00
pata_ixp4xx_cf.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_jmicron.c [libata] pata_jmicron: build fix 2007-03-03 10:36:19 -05:00
pata_legacy.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_marvell.c pata_marvell: Cable and reset fixes 2007-04-28 14:15:56 -04:00
pata_mpc52xx.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_mpiix.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_netcell.c pata_netcell: re-remove all the crud 2007-04-28 14:16:00 -04:00
pata_ns87410.c [libata] Update several PATA drivers for new ->cable_detect hook 2007-04-28 14:15:56 -04:00
pata_oldpiix.c [libata] Update several PATA drivers for new ->cable_detect hook 2007-04-28 14:15:56 -04:00
pata_opti.c [libata] Update several PATA drivers for new ->cable_detect hook 2007-04-28 14:15:56 -04:00
pata_optidma.c pata_optidma: rework for cable detect and to remove post_set_mode() 2007-04-28 14:16:01 -04:00
pata_pcmcia.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_pdc202xx_old.c [libata] Update several PATA drivers for new ->cable_detect hook 2007-04-28 14:15:56 -04:00
pata_pdc2027x.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_platform.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_qdi.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_radisys.c pata_radisys: support cable_detect 2007-04-28 14:15:57 -04:00
pata_rz1000.c pata_rz1000: support cable_detect 2007-04-28 14:15:57 -04:00
pata_sc1200.c pata_sc1200: restore cable type 2007-04-28 14:15:57 -04:00
pata_scc.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_serverworks.c libata: Change prototype of mode_filter to remove ata_port* 2007-04-28 14:15:58 -04:00
pata_sil680.c [libata] Update several PATA drivers for new ->cable_detect hook 2007-04-28 14:15:56 -04:00
pata_sis.c pata_sis: Clean up using cable_detect methods 2007-04-28 14:15:56 -04:00
pata_sl82c105.c pata_sl82c105: restore cable detect method 2007-04-28 14:16:00 -04:00
pata_triflex.c [libata] Update several PATA drivers for new ->cable_detect hook 2007-04-28 14:15:56 -04:00
pata_via.c pata_via: Use cable_detect method 2007-04-28 14:15:56 -04:00
pata_winbond.c SPIN_LOCK_UNLOCKED cleanup in drivers/ata/pata_winbond.c 2007-04-28 15:16:40 -04:00
pdc_adma.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_inic162x.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_mv.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_nv.c libata: convert ata_pci_init_native_mode() users to new init model 2007-04-28 14:16:03 -04:00
sata_promise.c libata: convert drivers with combined SATA/PATA ports to new init model 2007-04-28 14:16:03 -04:00
sata_promise.h
sata_qstor.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_sil24.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_sil.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_sis.c libata: convert ata_pci_init_native_mode() users to new init model 2007-04-28 14:16:03 -04:00
sata_svw.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_sx4.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_uli.c libata: convert ata_pci_init_native_mode() users to new init model 2007-04-28 14:16:03 -04:00
sata_via.c libata: convert drivers with combined SATA/PATA ports to new init model 2007-04-28 14:16:03 -04:00
sata_vsc.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sis.h SiS warning fixes 2007-02-21 04:58:17 -05:00