Loading drivers/scsi/scsi_scan.c +4 −0 Original line number Diff line number Diff line Loading @@ -935,6 +935,10 @@ static int scsi_add_lun(struct scsi_device *sdev, unsigned char *inq_result, transport_configure_device(&sdev->sdev_gendev); /* The LLD can override auto suspend tunables in ->slave_configure() */ sdev->use_rpm_auto = 0; sdev->autosuspend_delay = SCSI_DEFAULT_AUTOSUSPEND_DELAY; if (sdev->host->hostt->slave_configure) { ret = sdev->host->hostt->slave_configure(sdev); if (ret) { Loading drivers/scsi/scsi_sysfs.c +2 −1 Original line number Diff line number Diff line Loading @@ -883,6 +883,7 @@ int scsi_sysfs_add_sdev(struct scsi_device *sdev) device_enable_async_suspend(&sdev->sdev_gendev); scsi_autopm_get_target(starget); pm_runtime_set_active(&sdev->sdev_gendev); if (!sdev->use_rpm_auto) pm_runtime_forbid(&sdev->sdev_gendev); pm_runtime_enable(&sdev->sdev_gendev); scsi_autopm_put_target(starget); Loading drivers/scsi/sd.c +3 −0 Original line number Diff line number Diff line Loading @@ -2843,6 +2843,9 @@ static void sd_probe_async(void *data, async_cookie_t cookie) } blk_pm_runtime_init(sdp->request_queue, dev); if (sdp->autosuspend_delay >= 0) pm_runtime_set_autosuspend_delay(dev, sdp->autosuspend_delay); add_disk(gd); if (sdkp->capacity) sd_dif_config_host(sdkp); Loading include/scsi/scsi_device.h +4 −0 Original line number Diff line number Diff line Loading @@ -159,6 +159,10 @@ struct scsi_device { unsigned is_visible:1; /* is the device visible in sysfs */ unsigned wce_default_on:1; /* Cache is ON by default */ unsigned no_dif:1; /* T10 PI (DIF) should be disabled */ unsigned use_rpm_auto:1; /* Enable runtime PM auto suspend */ #define SCSI_DEFAULT_AUTOSUSPEND_DELAY -1 int autosuspend_delay; atomic_t disk_events_disable_depth; /* disable depth for disk events */ Loading Loading
drivers/scsi/scsi_scan.c +4 −0 Original line number Diff line number Diff line Loading @@ -935,6 +935,10 @@ static int scsi_add_lun(struct scsi_device *sdev, unsigned char *inq_result, transport_configure_device(&sdev->sdev_gendev); /* The LLD can override auto suspend tunables in ->slave_configure() */ sdev->use_rpm_auto = 0; sdev->autosuspend_delay = SCSI_DEFAULT_AUTOSUSPEND_DELAY; if (sdev->host->hostt->slave_configure) { ret = sdev->host->hostt->slave_configure(sdev); if (ret) { Loading
drivers/scsi/scsi_sysfs.c +2 −1 Original line number Diff line number Diff line Loading @@ -883,6 +883,7 @@ int scsi_sysfs_add_sdev(struct scsi_device *sdev) device_enable_async_suspend(&sdev->sdev_gendev); scsi_autopm_get_target(starget); pm_runtime_set_active(&sdev->sdev_gendev); if (!sdev->use_rpm_auto) pm_runtime_forbid(&sdev->sdev_gendev); pm_runtime_enable(&sdev->sdev_gendev); scsi_autopm_put_target(starget); Loading
drivers/scsi/sd.c +3 −0 Original line number Diff line number Diff line Loading @@ -2843,6 +2843,9 @@ static void sd_probe_async(void *data, async_cookie_t cookie) } blk_pm_runtime_init(sdp->request_queue, dev); if (sdp->autosuspend_delay >= 0) pm_runtime_set_autosuspend_delay(dev, sdp->autosuspend_delay); add_disk(gd); if (sdkp->capacity) sd_dif_config_host(sdkp); Loading
include/scsi/scsi_device.h +4 −0 Original line number Diff line number Diff line Loading @@ -159,6 +159,10 @@ struct scsi_device { unsigned is_visible:1; /* is the device visible in sysfs */ unsigned wce_default_on:1; /* Cache is ON by default */ unsigned no_dif:1; /* T10 PI (DIF) should be disabled */ unsigned use_rpm_auto:1; /* Enable runtime PM auto suspend */ #define SCSI_DEFAULT_AUTOSUSPEND_DELAY -1 int autosuspend_delay; atomic_t disk_events_disable_depth; /* disable depth for disk events */ Loading