]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
Merge branch 'for-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 18 May 2016 01:00:39 +0000 (18:00 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 18 May 2016 01:00:39 +0000 (18:00 -0700)
Pull libata updates from Tejun Heo:
 "Trivial changes except for special case timeout bumping.

  I have two more libata branches which depend on SCSI and dmaengine
  tree respectively.  I'll send pull requests for them once the
  prerequisite trees are pulled in"

* 'for-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
  libata-scsi: use %*ph to dump small buffers
  treewide: Fix typos in libata.xml
  libata-core: Allow longer timeout for drive spinup from PUIS
  libata: Fixup awkward whitespace in warning by removing line continuation.

drivers/ata/libahci.c
drivers/ata/libata-core.c
drivers/ata/libata-scsi.c
include/linux/ata.h

index a5d7c1c2a05ee26dc80a41d440357c4a7be96a20..71b07198e207d2577a8e52fe736f91f54b39a226 100644 (file)
@@ -2550,8 +2550,8 @@ int ahci_host_activate(struct ata_host *host, struct scsi_host_template *sht)
 
        if (hpriv->flags & (AHCI_HFLAG_MULTI_MSI | AHCI_HFLAG_MULTI_MSIX)) {
                if (hpriv->irq_handler)
-                       dev_warn(host->dev, "both AHCI_HFLAG_MULTI_MSI flag set \
-                                and custom irq handler implemented\n");
+                       dev_warn(host->dev,
+                                "both AHCI_HFLAG_MULTI_MSI flag set and custom irq handler implemented\n");
 
                rc = ahci_host_activate_multi_irqs(host, sht);
        } else {
index 55e257c268ddde37677cf4ff85472f65e9a63c97..6f33ace33daf1094c272c7ef4bcde4c596ae0f56 100644 (file)
@@ -884,7 +884,7 @@ unsigned long ata_pack_xfermask(unsigned long pio_mask,
  *     @udma_mask: resulting udma_mask
  *
  *     Unpack @xfer_mask into @pio_mask, @mwdma_mask and @udma_mask.
- *     Any NULL distination masks will be ignored.
+ *     Any NULL destination masks will be ignored.
  */
 void ata_unpack_xfermask(unsigned long xfer_mask, unsigned long *pio_mask,
                         unsigned long *mwdma_mask, unsigned long *udma_mask)
@@ -3399,7 +3399,7 @@ int ata_do_set_mode(struct ata_link *link, struct ata_device **r_failed_dev)
  *     EH context.
  *
  *     RETURNS:
- *     0 if @linke is ready before @deadline; otherwise, -errno.
+ *     0 if @link is ready before @deadline; otherwise, -errno.
  */
 int ata_wait_ready(struct ata_link *link, unsigned long deadline,
                   int (*check_ready)(struct ata_link *link))
@@ -3480,7 +3480,7 @@ int ata_wait_ready(struct ata_link *link, unsigned long deadline,
  *     EH context.
  *
  *     RETURNS:
- *     0 if @linke is ready before @deadline; otherwise, -errno.
+ *     0 if @link is ready before @deadline; otherwise, -errno.
  */
 int ata_wait_after_reset(struct ata_link *link, unsigned long deadline,
                                int (*check_ready)(struct ata_link *link))
@@ -3493,7 +3493,7 @@ int ata_wait_after_reset(struct ata_link *link, unsigned long deadline,
 /**
  *     sata_link_debounce - debounce SATA phy status
  *     @link: ATA link to debounce SATA phy status for
- *     @params: timing parameters { interval, duratinon, timeout } in msec
+ *     @params: timing parameters { interval, duration, timeout } in msec
  *     @deadline: deadline jiffies for the operation
  *
  *     Make sure SStatus of @link reaches stable state, determined by
@@ -3563,7 +3563,7 @@ int sata_link_debounce(struct ata_link *link, const unsigned long *params,
 /**
  *     sata_link_resume - resume SATA link
  *     @link: ATA link to resume SATA
- *     @params: timing parameters { interval, duratinon, timeout } in msec
+ *     @params: timing parameters { interval, duration, timeout } in msec
  *     @deadline: deadline jiffies for the operation
  *
  *     Resume SATA phy @link and debounce it.
@@ -3746,7 +3746,7 @@ int ata_std_prereset(struct ata_link *link, unsigned long deadline)
 /**
  *     sata_link_hardreset - reset link via SATA phy reset
  *     @link: link to reset
- *     @timing: timing parameters { interval, duratinon, timeout } in msec
+ *     @timing: timing parameters { interval, duration, timeout } in msec
  *     @deadline: deadline jiffies for the operation
  *     @online: optional out parameter indicating link onlineness
  *     @check_ready: optional callback to check link readiness
@@ -4528,6 +4528,7 @@ unsigned int ata_dev_set_feature(struct ata_device *dev, u8 enable, u8 feature)
 {
        struct ata_taskfile tf;
        unsigned int err_mask;
+       unsigned long timeout = 0;
 
        /* set up set-features taskfile */
        DPRINTK("set features - SATA features\n");
@@ -4539,7 +4540,10 @@ unsigned int ata_dev_set_feature(struct ata_device *dev, u8 enable, u8 feature)
        tf.protocol = ATA_PROT_NODATA;
        tf.nsect = feature;
 
-       err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, 0);
+       if (enable == SETFEATURES_SPINUP)
+               timeout = ata_probe_timeout ?
+                         ata_probe_timeout * 1000 : SETFEATURES_SPINUP_TIMEOUT;
+       err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, timeout);
 
        DPRINTK("EXIT, err_mask=%x\n", err_mask);
        return err_mask;
@@ -6208,7 +6212,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
  *
  *     After allocating an ATA host and initializing it, most libata
  *     LLDs perform three steps to activate the host - start host,
- *     request IRQ and register it.  This helper takes necessasry
+ *     request IRQ and register it.  This helper takes necessary
  *     arguments and performs the three steps in one go.
  *
  *     An invalid IRQ skips the IRQ registration and expects the host to
@@ -6261,7 +6265,7 @@ int ata_host_activate(struct ata_host *host, int irq,
 }
 
 /**
- *     ata_port_detach - Detach ATA port in prepration of device removal
+ *     ata_port_detach - Detach ATA port in preparation of device removal
  *     @ap: ATA port to be detached
  *
  *     Detach all ATA devices and the associated SCSI devices of @ap;
index 567859ce0512f8e61a46b4c10d9aa3b788493617..7bcc870afeaa75406817a96f4262c5e8999f6822 100644 (file)
@@ -1109,7 +1109,7 @@ static void ata_scsi_sdev_config(struct scsi_device *sdev)
  *     @rq: request to be checked
  *
  *     ATAPI commands which transfer variable length data to host
- *     might overflow due to application error or hardare bug.  This
+ *     might overflow due to application error or hardware bug.  This
  *     function checks whether overflow should be drained and ignored
  *     for @request.
  *
@@ -3439,14 +3439,11 @@ static inline void ata_scsi_dump_cdb(struct ata_port *ap,
 {
 #ifdef ATA_DEBUG
        struct scsi_device *scsidev = cmd->device;
-       u8 *scsicmd = cmd->cmnd;
 
-       DPRINTK("CDB (%u:%d,%d,%d) %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",
+       DPRINTK("CDB (%u:%d,%d,%d) %9ph\n",
                ap->print_id,
                scsidev->channel, scsidev->id, scsidev->lun,
-               scsicmd[0], scsicmd[1], scsicmd[2], scsicmd[3],
-               scsicmd[4], scsicmd[5], scsicmd[6], scsicmd[7],
-               scsicmd[8]);
+               cmd->cmnd);
 #endif
 }
 
index c1a2f345cbe6146352fff77080019eba5d0fe76e..f310ec0f072e5e9ada48935d9c0c1b362424598f 100644 (file)
@@ -371,7 +371,8 @@ enum {
        SETFEATURES_AAM_ON      = 0x42,
        SETFEATURES_AAM_OFF     = 0xC2,
 
-       SETFEATURES_SPINUP      = 0x07, /* Spin-up drive */
+       SETFEATURES_SPINUP              = 0x07, /* Spin-up drive */
+       SETFEATURES_SPINUP_TIMEOUT      = 30000, /* 30s timeout for drive spin-up from PUIS */
 
        SETFEATURES_SATA_ENABLE = 0x10, /* Enable use of SATA feature */
        SETFEATURES_SATA_DISABLE = 0x90, /* Disable use of SATA feature */