mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 09:59:32 +00:00
Merge branch 'for-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata
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.
This commit is contained in:
commit
0b7962a6c4
4 changed files with 20 additions and 18 deletions
|
@ -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->flags & (AHCI_HFLAG_MULTI_MSI | AHCI_HFLAG_MULTI_MSIX)) {
|
||||||
if (hpriv->irq_handler)
|
if (hpriv->irq_handler)
|
||||||
dev_warn(host->dev, "both AHCI_HFLAG_MULTI_MSI flag set \
|
dev_warn(host->dev,
|
||||||
and custom irq handler implemented\n");
|
"both AHCI_HFLAG_MULTI_MSI flag set and custom irq handler implemented\n");
|
||||||
|
|
||||||
rc = ahci_host_activate_multi_irqs(host, sht);
|
rc = ahci_host_activate_multi_irqs(host, sht);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -884,7 +884,7 @@ unsigned long ata_pack_xfermask(unsigned long pio_mask,
|
||||||
* @udma_mask: resulting udma_mask
|
* @udma_mask: resulting udma_mask
|
||||||
*
|
*
|
||||||
* Unpack @xfer_mask into @pio_mask, @mwdma_mask and @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,
|
void ata_unpack_xfermask(unsigned long xfer_mask, unsigned long *pio_mask,
|
||||||
unsigned long *mwdma_mask, unsigned long *udma_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.
|
* EH context.
|
||||||
*
|
*
|
||||||
* RETURNS:
|
* 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 ata_wait_ready(struct ata_link *link, unsigned long deadline,
|
||||||
int (*check_ready)(struct ata_link *link))
|
int (*check_ready)(struct ata_link *link))
|
||||||
|
@ -3480,7 +3480,7 @@ int ata_wait_ready(struct ata_link *link, unsigned long deadline,
|
||||||
* EH context.
|
* EH context.
|
||||||
*
|
*
|
||||||
* RETURNS:
|
* 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 ata_wait_after_reset(struct ata_link *link, unsigned long deadline,
|
||||||
int (*check_ready)(struct ata_link *link))
|
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
|
* sata_link_debounce - debounce SATA phy status
|
||||||
* @link: ATA link to debounce SATA phy status for
|
* @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
|
* @deadline: deadline jiffies for the operation
|
||||||
*
|
*
|
||||||
* Make sure SStatus of @link reaches stable state, determined by
|
* 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
|
* sata_link_resume - resume SATA link
|
||||||
* @link: ATA link to resume SATA
|
* @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
|
* @deadline: deadline jiffies for the operation
|
||||||
*
|
*
|
||||||
* Resume SATA phy @link and debounce it.
|
* 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
|
* sata_link_hardreset - reset link via SATA phy reset
|
||||||
* @link: link to 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
|
* @deadline: deadline jiffies for the operation
|
||||||
* @online: optional out parameter indicating link onlineness
|
* @online: optional out parameter indicating link onlineness
|
||||||
* @check_ready: optional callback to check link readiness
|
* @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;
|
struct ata_taskfile tf;
|
||||||
unsigned int err_mask;
|
unsigned int err_mask;
|
||||||
|
unsigned long timeout = 0;
|
||||||
|
|
||||||
/* set up set-features taskfile */
|
/* set up set-features taskfile */
|
||||||
DPRINTK("set features - SATA features\n");
|
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.protocol = ATA_PROT_NODATA;
|
||||||
tf.nsect = feature;
|
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);
|
DPRINTK("EXIT, err_mask=%x\n", err_mask);
|
||||||
return 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
|
* After allocating an ATA host and initializing it, most libata
|
||||||
* LLDs perform three steps to activate the host - start host,
|
* 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.
|
* arguments and performs the three steps in one go.
|
||||||
*
|
*
|
||||||
* An invalid IRQ skips the IRQ registration and expects the host to
|
* 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
|
* @ap: ATA port to be detached
|
||||||
*
|
*
|
||||||
* Detach all ATA devices and the associated SCSI devices of @ap;
|
* Detach all ATA devices and the associated SCSI devices of @ap;
|
||||||
|
|
|
@ -1109,7 +1109,7 @@ static void ata_scsi_sdev_config(struct scsi_device *sdev)
|
||||||
* @rq: request to be checked
|
* @rq: request to be checked
|
||||||
*
|
*
|
||||||
* ATAPI commands which transfer variable length data to host
|
* 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
|
* function checks whether overflow should be drained and ignored
|
||||||
* for @request.
|
* for @request.
|
||||||
*
|
*
|
||||||
|
@ -3439,14 +3439,11 @@ static inline void ata_scsi_dump_cdb(struct ata_port *ap,
|
||||||
{
|
{
|
||||||
#ifdef ATA_DEBUG
|
#ifdef ATA_DEBUG
|
||||||
struct scsi_device *scsidev = cmd->device;
|
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,
|
ap->print_id,
|
||||||
scsidev->channel, scsidev->id, scsidev->lun,
|
scsidev->channel, scsidev->id, scsidev->lun,
|
||||||
scsicmd[0], scsicmd[1], scsicmd[2], scsicmd[3],
|
cmd->cmnd);
|
||||||
scsicmd[4], scsicmd[5], scsicmd[6], scsicmd[7],
|
|
||||||
scsicmd[8]);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -371,7 +371,8 @@ enum {
|
||||||
SETFEATURES_AAM_ON = 0x42,
|
SETFEATURES_AAM_ON = 0x42,
|
||||||
SETFEATURES_AAM_OFF = 0xC2,
|
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_ENABLE = 0x10, /* Enable use of SATA feature */
|
||||||
SETFEATURES_SATA_DISABLE = 0x90, /* Disable use of SATA feature */
|
SETFEATURES_SATA_DISABLE = 0x90, /* Disable use of SATA feature */
|
||||||
|
|
Loading…
Reference in a new issue