Commit Graph

107 Commits

Author SHA1 Message Date
Jeff Garzik cedc9a478d libata: fix ATAPI DMA alignment issues
ATAPI needs to be padded to next 4 byte boundary, if misaligned.

Original work by me, many fixes from Tejun Heo.
2005-10-05 07:13:30 -04:00
Jeff Garzik 643736a58d Merge branch 'scsi-scan' 2005-10-04 14:24:04 -04:00
Jeff Raubitschek 54dac83c42 [libata passthru] fix leak on error 2005-10-04 10:21:19 -04:00
Albert Lee 9d5b130213 [libata scsi] add CHS support to ata_scsi_start_stop_xlat() 2005-10-04 08:48:17 -04:00
Albert Lee 3aef52311b [libata scsi] tidy up SCSI lba and xfer len calculations
move the redundant SCSI lba and transfer length calculation code from
ata_scsi_verify_xlat() and ata_scsi_rw_xlat() to common functions.
2005-10-04 08:47:43 -04:00
Albert Lee c187c4b58a libata: minor whitespace, comment, debug message updates 2005-10-04 08:46:51 -04:00
Jeff Garzik 3f19ee8cb3 [libata] improve device scan even more
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.
2005-10-03 21:36:41 -04:00
Jeff Garzik 644dd0cc49 [libata] improve device scan
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.
2005-10-03 15:55:19 -04:00
Jeff Garzik 142e27fc8a Merge /spare/repo/linux-2.6/ 2005-09-08 05:41:28 -04:00
Jeff Garzik c324b44c34 Merge /spare/repo/linux-2.6/ 2005-09-08 05:39:55 -04:00
Jeff Garzik 6f10623304 [libata] fix ATAPI-enable typo
Dumb typo spotted by Mark Lord.
2005-08-30 21:52:18 -04:00
Jeff Garzik 1623c81eec [libata] allow ATAPI to be enabled with new atapi_enabled module option
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.
2005-08-30 03:37:42 -04:00
Jeff Garzik 76b2bf9b4d Merge libata branch 'chs-support' to latest upstream kernel. 2005-08-29 19:24:43 -04:00
Jeff Garzik da61396d24 Merge upstream kernel into libata 'passthru' branch 2005-08-29 19:01:43 -04:00
Jeff Garzik 2fca877b68 /spare/repo/libata-dev branch 'v2.6.13' 2005-08-29 16:12:36 -04:00
Jeff Garzik 70d374ea99 Merge /spare/repo/linux-2.6/ 2005-08-29 15:59:42 -04:00
Jeff Garzik af36d7f0df [libata] license change, other bits
- 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
2005-08-28 20:18:39 -04:00
Jeff Garzik 135932651f [libata scsi] fix read/write translation edge cases
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.
2005-08-27 04:20:12 -04:00
Douglas Gilbert 972dcafb6d [libata scsi] add START STOP UNIT translation 2005-08-11 03:35:53 -04:00
Jeff Garzik 2f058256cb Merge /spare/repo/linux-2.6/ 2005-08-10 13:46:28 -04:00
Tejun Heo 42517438f9 libata: fix EH-related lockup by properly cleaning EH command list
Yet another hack due to the fact that libata is the only user of SCSI's
->eh_strategy_handler() hook.
2005-08-10 13:38:27 -04:00
Philip Pokorny 0c144d0d03 [PATCH] libata fix read capacity handling for more than 2TB
This is a multi-part message in MIME format.
2005-06-27 00:47:48 -04:00
Jeff Garzik 0274aa2506 libata: Update 'passthru' branch for latest libata 2005-06-22 13:50:56 -04:00
Jeff Garzik 80bd6d7f5e Merge /spare/repo/linux-2.6/ 2005-06-22 13:10:49 -04:00
Jeff Garzik ff40c6d3d1 Merge upstream kernel changes into 'C/H/S support' branch of libata. 2005-06-22 13:07:28 -04:00