aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aha1542.h
diff options
context:
space:
mode:
authorSergey Shtylyov <s.shtylyov@omprussia.ru>2021-01-10 19:46:59 +0300
committerMartin K. Petersen <martin.petersen@oracle.com>2021-01-13 00:14:07 -0500
commit5637d5b769abc0c213a751433bbae418d9419c48 (patch)
tree6f68e5c26a9344def98a676593e5e014446e6f48 /drivers/scsi/aha1542.h
parentscsi: ufs: A tad optimization in query upiu trace (diff)
downloadlinux-dev-5637d5b769abc0c213a751433bbae418d9419c48.tar.xz
linux-dev-5637d5b769abc0c213a751433bbae418d9419c48.zip
scsi: aha1542: Clarify 'struct ccb' comments
This driver's original authors did pretty bad job of documenting the Command Control Block (CCB) structure -- especially its 2nd byte, where the bit numbers were completely left out. Sync up the 'struct ccb' comments to the Adaptec AHA-154xA manual. Link: https://lore.kernel.org/r/17a7be14-a9d2-9822-bb3e-1d7385f486b0@omprussia.ru Reviewed-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Sergey Shtylyov <s.shtylyov@omprussia.ru> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/aha1542.h')
-rw-r--r--drivers/scsi/aha1542.h33
1 files changed, 19 insertions, 14 deletions
diff --git a/drivers/scsi/aha1542.h b/drivers/scsi/aha1542.h
index f5b0d210fb3c..92a5f9896ace 100644
--- a/drivers/scsi/aha1542.h
+++ b/drivers/scsi/aha1542.h
@@ -78,23 +78,28 @@ static inline void any2scsi(u8 *p, u32 v)
#define MAX_CDB 12
#define MAX_SENSE 14
-struct ccb { /* Command Control Block 5.3 */
- u8 op; /* Command Control Block Operation Code */
- u8 idlun; /* op=0,2:Target Id, op=1:Initiator Id */
- /* Outbound data transfer, length is checked*/
- /* Inbound data transfer, length is checked */
- /* Logical Unit Number */
+/* Command Control Block (CCB), 5.3 */
+struct ccb {
+ u8 op; /* Command Control Block Operation Code: */
+ /* 0x00: SCSI Initiator CCB, 0x01: SCSI Target CCB, */
+ /* 0x02: SCSI Initiator CCB with Scatter/Gather, */
+ /* 0x81: SCSI Bus Device Reset CCB */
+ u8 idlun; /* Address and Direction Control: */
+ /* Bits 7-5: op=0, 2: Target ID, op=1: Initiator ID */
+ /* Bit 4: Outbound data transfer, length is checked */
+ /* Bit 3: Inbound data transfer, length is checked */
+ /* Bits 2-0: Logical Unit Number */
u8 cdblen; /* SCSI Command Length */
- u8 rsalen; /* Request Sense Allocation Length/Disable */
- u8 datalen[3]; /* Data Length (msb, .., lsb) */
- u8 dataptr[3]; /* Data Pointer */
- u8 linkptr[3]; /* Link Pointer */
+ u8 rsalen; /* Request Sense Allocation Length/Disable Auto Sense */
+ u8 datalen[3]; /* Data Length (MSB, ..., LSB) */
+ u8 dataptr[3]; /* Data Pointer (MSB, ..., LSB) */
+ u8 linkptr[3]; /* Link Pointer (MSB, ..., LSB) */
u8 commlinkid; /* Command Linking Identifier */
- u8 hastat; /* Host Adapter Status (HASTAT) */
- u8 tarstat; /* Target Device Status */
+ u8 hastat; /* Host Adapter Status (HASTAT) */
+ u8 tarstat; /* Target Device Status (TARSTAT) */
u8 reserved[2];
- u8 cdb[MAX_CDB+MAX_SENSE]; /* SCSI Command Descriptor Block */
- /* REQUEST SENSE */
+ u8 cdb[MAX_CDB + MAX_SENSE]; /* SCSI Command Descriptor Block */
+ /* followed by the Auto Sense data */
};
#define AHA1542_REGION_SIZE 4