summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManish Rangankar <mrangankar@marvell.com>2025-12-10 13:15:54 +0300
committerMartin K. Petersen <martin.petersen@oracle.com>2025-12-17 06:34:21 +0300
commit21ab087cae5000dd084dfb21d0a4d6086f79c445 (patch)
tree02af59932b7baa4729cbc5ed2bc21f7a9caeb9aa
parent7411f1875a6055abe16e72fa5fc1b731cbfc7d76 (diff)
downloadlinux-21ab087cae5000dd084dfb21d0a4d6086f79c445.tar.xz
scsi: qla2xxx: Add support for 64G SFP speed
Incorrect speed info is shown in driver logs for 64G SFP. Add support for 64G SFP speed as per SFF-8472 specification. Signed-off-by: Manish Rangankar <mrangankar@marvell.com> Signed-off-by: Nilesh Javali <njavali@marvell.com> Reviewed-by: Himanshu Madhani <hmadhani2024@gmail.com> Link: https://patch.msgid.link/20251210101604.431868-3-njavali@marvell.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/scsi/qla2xxx/qla_def.h6
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c4
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index b3265952c4be..e44b51c5a3eb 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -5368,7 +5368,7 @@ struct edif_sa_index_entry {
struct list_head next;
};
-/* Refer to SNIA SFF 8247 */
+/* Refer to SNIA SFF 8472 */
struct sff_8247_a0 {
u8 txid; /* transceiver id */
u8 ext_txid;
@@ -5412,6 +5412,7 @@ struct sff_8247_a0 {
#define FC_SP_32 BIT_3
#define FC_SP_2 BIT_2
#define FC_SP_1 BIT_0
+#define FC_SPEED_2 BIT_1
u8 fc_sp_cc10;
u8 encode;
u8 bitrate;
@@ -5430,7 +5431,8 @@ struct sff_8247_a0 {
u8 vendor_pn[SFF_PART_NAME_LEN]; /* part number */
u8 vendor_rev[4];
u8 wavelength[2];
- u8 resv;
+#define FC_SP_64 BIT_0
+ u8 fiber_channel_speed2;
u8 cc_base;
u8 options[2]; /* offset 64 */
u8 br_max;
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 29dabcaada33..3aba4e86618f 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -4075,9 +4075,11 @@ static void qla2xxx_print_sfp_info(struct scsi_qla_host *vha)
int leftover, len;
ql_dbg(ql_dbg_init, vha, 0x015a,
- "SFP: %.*s -> %.*s ->%s%s%s%s%s%s\n",
+ "SFP: %.*s -> %.*s ->%s%s%s%s%s%s%s\n",
(int)sizeof(a0->vendor_name), a0->vendor_name,
(int)sizeof(a0->vendor_pn), a0->vendor_pn,
+ a0->fc_sp_cc10 & FC_SP_2 ? a0->fiber_channel_speed2 & FC_SP_64 ?
+ " 64G" : "" : "",
a0->fc_sp_cc10 & FC_SP_32 ? " 32G" : "",
a0->fc_sp_cc10 & FC_SP_16 ? " 16G" : "",
a0->fc_sp_cc10 & FC_SP_8 ? " 8G" : "",