Age | Commit message (Collapse) | Author |
|
|
|
- move default mode pages to the front of libata-scsi.c
so various functions can access them
- partial annotation of these pages, point out divergence
from sat-r06
- replace various mode page magic numbers with defines
- strengthen MODE SENSE command decoding: handle DBD
bit in cdb, yield block descriptor (per sat-r06) and
handle mode sub pages
Signed-off-by: Douglas Gilbert <dougg@torque.net>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
|
|
|
|
|
|
Enforce access rules where appropriate.
If the compiler is smart enough, this may buy us an optimization or two
as a side effect.
|
|
|
|
|
|
(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>
|
|
move the initialization of taskfile LBA flags
"ATA_TFLAG_LBA" and "ATA_TFLAG_LBA48 flags"
to the SCSI translation functions
Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
=============
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
|
|
|
|
|
|
|
|
- change "xlat" and "fill" actors in libata-scsi so
they are responsible for SCSI status and sense data
when they return 1. This allows GOOD status or a
specialized error to be set.
- yield an error for mode sense requests for saved
values [sat-r06]
- remove static inlines for ata_bad_scsiop() and
ata_bad_cdb() which are no longer used
Signed-off-by: Douglas Gilbert <dougg@torque.net>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
|
|
- add extern ata_scsi_set_sense() to build SCSI
fixed sense data and corresponding SCSI status
Signed-off-by: Douglas Gilbert <dougg@torque.net>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
|
|
|
|
A few code shuffles, to make merging future code easier.
Add (DRIVER_SENSE << 24) to certain result codes, as noted by Douglas
Gilbert.
|
|
No content changes, just moving code around.
|
|
1) note urgent bug, that completes command twice
2) only fix up INQUIRY data if the SCSI version is zero (typically
indicates ATAPI MMC-ish device)
3) if there is a problem on the ATA bus, don't bother with REQUEST
SENSE, just directly handle the error based on Status/Error registers.
|
|
ATAPI needs to be padded to next 4 byte boundary, if misaligned.
Original work by me, many fixes from Tejun Heo.
|
|
|
|
|
|
|
|
move the redundant SCSI lba and transfer length calculation code from
ata_scsi_verify_xlat() and ata_scsi_rw_xlat() to common functions.
|
|
|
|
Since our max_lun is unconditionally set to 1, we might as well
hardcode a LUN 0 probe, rather than a wildcard LUN scan.
The ide-scsi driver sets max_lun to a value greater than under
certain conditions:
if ((drive->id->last_lun & 0x7) != 7)
host->max_lun = (drive->id->last_lun & 0x7) + 1;
else
host->max_lun = 1;
last_lun is Word 126 of IDENTIFY PACKET DEVICE, marked as obsolete
and undocumented in non-ancient specs. We'll leave it out for now.
Should the need arise to support multi-LUN ATAPI devices, we'll
probably want to add the above code.
Finally, there have been reports of REPORT LUNS commands locking up
ATAPI drives. Eliminating the wildcard LUN scan could help reduce
the trouble from problematic drives.
|
|
Replace SCSI's legacy "bang at the door" method of probing with one
directly controlled by the underlying ATA transport layer.
We now only call scsi_scan_target() for devices we find, rather than
probing every possible channel/id within a certain range.
|
|
|
|
|
|
Dumb typo spotted by Mark Lord.
|
|
ATAPI is getting close to being ready. To increase exposure, we enable
the code in the upstream kernel, but default it to off (present
behavior). Users must pass atapi_enabled=1 as a module option (if
module) or on the kernel command line (if built in) to turn on
discovery of their ATAPI devices.
|
|
|
|
|
|
|
|
|
|
- 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
|
|
Fix bugs for unlikely edge cases noticed by Douglas Gilbert:
- When READ(6)/WRITE(6) sector count == 0, treat it as 256 sectors
- For other READ(x)/WRITE(x), when sector count == 0, error.
We don't support successfully completing zero-length transfers at
this time.
|
|
|
|
|
|
Yet another hack due to the fact that libata is the only user of SCSI's
->eh_strategy_handler() hook.
|
|
This is a multi-part message in MIME format.
|
|
|
|
|
|
|
|
|
|
rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git branch HEAD
|
|
Avoid changing sdev->host->max_sectors because it can prevent use of
non-lba48 drives on other ports of the same adapter.
Signed-off-by: Stuart Hayes <stuart_hayes@Dell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
|
Authors:
Brett Russ <russb@emc.com>
John W. Linville <linville@tuxdriver.com>
Andy Warner <andyw@pobox.com>
|
|
|
|
these have been wrappers for the generic dma direction bits since 2.5.x.
This patch converts the few remaining drivers and removes the macros.
Arjan noticed there's some hunk in here that shouldn't. Updated patch
below:
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
|
|
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!
|