• Damien Le Moal's avatar
    scsi: sd: Differentiate system and runtime start/stop management · 3cc2ffe5
    Damien Le Moal authored
    The underlying device and driver of a SCSI disk may have different
    system and runtime power mode control requirements. This is because
    runtime power management affects only the SCSI disk, while system level
    power management affects all devices, including the controller for the
    SCSI disk.
    
    For instance, issuing a START STOP UNIT command when a SCSI disk is
    runtime suspended and resumed is fine: the command is translated to a
    STANDBY IMMEDIATE command to spin down the ATA disk and to a VERIFY
    command to wake it up. The SCSI disk runtime operations have no effect
    on the ata port device used to connect the ATA disk. However, for
    system suspend/resume operations, the ATA port used to connect the
    device will also be suspended and resumed, with the resume operation
    requiring re-validating the device link and the device itself. In this
    case, issuing a VERIFY command to spinup the disk must be done before
    starting to revalidate the device, when the ata port is being resumed.
    In such case, we must not allow the SCSI disk driver to issue START STOP
    UNIT commands.
    
    Allow a low level driver to refine the SCSI disk start/stop management
    by differentiating system and runtime cases with two new SCSI device
    flags: manage_system_start_stop and manage_runtime_start_stop. These new
    flags replace the current manage_start_stop flag. Drivers setting the
    manage_start_stop are modifed to set both new flags, thus preserving the
    existing start/stop management behavior. For backward compatibility, the
    old manage_start_stop sysfs device attribute is kept as a read-only
    attribute showing a value of 1 for devices enabling both new flags and 0
    otherwise.
    
    Fixes: 0a858905 ("ata,scsi: do not issue START STOP UNIT on resume")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
    Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
    Tested-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    3cc2ffe5
sbp2.c 46 KB