13 Oct, 2007
5 commits
-
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
[edited slightly to make output a bit more symmetric]
Signed-off-by: Jeff Garzik -
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_sil24Signed-off-by: Tejun Heo
Cc: Kriten Carlson Accardi
Signed-off-by: Jeff Garzik -
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
Signed-off-by: Jeff Garzik -
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
Signed-off-by: Jeff Garzik -
Debugging a report of a problem with an ancient solid state disk showed
up some problems in the IORDY handling1. 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
Signed-off-by: Jeff Garzik
31 Aug, 2007
1 commit
-
Cc: Jeff Garzik
Signed-off-by: Bartlomiej Zolnierkiewicz
Signed-off-by: Jeff Garzik
20 Jul, 2007
1 commit
-
* Add ATA_PIO[0-6] defines to .
* Add ->pio_mask field to ide_pci_device_t and ide_hwif_t.
* Add PIO masks to host drivers.
change ACK-ed by Jeff Garzik .
Acked-by: Sergei Shtylyov
Signed-off-by: Bartlomiej Zolnierkiewicz
11 Jul, 2007
1 commit
-
Add Port Multiplier related ATA constants and macros. Some of these
will be used by ata_link implementation.Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik
10 Jul, 2007
1 commit
-
Signed-off-by: Jeff Garzik
10 Jun, 2007
2 commits
-
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
Signed-off-by: Jeff Garzik -
support the pass through of PIO multi commands.
Signed-off-by: Albert Lee
Signed-off-by: Jeff Garzik
29 Apr, 2007
3 commits
-
(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
Signed-off-by: Jeff Garzik -
Signed-off-by: Alan Cox
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 -
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
Signed-off-by: Jeff Garzik
04 Apr, 2007
1 commit
-
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
Signed-off-by: Jeff Garzik
23 Feb, 2007
1 commit
-
Test major version in ata_id_is_sata() not separately.
Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik
16 Feb, 2007
1 commit
-
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
Signed-off-by: Jeff Garzik
10 Feb, 2007
2 commits
-
IORDY and IORDY enable/disable flags.
Signed-off-by: Alan Cox
Signed-off-by: Jeff Garzik -
* 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
Signed-off-by: Jeff Garzik
02 Dec, 2006
1 commit
-
[deweerdt@free.fr: build fix]
Signed-off-by: Alan Cox
Signed-off-by: Frederik Deweerdt
Cc: Tejun Heo
Signed-off-by: Andrew Morton
Signed-off-by: Jeff Garzik
31 Aug, 2006
1 commit
15 Aug, 2006
1 commit
-
The CFA world has some additional rules and drive modes we need to support for
newer expansion cards and on embedded boxesSigned-off-by: Alan Cox
Signed-off-by: Jeff Garzik
10 Aug, 2006
1 commit
-
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.
12 Jun, 2006
1 commit
-
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
Signed-off-by: Jeff Garzik
15 May, 2006
3 commits
-
Add NCQ related ATA/libata constants and macros.
Signed-off-by: Tejun Heo
-
Conflicts:
drivers/scsi/libata-core.c
include/linux/libata.h -
Add ATA and libata flags to be used by new EH.
Signed-off-by: Tejun Heo
24 Mar, 2006
1 commit
-
Conflicts:
drivers/scsi/sata_vsc.c
22 Mar, 2006
2 commits
-
HPA presence/enabled
HPA commandsAlso add ata_id_is_cfa() as that is needed to detect and handle CF cards
which currently we reject.Signed-off-by: Jeff Garzik
-
Remove the ATA_PROT_PIO_MULT protocol.
Signed-off-by: Albert Lee
Signed-off-by: Jeff Garzik
04 Mar, 2006
1 commit
-
Recognize ATA_CMD_WRITE_MULTI_FUA_EXT as r/w multiple commands.
Signed-off-by: Albert Lee
Signed-off-by: Jeff Garzik
13 Feb, 2006
2 commits
-
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
Signed-off-by: Jeff Garzik
27 Jan, 2006
1 commit
17 Jan, 2006
2 commits
07 Jan, 2006
2 commits
-
Manual fixup for merge with Jens' "Suspend support for libata", commit
ID 9b847548663ef1039dd49f0eb4463d001e596bc3.Signed-off-by: Linus Torvalds
-
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
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
06 Jan, 2006
1 commit
-
Signed-off-by: Tejun Heo
Signed-off-by: Jens Axboe
09 Nov, 2005
1 commit
-
- 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 commandsSigned-off-by: Albert Lee
========
Signed-off-by: Jeff Garzik