Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

scsi: pm80xx: Add sysfs attribute to track iop1 count

A new sysfs variable 'ctl_iop1_count' is being introduced that tells if
the controller is alive by indicating controller ticks. If on subsequent
run we see the ticks changing that indicates that controller is not
dead.

Using the 'ctl_iop1_count' sysfs variable we can see ticks incrementing:

linux-9saw:~# cat /sys/class/scsi_host/host*/ctl_iop1_count
0x00000069
0x0000006b
0x0000006d
0x00000072

Link: https://lore.kernel.org/r/20210415103352.3580-6-Viswas.G@microchip.com
Acked-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Vishakha Channapattan <vishakhavc@google.com>
Signed-off-by: Viswas G <Viswas.G@microchip.com>
Signed-off-by: Ruksar Devadi <Ruksar.devadi@microchip.com>
Signed-off-by: Ashokkumar N <Ashokkumar.N@microchip.com>
Signed-off-by: Radha Ramachandran <radha@google.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by

Vishakha Channapattan and committed by
Martin K. Petersen
b0c306e6 0602624a

+23
+23
drivers/scsi/pm8001/pm8001_ctl.c
··· 974 974 } 975 975 static DEVICE_ATTR_RO(ctl_iop0_count); 976 976 977 + /** 978 + * ctl_iop1_count_show - controller iop1 count check 979 + * @cdev: pointer to embedded class device 980 + * @buf: the buffer returned 981 + * 982 + * A sysfs 'read-only' shost attribute. 983 + */ 984 + 985 + static ssize_t ctl_iop1_count_show(struct device *cdev, 986 + struct device_attribute *attr, char *buf) 987 + { 988 + struct Scsi_Host *shost = class_to_shost(cdev); 989 + struct sas_ha_struct *sha = SHOST_TO_SAS_HA(shost); 990 + struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; 991 + unsigned int iop1cnt; 992 + 993 + iop1cnt = pm8001_mr32(pm8001_ha->general_stat_tbl_addr, 20); 994 + return sysfs_emit(buf, "0x%08x\n", iop1cnt); 995 + 996 + } 997 + static DEVICE_ATTR_RO(ctl_iop1_count); 998 + 977 999 struct device_attribute *pm8001_host_attrs[] = { 978 1000 &dev_attr_interface_rev, 979 1001 &dev_attr_controller_fatal_error, ··· 1023 1001 &dev_attr_ctl_hmi_error, 1024 1002 &dev_attr_ctl_raae_count, 1025 1003 &dev_attr_ctl_iop0_count, 1004 + &dev_attr_ctl_iop1_count, 1026 1005 NULL, 1027 1006 }; 1028 1007