linux/drivers/ata
Ondrej Zary 3cf864520e sata_via: Enable hotplug only on VT6421
Commit 57e5568fda ("sata_via: Implement hotplug for VT6421") adds
hotplug IRQ handler for VT6421 but enables hotplug on all chips. This
is a bug because it causes "irq xx: nobody cared" error on VT6420 when
hot-(un)plugging a drive:

[  381.839948] irq 20: nobody cared (try booting with the "irqpoll" option)
[  381.840014] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.10.0-rc5+ #148
[  381.840066] Hardware name:          P4VM800/P4VM800, BIOS P1.60 05/29/2006
[  381.840117] Call Trace:
[  381.840167]  <IRQ>
[  381.840225]  ? dump_stack+0x44/0x58
[  381.840278]  ? __report_bad_irq+0x14/0x97
[  381.840327]  ? handle_edge_irq+0xa5/0xa5
[  381.840376]  ? note_interrupt+0x155/0x1cf
[  381.840426]  ? handle_edge_irq+0xa5/0xa5
[  381.840474]  ? handle_irq_event_percpu+0x32/0x38
[  381.840524]  ? handle_irq_event+0x1f/0x38
[  381.840573]  ? handle_fasteoi_irq+0x69/0xb8
[  381.840625]  ? handle_irq+0x4f/0x5d
[  381.840672]  </IRQ>
[  381.840726]  ? do_IRQ+0x2e/0x8b
[  381.840782]  ? common_interrupt+0x2c/0x34
[  381.840836]  ? mwait_idle+0x60/0x82
[  381.840892]  ? arch_cpu_idle+0x6/0x7
[  381.840949]  ? do_idle+0x96/0x18e
[  381.841002]  ? cpu_startup_entry+0x16/0x1a
[  381.841057]  ? start_kernel+0x319/0x31c
[  381.841111]  ? startup_32_smp+0x166/0x168
[  381.841165] handlers:
[  381.841219] [<c12a7263>] ata_bmdma_interrupt
[  381.841274] Disabling IRQ #20

Seems that VT6420 can do hotplug too (there's no documentation) but the
comments say that SCR register access (required for detecting hotplug
events) can cause problems on these chips.

For now, just keep hotplug disabled on anything other than VT6421.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Tejun Heo <tj@kernel.org>
2017-04-11 09:12:18 +09:00
..
acard-ahci.c
ahci_brcm.c
ahci_ceva.c
ahci_da850.c sata: ahci-da850: un-hardcode the MPY bits 2017-01-31 20:41:52 +05:30
ahci_imx.c ahci: imx: fix building without hwmon or thermal 2017-01-15 18:51:12 -05:00
ahci_mvebu.c
ahci_octeon.c
ahci_platform.c
ahci_qoriq.c ahci: qoriq: correct the sata ecc setting error 2017-03-09 11:55:23 -05:00
ahci_seattle.c
ahci_st.c ahci: st: Add ports-implemented property in support 2016-08-10 12:16:49 -04:00
ahci_sunxi.c
ahci_tegra.c
ahci_xgene.c ata: ahci_xgene: free structure returned by acpi_get_object_info() 2017-01-06 11:39:14 -05:00
ahci.c Merge branch 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2016-12-13 13:26:24 -08:00
ahci.h sata: ahci: export ahci_do_hardreset() locally 2017-01-31 17:48:21 +05:30
ata_generic.c
ata_piix.c
Kconfig ahci: imx: fix building without hwmon or thermal 2017-01-15 18:51:12 -05:00
libahci_platform.c
libahci.c sata: ahci: export ahci_do_hardreset() locally 2017-01-31 17:48:21 +05:30
libata-acpi.c
libata-core.c Merge branch 'for-4.10-fixes' into for-4.11 2017-01-09 07:38:25 -05:00
libata-eh.c scripts/spelling.txt: add "followings" pattern and fix typo instances 2017-02-27 18:43:47 -08:00
libata-pmp.c
libata-scsi.c scsi: merge __scsi_execute into scsi_execute 2017-02-23 16:57:19 -05:00
libata-sff.c libata: drop WARN from protocol error in ata_sff_qc_issue() 2017-03-06 15:26:54 -05:00
libata-trace.c
libata-transport.c libata: transport: Remove circular dependency at free time 2017-03-06 15:24:48 -05:00
libata-transport.h
libata-zpodd.c
libata.h Merge branch 'for-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2017-02-21 17:21:32 -08:00
Makefile ata: add Atari Falcon PATA controller driver 2017-01-10 11:11:18 -05:00
pata_acpi.c
pata_ali.c
pata_amd.c
pata_arasan_cf.c
pata_artop.c
pata_at32.c
pata_at91.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_atiixp.c Revert "pata_atiixp: Don't use unconnected secondary port on SB600/SB700" 2017-03-27 13:52:00 -04:00
pata_atp867x.c
pata_bf54x.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_cmd64x.c
pata_cmd640.c
pata_cs5520.c
pata_cs5530.c
pata_cs5535.c
pata_cs5536.c
pata_cypress.c
pata_efar.c
pata_ep93xx.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_falcon.c Merge branch 'for-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2017-02-21 17:21:32 -08:00
pata_hpt3x2n.c
pata_hpt3x3.c
pata_hpt37x.c
pata_hpt366.c
pata_icside.c
pata_imx.c pata: imx: support controller modes up to PIO4 2016-11-09 11:48:58 -05:00
pata_isapnp.c
pata_it821x.c
pata_it8213.c
pata_ixp4xx_cf.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_jmicron.c
pata_legacy.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_macio.c
pata_marvell.c
pata_mpc52xx.c
pata_mpiix.c
pata_netcell.c
pata_ninja32.c pata_ninja32: Avoid corrupting status flags 2016-08-30 11:59:47 -04:00
pata_ns87410.c
pata_ns87415.c
pata_octeon_cf.c pata_octeon_cf: remove unused local variables from octeon_cf_set_piomode() 2017-01-23 14:28:51 -05:00
pata_of_platform.c ata: pata_of_platform: using of_property_read_u32() helper 2017-01-24 11:15:01 -05:00
pata_oldpiix.c
pata_opti.c
pata_optidma.c
pata_palmld.c
pata_pcmcia.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_pdc202xx_old.c
pata_pdc2027x.c
pata_piccolo.c
pata_platform.c
pata_pxa.c
pata_radisys.c
pata_rb532_cf.c
pata_rdc.c
pata_rz1000.c
pata_samsung_cf.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_sc1200.c
pata_sch.c
pata_serverworks.c
pata_sil680.c
pata_sis.c
pata_sl82c105.c
pata_triflex.c
pata_via.c
pdc_adma.c
sata_dwc_460ex.c
sata_fsl.c
sata_highbank.c
sata_inic162x.c
sata_mv.c ata: sata_mv: Convert to devm_ioremap_resource() 2017-01-09 07:41:27 -05:00
sata_nv.c
sata_promise.c
sata_promise.h
sata_qstor.c
sata_rcar.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
sata_sil24.c
sata_sil.c
sata_sis.c
sata_svw.c
sata_sx4.c
sata_uli.c
sata_via.c sata_via: Enable hotplug only on VT6421 2017-04-11 09:12:18 +09:00
sata_vsc.c
sis.h