remarkable-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: Store irq number in struct ahci_host_priv 2015-06-03 01:37:49 -04: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
ahci_brcm.c ata: ahci_brcm: Add support for Broadcom NSP SoC 2016-06-16 16:24:55 -04:00
ahci_ceva.c drivers: ata: add support for Ceva sata host controller 2015-06-10 11:15:17 +09:00
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 ata: ahci_mvebu: add support for Armada 3700 variant 2016-02-18 12:41:17 -05:00
ahci_octeon.c libata: support AHCI on OCTEON platform 2016-02-11 10:12:04 -05:00
ahci_platform.c ata: ahci-platform: Add ports-implemented DT bindings. 2016-04-01 10:30:30 -04:00
ahci_qoriq.c ahci: qoriq: correct the sata ecc setting error 2017-03-09 11:55:23 -05:00
ahci_seattle.c ata: fix return value check in ahci_seattle_get_port_info() 2016-06-15 14:26:41 -04:00
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
ata_generic.c
ata_piix.c
Kconfig ahci: imx: fix building without hwmon or thermal 2017-01-15 18:51:12 -05:00
libahci.c sata: ahci: export ahci_do_hardreset() locally 2017-01-31 17:48:21 +05:30
libahci_platform.c ahci: Store irq number in struct ahci_host_priv 2015-06-03 01:37:49 -04:00
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 ata: pmp: add quirk for Marvell 4140 SATA PMP 2015-07-14 17:46:38 -04:00
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: NCQ encapsulation for ZAC MANAGEMENT OUT 2016-05-09 12:36:46 -04:00
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 drivers: ata: pata_arasan_cf: use the same name for the same lock 2016-06-28 12:49:40 -04:00
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 ata: hpt366: fix incorrect mask when checking at cmd_high_time 2016-07-12 11:02:05 -04:00
pata_icside.c scsi: rename SCSI_MAX_{SG, SG_CHAIN}_SEGMENTS 2016-04-15 16:53:14 -04:00
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_it821x: use "const char *" for string literals 2015-10-15 10:58:53 -04:00
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 PCI: Disable async suspend/resume for JMicron multi-function SATA/AHCI 2015-08-24 15:27:11 -05:00
pata_legacy.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_macio.c PCI: Remove includes of asm/pci-bridge.h 2016-02-05 16:29:28 -06:00
pata_marvell.c ata: Use IS_ENABLED() instead of checking for built-in or module 2016-05-27 11:27:23 -04:00
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 ata: pata_pxa: dmaengine conversion 2015-09-10 17:02:04 -04:00
pata_radisys.c
pata_rb532_cf.c pata-rb532-cf: get rid of the irq_to_gpio() call 2016-02-18 11:26:27 -05:00
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 ata: sata_dwc_460ex: remove redundant dev_err call 2016-07-19 14:32:04 -04:00
sata_fsl.c ata/sata_fsl.c: add ATA_FLAG_NO_LOG_PAGE to blacklist the controller for log page reads 2015-12-07 10:25:57 -05:00
sata_highbank.c remove lots of IS_ERR_VALUE abuses 2016-05-27 15:26:11 -07:00
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 ata:sata_nv - Change 1 to true for bool type variable. 2015-05-25 20:06:55 -04:00
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_sil.c sata_sil: disable trim 2015-11-30 10:02:49 -05:00
sata_sil24.c
sata_sis.c
sata_svw.c
sata_sx4.c sata_sx4: correctly handling failed allocation 2015-12-31 21:33:42 -05:00
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