aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/ata.h
Commit message (Collapse)AuthorAge
* libata: Handle drives that require a spin-up command before first accessMark Lord2007-04-28
| | | | | | | | | | | | | | | | | | | | | | | | | (S)ATA drives can be configured for "power-up in standby", a mode whereby a specific "spin up now!" command is required before the first media access. Currently, a drive with this feature enabled can not be used at all with libata, and once in this mode, the drive becomes a doorstop. The older drivers/ide subsystem at least enumerates the drive, so that it can be woken up after the fact from a userspace HDIO_* command, but not libata. This patch adds support to libata for the "power-up in standby" mode where a "spin up now!" command (SET_FEATURES) is needed. With this, libata will recognize such drives, spin them up, and then re-IDENTIFY them if necessary to get a full/complete set of drive features data. Drives in this state are determined by looking for special values in id[2], as documented in the current ATA specs. Signed-off-by: Mark Lord <mlord@pobox.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* libata: HPA supportAlan Cox2007-04-28
| | | | | | | | | | | | | | | Signed-off-by: Alan Cox <alan@redhat.com> Add support for ignoring the BIOS HPA result (off by default) and setting the disk to the full available size unless already frozen. Tested with various platforms/disks and confirmed to work with the Macintosh (which broke earlier) and ata_piix (breakage due to the LBA48 readback that Tejun fixed). For normal users this brings us, I believe, to feature parity with old IDE (and of course more featured in some areas too). Signed-off-by: Jeff Garzik <jeff@garzik.org>
* libata: add support for READ/WRITE LONGMark Lord2007-04-28
| | | | | | | | | | | | | | | | | | The READ/WRITE LONG commands are theoretically obsolete, but the majority of drives in existance still implement them. The WRITE_LONG and WRITE_LONG_ONCE commands are of particular interest for fault injection testing -- eg. creating "media errors" at specific locations on a disk. The fussy bit is that these commands require a non-standard sector size, usually 520 bytes instead of 512. This patch adds support to libata for READ/WRITE LONG commands issued via SG_IO/ATA_16. Signed-off-by: Mark Lord <mlord@pobox.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* libata: Limit max sector to 128 for TORiSAN DVD drives (take 3)Albert Lee2007-04-04
| | | | | | | | | | patch 3/4: The TORiSAN drive locks up when max sector == 256. Limit max sector to 128 for the TORiSAN DRD-N216 drives. (http://bugzilla.kernel.org/show_bug.cgi?id=6710) Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* libata: test major version in ata_id_is_sata()Tejun Heo2007-02-23
| | | | | | | Test major version in ata_id_is_sata() not separately. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* libata: fix drive side 80c cable check, take 3Tejun Heo2007-02-15
| | | | | | | | | | | The 80c wire bit is bit 13, not 14. Bit 14 is always 1 if word93 is implemented. This increases the chance of incorrect wire detection especially because host side cable detection is often unreliable and we sometimes soley depend on drive side cable detection. Fix the test and add word93 validity check. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* ata: Add defines for the iordy bitsAlan2007-02-09
| | | | | | | IORDY and IORDY enable/disable flags. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* libata: straighten out ATA_ID_* constantsTejun Heo2007-02-09
| | | | | | | | | | | | | | * Kill _OFS suffixes in ATA_ID_{SERNO|FW_REV|PROD}_OFS for consistency with other ATA_ID_* constants. * Kill ATA_SERNO_LEN * Add and use ATA_ID_SERNO_LEN, ATA_ID_FW_REV_LEN and ATA_ID_PROD_LEN. This change also makes ata_device_blacklisted() use proper length for fwrev. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] libata: add 40pin "short" cable support, honour drive side speed ↵Alan Cox2006-12-01
| | | | | | | | | | | detection [deweerdt@free.fr: build fix] Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Frederik Deweerdt <deweerdt@free.fr> Cc: Tejun Heo <htejun@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [libata] Trim trailing whitespace.Jeff Garzik2006-08-31
|
* [PATCH] libata: Add CompactFlash supportAlan Cox2006-08-14
| | | | | | | | The CFA world has some additional rules and drive modes we need to support for newer expansion cards and on embedded boxes Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [ATA] Increase lba48 max-sectors from 200 to 256.Jeff Garzik2006-08-10
| | | | | | | | | Also, moved ATA_MAX_SECTORS and ATA_MAX_SECTORS_LBA48 from linux/libata.h to linux/ata.h, now that they truly reflect the standard (well... mostly; note TODO comment). This changes the performance profile (and potential bug profile) for a bunch of drivers, so be wary.
* [PATCH] Snoop SET FEATURES - WRITE CACHE ENABLE/DISABLE command(v5)zhao, forrest2006-06-12
| | | | | | | | | This patch makes libata snoop 'SET FEATURES - WRITE CACHE ENABLE/DISABLE' command, executing requisite revalidation processes to update cached data. Signed-off-by: Forrest Zhao <forrest.zhao@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] libata-ncq: add NCQ related ATA/libata constants and macrosTejun Heo2006-05-15
| | | | | | Add NCQ related ATA/libata constants and macros. Signed-off-by: Tejun Heo <htejun@gmail.com>
* Merge branch 'irq-pio'Tejun Heo2006-05-15
|\ | | | | | | | | | | | | Conflicts: drivers/scsi/libata-core.c include/linux/libata.h
| * Merge branch 'upstream'Jeff Garzik2006-03-24
| |\ | | | | | | | | | | | | | | | Conflicts: drivers/scsi/sata_vsc.c
| * | [PATCH] libata-dev: recognize WRITE_MULTI_FUA_EXT for r/w multipleAlbert Lee2006-03-03
| | | | | | | | | | | | | | | | | | | | | Recognize ATA_CMD_WRITE_MULTI_FUA_EXT as r/w multiple commands. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | Merge branch 'upstream'Jeff Garzik2006-02-13
| |\ \
| * \ \ Merge branch 'tmp'Jeff Garzik2006-01-27
| |\ \ \
| * \ \ \ Merge branch 'upstream'Jeff Garzik2006-01-17
| |\ \ \ \
| * | | | | [PATCH] libata irq-pio: add read/write multiple supportAlbert Lee2005-11-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - add is_multi_taskfile() to ata.h - initialize ata_device->multi_count with device identify data - use ata_pio_sectors() to support r/w multiple commands Signed-off-by: Albert Lee <albertcc@tw.ibm.com> ======== Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * | | | | Merge branch 'master'Jeff Garzik2005-10-28
| |\ \ \ \ \
| * \ \ \ \ \ Merge branch 'upstream'Jeff Garzik2005-10-18
| |\ \ \ \ \ \
| * \ \ \ \ \ \ Merge libata upstream (which includes C/H/S support) include irq-pio branch.Jeff Garzik2005-10-03
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge branch 'upstream'
| * | | | | | | | [PATCH] libata: interrupt driven pio for libata-coreAlbert Lee2005-09-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - add PIO_ST_FIRST for the state before sending ATAPI CDB or sending "ATA PIO data out" first data block. - add ATA_TFLAG_POLLING and ATA_DFLAG_CDB_INTR flags - remove the ATA_FLAG_NOINTR flag since the interrupt handler is now aware of the states - modify ata_pio_sector() and atapi_pio_bytes() to work in the interrupt context - modify the ata_host_intr() to handle PIO interrupts - modify ata_qc_issue_prot() to initialize states - atapi_packet_task() changed to handle "ATA PIO data out" first data block - support the pre-ATA4 ATAPI device which raise interrupt when ready to receive CDB Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | | | | | | | | [PATCH] libata-eh: add ATA and libata flags for new EHTejun Heo2006-05-15
| |_|_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add ATA and libata flags to be used by new EH. Signed-off-by: Tejun Heo <htejun@gmail.com>
* | | | | | | | [PATCH] libata: Add the useful macros/constants needed for merging PATA stuffAlan Cox2006-03-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HPA presence/enabled HPA commands Also add ata_id_is_cfa() as that is needed to detect and handle CF cards which currently we reject. Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | | | | | | | [PATCH] libata-dev: Remove ATA_PROT_PIO_MULTAlbert Lee2006-03-21
| |_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the ATA_PROT_PIO_MULT protocol. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | | | | | | [PATCH] libata: separate out ata_id_major_version()Tejun Heo2006-02-12
| |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Separate out ATA major version calculation from ata_dev_identify() into ata_id_major_version(). It's preparation for splitting ata_dev_identify(). Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | | | | | Merge branch 'upstream'Jeff Garzik2006-01-17
|\ \ \ \ \ \ | | |_|_|_|/ | |/| | | |
| * | | | | Merge branch 'post-2.6.15' of git://brick.kernel.dk/data/git/linux-2.6-blockLinus Torvalds2006-01-06
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Manual fixup for merge with Jens' "Suspend support for libata", commit ID 9b847548663ef1039dd49f0eb4463d001e596bc3. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| | * | | | | [BLOCK] add FUA support to libataTejun Heo2006-01-06
| | | |_|_|/ | | |/| | | | | | | | | | | | | | | | | | | | | Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jens Axboe <axboe@suse.de>
| * / | | | [PATCH] Suspend support for libataJens Axboe2006-01-06
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds suspend patch to libata, and ata_piix in particular. For most low level drivers, they should just need to add the 4 hooks to work. As I can only test ata_piix, I didn't enable it for more though. Suspend support is the single most important feature on a notebook, and most new notebooks have sata drives. It's quite embarrassing that we _still_ do not support this. Right now, it's perfectly possible to suspend the drive in mid-transfer. Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | | | | Merge branch 'master'Jeff Garzik2005-10-28
|\| | | |
| * | | | libata: const-ification bombing runJeff Garzik2005-10-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enforce access rules where appropriate. If the compiler is smart enough, this may buy us an optimization or two as a side effect.
| * | | | libata: handle early device PIO modes correctlyAlan Cox2005-10-21
| | |_|/ | |/| |
* / | | [PATCH] libata CHS: LBA28/LBA48 optimization (revise #6)Albert Lee2005-10-18
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - add lba_28_ok() and lba_48_ok() to ata.h. - check ending block number instead of staring block number. - use lba_28_ok() for CHS range check - LBA28/LBA48 optimization Suggested by Mark Lord and Alan Cox. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> ===== Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | / [PATCH] libata CHS: calculate read/write commands and protocol on the fly ↵Albert Lee2005-10-18
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | (revise #6) - merge ata_prot_to_cmd() and ata_dev_set_protocol() as ata_rwcmd_protocol() - pave road for read/write multiple support - remove usage of pre-cached command and protocol values and call ata_rwcmd_protocol() instead Signed-off-by: Albert Lee <albertcc@tw.ibm.com> ============== Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | [PATCH] ata: re-order speeds sensibly.Alan Cox2005-09-28
| | | | | | | | Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | Merge libata branch 'chs-support' to latest upstream kernel.Jeff Garzik2005-08-29
|\|
| * Merge /spare/repo/linux-2.6/Jeff Garzik2005-08-29
| |\
| | * [libata scsi] add START STOP UNIT translationDouglas Gilbert2005-08-11
| | |
| * | [libata] license change, other bitsJeff Garzik2005-08-28
| |/ | | | | | | | | | | | | | | | | | | | | - changes license of all code from OSL+GPL to plain ole GPL - except for NVIDIA, who hasn't yet responded about sata_nv - copyright holders were already contacted privately - adds info in each driver about where hardware/protocol docs may be obtained - where I have made major contributions, updated copyright dates
* | Merge upstream kernel changes into 'C/H/S support' branch of libata.Jeff Garzik2005-06-22
|\|
| * [PATCH] libata basic detection and errata for PATA->SATA bridgesBrad Campbell2005-05-12
| | | | | | | | | | | | | | | | This patch works around an issue with WD drives (and possibly others) over SiL PATA->SATA Bridges on SATA controllers locking up with transfers > 200 sectors. Signed-off-by: Brad Campbell <brad@wasp.net.au>
* | [libata] C/H/S support, for older devicesAlbert Lee2005-05-12
|/
* Linux-2.6.12-rc2v2.6.12-rc2Linus Torvalds2005-04-16
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!