diff mbox series

[04/10] qla2xxx: Add logs for SFP temperature monitoring

Message ID 20230801114057.27039-5-njavali@marvell.com (mailing list archive)
State Superseded
Headers show
Series qla2xxx driver misc features | expand

Commit Message

Nilesh Javali Aug. 1, 2023, 11:40 a.m. UTC
From: Bikash Hazarika <bhazarika@marvell.com>

Add logs for SFP Temperature Alert async event to
check if laser is enabled/disabled.

Signed-off-by: Bikash Hazarika <bhazarika@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_isr.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

Comments

Himanshu Madhani Aug. 2, 2023, 7:52 p.m. UTC | #1
On 8/1/23 04:40, Nilesh Javali wrote:
> From: Bikash Hazarika <bhazarika@marvell.com>
> 
> Add logs for SFP Temperature Alert async event to
> check if laser is enabled/disabled.
> 
> Signed-off-by: Bikash Hazarika <bhazarika@marvell.com>
> Signed-off-by: Nilesh Javali <njavali@marvell.com>
> ---
>   drivers/scsi/qla2xxx/qla_isr.c | 18 ++++++++++++++++++
>   1 file changed, 18 insertions(+)
> 
> diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
> index 867025c89909..e98788191897 100644
> --- a/drivers/scsi/qla2xxx/qla_isr.c
> +++ b/drivers/scsi/qla2xxx/qla_isr.c
> @@ -56,6 +56,22 @@ const char *const port_state_str[] = {
>   	[FCS_ONLINE]		= "ONLINE"
>   };
>   
> +#define SFP_DISABLE_LASER_INITIATED    0x15  /* Sub code of 8070 AEN */
> +#define SFP_ENABLE_LASER_INITIATED     0x16  /* Sub code of 8070 AEN */
> +
> +static inline void display_Laser_info(scsi_qla_host_t *vha,
> +				      u16 mb1, u16 mb2, u16 mb3) {
> +
> +	if (mb1 == SFP_DISABLE_LASER_INITIATED)
> +		ql_log(ql_log_warn, vha, 0xf0a2,
> +		       "SFP temperature (%d C) reached/exceeded the threshold (%d C). Laser is disabled.\n",
> +		       mb3, mb2);
> +	if (mb1 == SFP_ENABLE_LASER_INITIATED)
> +		ql_log(ql_log_warn, vha, 0xf0a3,
> +		       "SFP temperature (%d C) reached normal operating level. Laser is enabled.\n",
> +		       mb3);
> +}
> +
>   static void
>   qla24xx_process_abts(struct scsi_qla_host *vha, struct purex_item *pkt)
>   {
> @@ -1927,6 +1943,8 @@ qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb)
>   		break;
>   
>   	case MBA_TEMPERATURE_ALERT:
> +		if (IS_QLA27XX(ha) || IS_QLA28XX(ha))
> +			display_Laser_info(vha, mb[1], mb[2], mb[3]);
>   		ql_dbg(ql_dbg_async, vha, 0x505e,
>   		    "TEMPERATURE ALERT: %04x %04x %04x\n", mb[1], mb[2], mb[3]);
>   		break;

Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
diff mbox series

Patch

diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index 867025c89909..e98788191897 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -56,6 +56,22 @@  const char *const port_state_str[] = {
 	[FCS_ONLINE]		= "ONLINE"
 };
 
+#define SFP_DISABLE_LASER_INITIATED    0x15  /* Sub code of 8070 AEN */
+#define SFP_ENABLE_LASER_INITIATED     0x16  /* Sub code of 8070 AEN */
+
+static inline void display_Laser_info(scsi_qla_host_t *vha,
+				      u16 mb1, u16 mb2, u16 mb3) {
+
+	if (mb1 == SFP_DISABLE_LASER_INITIATED)
+		ql_log(ql_log_warn, vha, 0xf0a2,
+		       "SFP temperature (%d C) reached/exceeded the threshold (%d C). Laser is disabled.\n",
+		       mb3, mb2);
+	if (mb1 == SFP_ENABLE_LASER_INITIATED)
+		ql_log(ql_log_warn, vha, 0xf0a3,
+		       "SFP temperature (%d C) reached normal operating level. Laser is enabled.\n",
+		       mb3);
+}
+
 static void
 qla24xx_process_abts(struct scsi_qla_host *vha, struct purex_item *pkt)
 {
@@ -1927,6 +1943,8 @@  qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb)
 		break;
 
 	case MBA_TEMPERATURE_ALERT:
+		if (IS_QLA27XX(ha) || IS_QLA28XX(ha))
+			display_Laser_info(vha, mb[1], mb[2], mb[3]);
 		ql_dbg(ql_dbg_async, vha, 0x505e,
 		    "TEMPERATURE ALERT: %04x %04x %04x\n", mb[1], mb[2], mb[3]);
 		break;