[SCSI] libsas: Add SATA support to STP piece for SATA on SAS expanders
authorJames Bottomley <James.Bottomley@HansenPartnership.com>
Tue, 22 Aug 2006 17:39:19 +0000 (12:39 -0500)
committerJames Bottomley <jejb@mulgrave.localdomain>
Wed, 18 Jul 2007 16:13:23 +0000 (11:13 -0500)
commit1acce1942a32296f7c25ba82776c97e9c04c8e1e
tree8ac68e474c3c56aab23435e91bcffd96ee8d9bde
parentfa1c1e8f1ece48c7baa3ba529bfd0d10a0bdf4eb
[SCSI] libsas: Add SATA support to STP piece for SATA on SAS expanders

This patch adds support for SATA over SAS expanders to the previous two
SATA support in libsas patches.

There were a couple of nasty non trivial things to sort out before this
one could be made to work.

Firstly, I'd like to thank Doug Gilbert for diagnosing a problem with
the LSI expanders where the REPORT_SATA_PHY command was returning the
D2H FIS in the wrong order (Although, here, I think I have to blame the
SAS standards which specifies the FIS "shall be returned in little
endian format" and later on "which means resp[24] shall be FIS type"
The latter, of course, implying big endian format).  Just to make sure,
I put a check for the D2H FIS type being in the wrong position and
reverse the FIS data if it is.

The second is a problem outlined in Annex G of the SAS standard (again,
a technical point with D2H FIS ... necessitating a phy reset on certain
conditions).

With the patch, I can now see my SATA-1 disk in a cascaded expander
configuration.

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/libsas/sas_expander.c