mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-19 20:34:20 +08:00
scsi: smartpqi: Add host level stream detection enable
Allow R5/R6 stream detection to be disabled/enabled using sysfs entry enable_stream_detection. Example usage: lsscsi [2:2:0:0] storage Adaptec 3258P-32i /e 0010 ^ | +---- NOTE: here host is host2 find /sys -name \*enable_stream\* /sys/devices/pci0000:36/0000:36:00.0/0000:37:00.0/0000:38:00.0/0000:39:00.0/host2/scsi_host/host2/enable_stream_detection /sys/devices/pci0000:5b/0000:5b:00.0/0000:5c:00.0/host3/scsi_host/host3/enable_stream_detection Current stream detection: cat /sys/devices/pci0000:36/0000:36:00.0/0000:37:00.0/0000:38:00.0/0000:39:00.0/host2/scsi_host/host2/enable_stream_detection 1 Turn off stream detection: echo 0 > /sys/devices/pci0000:36/0000:36:00.0/0000:37:00.0/0000:38:00.0/0000:39:00.0/host2/scsi_host/host2/enable_stream_detection Turn on stream detection: echo 1 > /sys/devices/pci0000:36/0000:36:00.0/0000:37:00.0/0000:38:00.0/0000:39:00.0/host2/scsi_host/host2/enable_stream_detection Link: https://lore.kernel.org/r/161549376281.25025.1132304698441513738.stgit@brunhilda Reviewed-by: Scott Benesh <scott.benesh@microchip.com> Reviewed-by: Mike McGowen <mike.mcgowen@microchip.com> Reviewed-by: Scott Teel <scott.teel@microchip.com> Reviewed-by: Kevin Barnett <kevin.barnett@microchip.com> Reviewed-by: Martin Wilck <mwilck@suse.com> Signed-off-by: Don Brace <don.brace@microchip.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
c7ffedb3a7
commit
5be746d7d7
@ -6696,6 +6696,34 @@ static ssize_t pqi_lockup_action_store(struct device *dev,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static ssize_t pqi_host_enable_stream_detection_show(struct device *dev,
|
||||
struct device_attribute *attr, char *buffer)
|
||||
{
|
||||
struct Scsi_Host *shost = class_to_shost(dev);
|
||||
struct pqi_ctrl_info *ctrl_info = shost_to_hba(shost);
|
||||
|
||||
return scnprintf(buffer, 10, "%x\n",
|
||||
ctrl_info->enable_stream_detection);
|
||||
}
|
||||
|
||||
static ssize_t pqi_host_enable_stream_detection_store(struct device *dev,
|
||||
struct device_attribute *attr, const char *buffer, size_t count)
|
||||
{
|
||||
struct Scsi_Host *shost = class_to_shost(dev);
|
||||
struct pqi_ctrl_info *ctrl_info = shost_to_hba(shost);
|
||||
u8 set_stream_detection = 0;
|
||||
|
||||
if (kstrtou8(buffer, 0, &set_stream_detection))
|
||||
return -EINVAL;
|
||||
|
||||
if (set_stream_detection > 0)
|
||||
set_stream_detection = 1;
|
||||
|
||||
ctrl_info->enable_stream_detection = set_stream_detection;
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
static ssize_t pqi_host_enable_r5_writes_show(struct device *dev,
|
||||
struct device_attribute *attr, char *buffer)
|
||||
{
|
||||
@ -6758,6 +6786,9 @@ static DEVICE_ATTR(vendor, 0444, pqi_vendor_show, NULL);
|
||||
static DEVICE_ATTR(rescan, 0200, NULL, pqi_host_rescan_store);
|
||||
static DEVICE_ATTR(lockup_action, 0644, pqi_lockup_action_show,
|
||||
pqi_lockup_action_store);
|
||||
static DEVICE_ATTR(enable_stream_detection, 0644,
|
||||
pqi_host_enable_stream_detection_show,
|
||||
pqi_host_enable_stream_detection_store);
|
||||
static DEVICE_ATTR(enable_r5_writes, 0644,
|
||||
pqi_host_enable_r5_writes_show, pqi_host_enable_r5_writes_store);
|
||||
static DEVICE_ATTR(enable_r6_writes, 0644,
|
||||
@ -6771,6 +6802,7 @@ static struct device_attribute *pqi_shost_attrs[] = {
|
||||
&dev_attr_vendor,
|
||||
&dev_attr_rescan,
|
||||
&dev_attr_lockup_action,
|
||||
&dev_attr_enable_stream_detection,
|
||||
&dev_attr_enable_r5_writes,
|
||||
&dev_attr_enable_r6_writes,
|
||||
NULL
|
||||
|
Loading…
Reference in New Issue
Block a user