• Stefan Richter's avatar
    scsi: sd: optionally set power condition in START STOP UNIT · d2886ea3
    Stefan Richter authored
    Adds a new scsi_device flag, start_stop_pwr_cond:  If enabled, the sd
    driver will not send plain START STOP UNIT commands but ones with the
    power condition field set to 3 (standby) or 1 (active) respectively.
    
    Some FireWire disk firmwares do not stop the motor if power condition is
    zero.  Or worse, they become unresponsive after a START STOP UNIT with
    power condition = 0 and start = 0.
    
    http://lkml.org/lkml/2008/4/29/704
    
    This patch only adds the necessary code to sd_mod but doesn't activate
    it.  Follow-up patches to the FireWire drivers will add detection of
    affected devices and enable the code for them.
    
    I did not add power condition values to scsi_error.c::scsi_eh_try_stu()
    for now.  The three firmwares which suffer from above mentioned problems
    do not need START STOP UNIT in the error handler, and they are not
    adversely affected by START STOP UNIT with power condition = 0 and start
    = 1 (like scsi_eh_try_stu() sends it if scsi_device.allow_restart is
    enabled).
    Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
    Tested-by: default avatarTino Keitel <tino.keitel@gmx.de>
    d2886ea3
sd.c 51.8 KB