Message ID | 17a7be14-a9d2-9822-bb3e-1d7385f486b0@omprussia.ru |
---|---|
State | New |
Headers | show |
Series | [1/3] aha1542: clarify 'struct ccb' comments | expand |
On 1/10/21 5:46 PM, Sergey Shtylyov wrote: > 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. Let's sync up the 'struct ccb' > comments to the Adaptec AHA-154xA manual I have... > > Signed-off-by: Sergey Shtylyov <s.shtylyov@omprussia.ru> > > --- > drivers/scsi/aha1542.h | 33 +++++++++++++++++++-------------- > 1 file changed, 19 insertions(+), 14 deletions(-) > > Index: scsi/drivers/scsi/aha1542.h > =================================================================== > --- scsi.orig/drivers/scsi/aha1542.h > +++ scsi/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 > Reviewed-by: Hannes Reinecke <hare@suse.de> Cheers, Hannes -- Dr. Hannes Reinecke Kernel Storage Architect hare@suse.de +49 911 74053 688 SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer
Index: scsi/drivers/scsi/aha1542.h =================================================================== --- scsi.orig/drivers/scsi/aha1542.h +++ scsi/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
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. Let's sync up the 'struct ccb' comments to the Adaptec AHA-154xA manual I have... Signed-off-by: Sergey Shtylyov <s.shtylyov@omprussia.ru> --- drivers/scsi/aha1542.h | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-)