]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/scsi/sd.c
scsi: sd: optionally set power condition in START STOP UNIT
[linux-2.6-omap-h63xx.git] / drivers / scsi / sd.c
index 01cefbb2d5396718f61ed49e188c05b1e2772925..d53312c4254708116a01f9e6552e3b210d809d7c 100644 (file)
@@ -1124,6 +1124,8 @@ sd_spinup_disk(struct scsi_disk *sdkp)
                                cmd[1] = 1;     /* Return immediately */
                                memset((void *) &cmd[2], 0, 8);
                                cmd[4] = 1;     /* Start spin cycle */
+                               if (sdkp->device->start_stop_pwr_cond)
+                                       cmd[4] |= 1 << 4;
                                scsi_execute_req(sdkp->device, cmd, DMA_NONE,
                                                 NULL, 0, &sshdr,
                                                 SD_TIMEOUT, SD_MAX_RETRIES);
@@ -1790,6 +1792,9 @@ static int sd_start_stop_device(struct scsi_disk *sdkp, int start)
        if (start)
                cmd[4] |= 1;    /* START */
 
+       if (sdp->start_stop_pwr_cond)
+               cmd[4] |= start ? 1 << 4 : 3 << 4;      /* Active or Standby */
+
        if (!scsi_device_online(sdp))
                return -ENODEV;