[SCSI] libsas: sgpio write support
commit8ec6552f4a77d15f446b00aed364e3c12d38aa6c
authorDan Williams <dan.j.williams@intel.com>
Fri, 2 Sep 2011 04:18:20 +0000 (1 21:18 -0700)
committerJames Bottomley <JBottomley@Parallels.com>
Thu, 22 Sep 2011 10:59:09 +0000 (22 14:59 +0400)
treeefaa0dfc6479d28a14e5e778e8eb246ff94c360f
parent9c224ac21506d29f5a6ff4df0c4cc9f97484fa25
[SCSI] libsas: sgpio write support

Add SFF-8485 v0.7 / SAS-1 smp-write-gpio register support to libsas.
Defer SAS-2 support unless/until it defines an sgpio interface.

Minimum implementation needed to get the lights blinking.
try_test_sas_gpio_gp_bit() provides a common method to parse the
incoming write data (raw bitstream), and the to_sas_gpio_gp_bit() helper
routine can be used as a basis for the set/clear operations for the
'read' implementation.  Host implementations parse as many bits
(ODx.[012]) as are locally supported and report the number of registers
successfully written.  If the submitted data overruns the internal
number of registers available report the write as a success with the
number of bytes remaining reported in ->resid_len.

Example (assuming an active backplane) set the "identify" pattern for
the first 21 devices:

smp_write_gpio --count=2 --data=92,49,24,92,24,92,49,24 -t 4 --index=1 /dev/bsg/sas_hostX

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/libsas/sas_host_smp.c
include/scsi/libsas.h
include/scsi/sas.h