mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 12:30:53 +07:00
scsi: Centralise ssp frame information units
The xfer_rdy, command, and task frame's iu structures are not available in <scsi/sas.h>, but only aic94xx driver folder. Add them to include/scsi/sas.h Signed-off-by: John Garry <john.garry@huawei.com> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
4190230edb
commit
c15d75bec6
@ -327,46 +327,9 @@ struct scb_header {
|
|||||||
|
|
||||||
#define LUN_SIZE 8
|
#define LUN_SIZE 8
|
||||||
|
|
||||||
/* See SAS spec, task IU
|
#define EFB_MASK 0x80
|
||||||
*/
|
#define TASK_PRIO_MASK 0x78
|
||||||
struct ssp_task_iu {
|
#define TASK_ATTR_MASK 0x07
|
||||||
u8 lun[LUN_SIZE]; /* BE */
|
|
||||||
u16 _r_a;
|
|
||||||
u8 tmf;
|
|
||||||
u8 _r_b;
|
|
||||||
__be16 tag; /* BE */
|
|
||||||
u8 _r_c[14];
|
|
||||||
} __attribute__ ((packed));
|
|
||||||
|
|
||||||
/* See SAS spec, command IU
|
|
||||||
*/
|
|
||||||
struct ssp_command_iu {
|
|
||||||
u8 lun[LUN_SIZE];
|
|
||||||
u8 _r_a;
|
|
||||||
u8 efb_prio_attr; /* enable first burst, task prio & attr */
|
|
||||||
#define EFB_MASK 0x80
|
|
||||||
#define TASK_PRIO_MASK 0x78
|
|
||||||
#define TASK_ATTR_MASK 0x07
|
|
||||||
|
|
||||||
u8 _r_b;
|
|
||||||
u8 add_cdb_len; /* in dwords, since bit 0,1 are reserved */
|
|
||||||
union {
|
|
||||||
u8 cdb[16];
|
|
||||||
struct {
|
|
||||||
__le64 long_cdb_addr; /* bus address, LE */
|
|
||||||
__le32 long_cdb_size; /* LE */
|
|
||||||
u8 _r_c[3];
|
|
||||||
u8 eol_ds; /* eol:6,6, ds:5,4 */
|
|
||||||
} long_cdb; /* sequencer extension */
|
|
||||||
};
|
|
||||||
} __attribute__ ((packed));
|
|
||||||
|
|
||||||
struct xfer_rdy_iu {
|
|
||||||
__be32 requested_offset; /* BE */
|
|
||||||
__be32 write_data_len; /* BE */
|
|
||||||
__be32 _r_a;
|
|
||||||
} __attribute__ ((packed));
|
|
||||||
|
|
||||||
/* ---------- SCB tasks ---------- */
|
/* ---------- SCB tasks ---------- */
|
||||||
|
|
||||||
/* This is both ssp_task and long_ssp_task
|
/* This is both ssp_task and long_ssp_task
|
||||||
@ -511,7 +474,7 @@ struct abort_task {
|
|||||||
u8 proto_conn_rate;
|
u8 proto_conn_rate;
|
||||||
__le32 _r_a;
|
__le32 _r_a;
|
||||||
struct ssp_frame_hdr ssp_frame;
|
struct ssp_frame_hdr ssp_frame;
|
||||||
struct ssp_task_iu ssp_task;
|
struct ssp_tmf_iu ssp_task;
|
||||||
__le16 sister_scb;
|
__le16 sister_scb;
|
||||||
__le16 conn_handle;
|
__le16 conn_handle;
|
||||||
u8 flags; /* ovrd_itnl_timer:3,3, suspend_data_trans:2,2 */
|
u8 flags; /* ovrd_itnl_timer:3,3, suspend_data_trans:2,2 */
|
||||||
@ -549,7 +512,7 @@ struct clear_nexus {
|
|||||||
u8 _r_b[3];
|
u8 _r_b[3];
|
||||||
u8 conn_mask;
|
u8 conn_mask;
|
||||||
u8 _r_c[19];
|
u8 _r_c[19];
|
||||||
struct ssp_task_iu ssp_task; /* LUN and TAG */
|
struct ssp_tmf_iu ssp_task; /* LUN and TAG */
|
||||||
__le16 _r_d;
|
__le16 _r_d;
|
||||||
__le16 conn_handle;
|
__le16 conn_handle;
|
||||||
__le64 _r_e;
|
__le64 _r_e;
|
||||||
@ -562,7 +525,7 @@ struct initiate_ssp_tmf {
|
|||||||
u8 proto_conn_rate;
|
u8 proto_conn_rate;
|
||||||
__le32 _r_a;
|
__le32 _r_a;
|
||||||
struct ssp_frame_hdr ssp_frame;
|
struct ssp_frame_hdr ssp_frame;
|
||||||
struct ssp_task_iu ssp_task;
|
struct ssp_tmf_iu ssp_task;
|
||||||
__le16 sister_scb;
|
__le16 sister_scb;
|
||||||
__le16 conn_handle;
|
__le16 conn_handle;
|
||||||
u8 flags; /* itnl override and suspend data tx */
|
u8 flags; /* itnl override and suspend data tx */
|
||||||
|
@ -344,6 +344,43 @@ struct ssp_response_iu {
|
|||||||
u8 sense_data[0];
|
u8 sense_data[0];
|
||||||
} __attribute__ ((packed));
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
struct ssp_command_iu {
|
||||||
|
u8 lun[8];
|
||||||
|
u8 _r_a;
|
||||||
|
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
u8 attr:3;
|
||||||
|
u8 prio:4;
|
||||||
|
u8 efb:1;
|
||||||
|
};
|
||||||
|
u8 efb_prio_attr;
|
||||||
|
};
|
||||||
|
|
||||||
|
u8 _r_b;
|
||||||
|
|
||||||
|
u8 _r_c:2;
|
||||||
|
u8 add_cdb_len:6;
|
||||||
|
|
||||||
|
u8 cdb[16];
|
||||||
|
u8 add_cdb[0];
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
struct xfer_rdy_iu {
|
||||||
|
__be32 requested_offset;
|
||||||
|
__be32 write_data_len;
|
||||||
|
__be32 _r_a;
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
struct ssp_tmf_iu {
|
||||||
|
u8 lun[8];
|
||||||
|
u16 _r_a;
|
||||||
|
u8 tmf;
|
||||||
|
u8 _r_b;
|
||||||
|
__be16 tag;
|
||||||
|
u8 _r_c[14];
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
/* ---------- SMP ---------- */
|
/* ---------- SMP ---------- */
|
||||||
|
|
||||||
struct report_general_resp {
|
struct report_general_resp {
|
||||||
@ -538,6 +575,43 @@ struct ssp_response_iu {
|
|||||||
u8 sense_data[0];
|
u8 sense_data[0];
|
||||||
} __attribute__ ((packed));
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
struct ssp_command_iu {
|
||||||
|
u8 lun[8];
|
||||||
|
u8 _r_a;
|
||||||
|
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
u8 efb:1;
|
||||||
|
u8 prio:4;
|
||||||
|
u8 attr:3;
|
||||||
|
};
|
||||||
|
u8 efb_prio_attr;
|
||||||
|
};
|
||||||
|
|
||||||
|
u8 _r_b;
|
||||||
|
|
||||||
|
u8 add_cdb_len:6;
|
||||||
|
u8 _r_c:2;
|
||||||
|
|
||||||
|
u8 cdb[16];
|
||||||
|
u8 add_cdb[0];
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
struct xfer_rdy_iu {
|
||||||
|
__be32 requested_offset;
|
||||||
|
__be32 write_data_len;
|
||||||
|
__be32 _r_a;
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
struct ssp_tmf_iu {
|
||||||
|
u8 lun[8];
|
||||||
|
u16 _r_a;
|
||||||
|
u8 tmf;
|
||||||
|
u8 _r_b;
|
||||||
|
__be16 tag;
|
||||||
|
u8 _r_c[14];
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
/* ---------- SMP ---------- */
|
/* ---------- SMP ---------- */
|
||||||
|
|
||||||
struct report_general_resp {
|
struct report_general_resp {
|
||||||
|
Loading…
Reference in New Issue
Block a user