linux/drivers/ata
Tejun Heo d8d9129ea2 libata: implement on-demand HPA unlocking
Implement ata_scsi_unlock_native_capacity() which will be called
through SCSI layer when block layer notices that partitions on a
device extend beyond the end of the device.  It requests EH to unlock
HPA, waits for completion and returns the current device capacity.

This allows libata to unlock HPA on demand instead of having to decide
whether to unlock upfront.  Unlocking on demand is safer than
unlocking by upfront because some BIOSes write private data to the
area beyond HPA limit.  This was suggested by Ben Hutchings.

Signed-off-by: Tejun Heo <tj@kernel.org>
Suggested-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2010-06-02 13:50:10 -04:00
..
ahci_platform.c ahci_platform: properly set up EM messaging 2010-05-14 17:35:51 -04:00
ahci.c ahci: EM message type auto detect 2010-05-14 17:35:51 -04:00
ahci.h ahci: add "em_buffer" attribute for AHCI hosts 2010-05-14 17:35:51 -04:00
ata_generic.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
ata_piix.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
Kconfig libata-sff: trivial corrections to Kconfig help text 2010-06-02 13:50:00 -04:00
libahci.c ahci: add "em_buffer" attribute for AHCI hosts 2010-05-14 17:35:51 -04:00
libata-acpi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
libata-core.c libata: implement on-demand HPA unlocking 2010-06-02 13:50:10 -04:00
libata-eh.c libata-sff: separate out BMDMA EH 2010-05-19 13:36:46 -04:00
libata-pmp.c [libata] Disable R_OK (Early ACK) on SII 3726 PMP 2010-05-14 17:08:02 -04:00
libata-scsi.c libata: implement on-demand HPA unlocking 2010-06-02 13:50:10 -04:00
libata-sff.c libata-sff: make BMDMA optional 2010-05-25 19:41:12 -04:00
libata.h libata-sff: separate out BMDMA EH 2010-05-19 13:36:46 -04:00
Makefile libata-sff: make BMDMA optional 2010-05-25 19:41:12 -04:00
pata_acpi.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_ali.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_amd.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_artop.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_at32.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pata_at91.c libata-sff: clean up BMDMA initialization 2010-05-19 13:32:19 -04:00
pata_atiixp.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_atp867x.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_bf54x.c libata-sff: ata_sff_irq_clear() is BMDMA specific 2010-05-25 19:40:19 -04:00
pata_cmd64x.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_cmd640.c libata-sff: clean up BMDMA initialization 2010-05-19 13:32:19 -04:00
pata_cs5520.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_cs5530.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_cs5535.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_cs5536.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_cypress.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_efar.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_hpt3x2n.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_hpt3x3.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_hpt37x.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_hpt366.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_icside.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_isapnp.c [libata] Improve timeout handling 2009-03-24 22:52:39 -04:00
pata_it821x.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_it8213.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_ixp4xx_cf.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
pata_jmicron.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_legacy.c pata_legacy: add pointers to QDI65x0 documentation 2009-12-03 16:06:47 -05:00
pata_macio.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_marvell.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_mpc52xx.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_mpiix.c [libata] convert drivers to use ata.h mode mask defines 2009-03-24 22:13:27 -04:00
pata_netcell.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_ninja32.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_ns87410.c libata: Pass host flags into the pci helper 2010-03-01 14:58:46 -05:00
pata_ns87415.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_octeon_cf.c libata-sff: kill dummy BMDMA ops from sata_qstor and pata_octeon_cf 2010-05-25 19:40:45 -04:00
pata_of_platform.c of: Remove duplicate fields from of_platform_driver 2010-05-22 00:10:40 -06:00
pata_oldpiix.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_opti.c libata: Pass host flags into the pci helper 2010-03-01 14:58:46 -05:00
pata_optidma.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_palmld.c [ARM] 5522/1: PalmLD: IDE support 2009-05-31 14:50:40 +01:00
pata_pcmcia.c Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev 2010-05-20 09:27:37 -07:00
pata_pdc202xx_old.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_pdc2027x.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_piccolo.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_platform.c libata-sff: clean up BMDMA initialization 2010-05-19 13:32:19 -04:00
pata_qdi.c [libata] convert drivers to use ata.h mode mask defines 2009-03-24 22:13:27 -04:00
pata_radisys.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_rb532_cf.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pata_rdc.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_rz1000.c libata: Pass host flags into the pci helper 2010-03-01 14:58:46 -05:00
pata_sc1200.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_scc.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_sch.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_serverworks.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_sil680.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_sis.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_sl82c105.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_triflex.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_via.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_winbond.c [libata] convert drivers to use ata.h mode mask defines 2009-03-24 22:13:27 -04:00
pdc_adma.c libata-sff: ata_sff_[dumb_]qc_prep are BMDMA specific 2010-05-19 13:36:50 -04:00
sata_fsl.c of: Remove duplicate fields from of_platform_driver 2010-05-22 00:10:40 -06:00
sata_inic162x.c libata-sff: clean up BMDMA initialization 2010-05-19 13:32:19 -04:00
sata_mv.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
sata_nv.c sata_nv: don't diddle with nIEN on mcp55 2010-06-02 13:49:57 -04:00
sata_promise.c libata-sff: prd is BMDMA specific 2010-05-19 13:38:54 -04:00
sata_promise.h libata annotations and fixes 2008-01-23 05:24:15 -05:00
sata_qstor.c libata-sff: kill dummy BMDMA ops from sata_qstor and pata_octeon_cf 2010-05-25 19:40:45 -04:00
sata_sil24.c libata: kill ATA_FLAG_DISABLED 2010-05-17 22:49:02 -04:00
sata_sil.c libata-sff: ata_sff_irq_clear() is BMDMA specific 2010-05-25 19:40:19 -04:00
sata_sis.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
sata_svw.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
sata_sx4.c libata-sff: separate out BMDMA EH 2010-05-19 13:36:46 -04:00
sata_uli.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
sata_via.c sata_via: magic vt6421 fix for transmission problems w/ WD drives 2010-06-02 13:49:50 -04:00
sata_vsc.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
sis.h