aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/ata.h
Commit message (Collapse)AuthorAgeFilesLines
* libata: add human-readable error value decodingRobert Hancock2007-10-121-0/+9
| | | | | | | | | | | | | | | | This adds human-readable decoding of the ATA status and error registers (similar to what drivers/ide does) as well as the SATA Serror register to libata error handling output. This prevents the need to pore through standards documents to figure out the meaning of the bits in these registers when looking at error reports. Some bits that drivers/ide decoded are not decoded here, since the bits are either command-dependent or obsolete, and properly parsing them would add too much complexity. Signed-off-by: Robert Hancock <hancockr@shaw.ca> [edited slightly to make output a bit more symmetric] Signed-off-by: Jeff Garzik <jeff@garzik.org>
* libata: misc updates for ANTejun Heo2007-10-121-1/+1
| | | | | | | | | | | | | | | Update AN support in preparation of PMP support. * s/ata_id_has_AN/ata_id_has_atapi_AN/ * add AN enabled reporting during configuration * add err_mask to AN configuration failure reporting * update LOCKING comment for ata_scsi_media_change_notify() * check whether ATA dev is attached to SCSI dev ata_scsi_media_change_notify() * set ATA_FLAG_AN in ahci and sata_sil24 Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Kriten Carlson Accardi <kristen.c.accardi@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* libata: Strict checking for identify reportingAlan Cox2007-10-121-11/+85
| | | | | | | | | | | | | | The ATA specifications require checks on certain flags before assuming the validity of other data. Go through the methods and correct those needing extra checks. Also note limits on ata_id_major_version with respect to ATA-1 and ATA-2. Correct the 32bit PIO check. Wants to sit in -mm for a bit in case of a screwup on my part that I didn't hit on the test drives and also in case someone, somewhere has a drive that gets it wrong. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [libata] check for SATA async notify supportKristen Carlson Accardi2007-10-121-0/+9
| | | | | | | | Check to see if an ATAPI device supports Asynchronous Notification. If so, enable it, if the host controller supports AN. Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* libata: Correct IORDY handlingAlan Cox2007-10-121-1/+1
| | | | | | | | | | | | | | | | Debugging a report of a problem with an ancient solid state disk showed up some problems in the IORDY handling 1. We check the wrong bit to see if the device has IORDY 2. Even then some ancient creaking piles of crap don't support SETXFER at all. The cases it fixes are obscure and the risk of side effects is slight but possible. This also moves us slightly closer to supporting original MFM/RLL disks with libata. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* ata: add ATA_MWDMA* and ATA_SWDMA* definesBartlomiej Zolnierkiewicz2007-08-311-0/+13
| | | | | | Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* ide: add PIO masksBartlomiej Zolnierkiewicz2007-07-201-0/+9
| | | | | | | | | | | | | * Add ATA_PIO[0-6] defines to <linux/ata.h>. * Add ->pio_mask field to ide_pci_device_t and ide_hwif_t. * Add PIO masks to host drivers. <linux/ata.h> change ACK-ed by Jeff Garzik <jeff@garzik.org>. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* libata-link: add PMP related ATA constantsTejun Heo2007-07-101-0/+29
| | | | | | | | Add Port Multiplier related ATA constants and macros. Some of these will be used by ata_link implementation. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [ATA] Add named constant for ATAPI command DEVICE RESETJeff Garzik2007-07-091-0/+1
| | | | Signed-off-by: Jeff Garzik <jeff@garzik.org>
* libata passthru: update cached device paramtersAlbert Lee2007-06-091-0/+1
| | | | | | | | | INIT_DEV_PARAMS and SET_MULTI_MODE change the device parameters cached by libata. Re-read IDENTIFY DEVICE info and update the cached device paramters when seeing these commands. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* libata passthru: support PIO multi commandsAlbert Lee2007-06-091-1/+1
| | | | | | | support the pass through of PIO multi commands. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* libata: Handle drives that require a spin-up command before first accessMark Lord2007-04-281-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | (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-281-0/+2
| | | | | | | | | | | | | | | 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-281-0/+6
| | | | | | | | | | | | | | | | | | 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-041-0/+1
| | | | | | | | | | 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-231-2/+6
| | | | | | | 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-151-1/+1
| | | | | | | | | | | 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-091-0/+2
| | | | | | | 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-091-4/+7
| | | | | | | | | | | | | | * 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-011-2/+12
| | | | | | | | | | | 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-311-2/+2
|
* [PATCH] libata: Add CompactFlash supportAlan Cox2006-08-141-1/+19
| | | | | | | | 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-101-0/+2
| | | | | | | | | 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-121-0/+3
| | | | | | | | | 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-151-0/+9
| | | | | | Add NCQ related ATA/libata constants and macros. Signed-off-by: Tejun Heo <htejun@gmail.com>
* Merge branch 'irq-pio'Tejun Heo2006-05-151-0/+12
|\ | | | | | | | | | | | | Conflicts: drivers/scsi/libata-core.c include/linux/libata.h
| * Merge branch 'upstream'Jeff Garzik2006-03-241-1/+6
| |\ | | | | | | | | | | | | | | | Conflicts: drivers/scsi/sata_vsc.c
| * | [PATCH] libata-dev: recognize WRITE_MULTI_FUA_EXT for r/w multipleAlbert Lee2006-03-031-1/+2
| | | | | | | | | | | | | | | | | | | | | 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-131-0/+10
| |\ \
| * \ \ Merge branch 'tmp'Jeff Garzik2006-01-271-0/+12
| |\ \ \
| * \ \ \ Merge branch 'upstream'Jeff Garzik2006-01-171-2/+8
| |\ \ \ \
| * | | | | [PATCH] libata irq-pio: add read/write multiple supportAlbert Lee2005-11-091-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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-281-7/+12
| |\ \ \ \ \
| * \ \ \ \ \ Merge branch 'upstream'Jeff Garzik2005-10-181-0/+4
| |\ \ \ \ \ \
| * \ \ \ \ \ \ Merge libata upstream (which includes C/H/S support) include irq-pio branch.Jeff Garzik2005-10-031-4/+18
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge branch 'upstream'
| * | | | | | | | [PATCH] libata: interrupt driven pio for libata-coreAlbert Lee2005-09-281-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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-151-0/+13
| |_|_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-211-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-211-1/+0
| |_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-121-0/+10
| |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-171-1/+7
|\ \ \ \ \ \ | | |_|_|_|/ | |/| | | |
| * | | | | Merge branch 'post-2.6.15' of git://brick.kernel.dk/data/git/linux-2.6-blockLinus Torvalds2006-01-061-1/+5
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-061-1/+5
| | | |_|_|/ | | |/| | | | | | | | | | | | | | | | | | | | | Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jens Axboe <axboe@suse.de>
| * | | | | [PATCH] Suspend support for libataJens Axboe2006-01-061-0/+2
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-281-7/+12
|\ \ \ \ \ | |/ / / /
| * | | | libata: const-ification bombing runJeff Garzik2005-10-221-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-211-4/+9
| | |_|/ | |/| |
* | | | [PATCH] libata CHS: LBA28/LBA48 optimization (revise #6)Albert Lee2005-10-181-0/+12
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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-181-0/+4
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | (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-281-3/+3
| | | | | | | | Signed-off-by: Jeff Garzik <jgarzik@pobox.com>