linux/drivers/ata
Tejun Heo 07c53dac49 ahci: don't enter slumber on power down
Some ATA/ATAPI devices act weirdly after the link is put into slumber
mode.  Some hang completely requiring physical power removal while
others fail to wake up till the link is hardreset a couple of times.

The addition of slumber on power down was never driven by real need.
It just followed what ahci spec said literally.  The spec itself seems
faulty in that it doesn't consider devices (not controllers) which
don't support link powersaving mode.

Theory never matches reality when it comes to dark allys of cheap
ATA/ATAPI world.  It's just unrealistic to expect vendors to test
rarely used link powersaving feature rigorously.  This patch makes
ahci more friendly to the coldness of reality.

This shouldn't have any negative effect - when suspend operation
succeeds, we power off the whole machine; otherwise, we wake up
everything.  I can't see any reason to be so elaborate with powering
down the link in the first place.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-24 02:03:45 -05:00
..
ahci.c ahci: don't enter slumber on power down 2007-01-24 02:03:45 -05:00
ata_generic.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
ata_piix.c [PATCH] ata_piix: use piix_host_stop() in ich_pata_ops 2006-12-16 10:12:29 -05:00
Kconfig [PATCH] pata_optidma: typo in Kconfig 2007-01-05 23:55:28 -08:00
libata-core.c [PATCH] libata: don't initialize sg in ata_exec_internal() if DMA_NONE (take #2) 2006-12-16 10:13:22 -05:00
libata-eh.c libata: fix handling of port actions in per-dev action mask 2007-01-19 19:22:45 -05:00
libata-scsi.c [PATCH] libata: take scmd->cmd_len into account when translating SCSI commands 2006-12-20 14:26:26 -05:00
libata-sff.c [PATCH] libata: fix combined mode 2007-01-02 08:20:51 -08:00
libata.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2006-12-05 17:01:28 +00:00
Makefile [libata] ARM: add ixp4xx PATA driver 2006-12-01 22:42:51 -05:00
pata_ali.c [PATCH] pata_ali: small fixes 2006-12-04 15:45:51 -05:00
pata_amd.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_artop.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_atiixp.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_cmd64x.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_cs5520.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_cs5530.c [libata] pata_cs5530: suspend/resume support tweak 2006-12-20 13:03:11 -05:00
pata_cs5535.c [libata] pata_cs5535: fix build 2006-12-03 07:57:21 -05:00
pata_cypress.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_efar.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_hpt3x2n.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_hpt3x3.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_hpt37x.c [PATCH] hpt37x: Two important bug fixes 2007-01-05 23:55:29 -08:00
pata_hpt366.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_isapnp.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_it821x.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_ixp4xx_cf.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_jmicron.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_legacy.c [PATCH] ata: fix platform_device_register_simple() error check 2006-12-16 10:45:28 -05:00
pata_marvell.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_mpiix.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_netcell.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_ns87410.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_oldpiix.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_opti.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_optidma.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_pcmcia.c [PATCH] pcmcia: conf.ConfigBase and conf.Present consolidation 2006-12-04 20:12:02 -05:00
pata_pdc202xx_old.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_pdc2027x.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_platform.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_qdi.c [PATCH] ata: fix platform_device_register_simple() error check 2006-12-16 10:45:28 -05:00
pata_radisys.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_rz1000.c [PATCH] initializer entry defined twice in pata_rz1000 2006-12-16 10:45:28 -05:00
pata_sc1200.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_serverworks.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_sil680.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_sis.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_sl82c105.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_triflex.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_via.c [libata] pata_via: suspend/resume support fix 2006-12-20 13:09:10 -05:00
pata_winbond.c [PATCH] ata: fix platform_device_register_simple() error check 2006-12-16 10:45:28 -05:00
pdc_adma.c [PATCH] Fix numerous kcalloc() calls, convert to kzalloc() 2006-12-13 09:05:52 -08:00
sata_mv.c sata_mv HighPoint 2310 support (88SX7042) 2007-01-19 19:24:36 -05:00
sata_nv.c sata_nv: don't rely on NV_INT_DEV indication with ADMA 2007-01-24 02:01:49 -05:00
sata_promise.c [PATCH] sata_promise: new EH conversion, take 2 2006-12-07 07:25:01 -05:00
sata_promise.h
sata_qstor.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
sata_sil24.c [PATCH] sata_sil24: add PMP related constants 2006-12-01 22:40:29 -05:00
sata_sil.c [PATCH] libata: move BMDMA host status recording from EH to interrupt handler 2006-12-03 17:56:24 +09:00
sata_sis.c [PATCH] sata_sis: slave support on SiS965 2006-12-01 22:42:51 -05:00
sata_svw.c [libata] sata_svw, sata_vsc: kill iomem warnings 2006-12-20 14:37:04 -05:00
sata_sx4.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
sata_uli.c [libata] PCI ID table cleanup in various drivers 2006-09-28 20:21:59 -04:00
sata_via.c sata_via: add PCI ID 0x5337 2007-01-19 19:18:49 -05:00
sata_vsc.c [libata] sata_svw, sata_vsc: kill iomem warnings 2006-12-20 14:37:04 -05:00