|
@@ -153,7 +153,7 @@ MODULE_VERSION(DRV_VERSION);
|
|
|
|
|
|
/**
|
|
/**
|
|
* ata_force_cbl - force cable type according to libata.force
|
|
* ata_force_cbl - force cable type according to libata.force
|
|
- * @link: ATA link of interest
|
|
|
|
|
|
+ * @ap: ATA port of interest
|
|
*
|
|
*
|
|
* Force cable type according to libata.force and whine about it.
|
|
* Force cable type according to libata.force and whine about it.
|
|
* The last entry which has matching port number is used, so it
|
|
* The last entry which has matching port number is used, so it
|
|
@@ -2396,6 +2396,7 @@ int ata_dev_configure(struct ata_device *dev)
|
|
else if (dev->class == ATA_DEV_ATAPI) {
|
|
else if (dev->class == ATA_DEV_ATAPI) {
|
|
const char *cdb_intr_string = "";
|
|
const char *cdb_intr_string = "";
|
|
const char *atapi_an_string = "";
|
|
const char *atapi_an_string = "";
|
|
|
|
+ const char *dma_dir_string = "";
|
|
u32 sntf;
|
|
u32 sntf;
|
|
|
|
|
|
rc = atapi_cdb_len(id);
|
|
rc = atapi_cdb_len(id);
|
|
@@ -2436,13 +2437,19 @@ int ata_dev_configure(struct ata_device *dev)
|
|
cdb_intr_string = ", CDB intr";
|
|
cdb_intr_string = ", CDB intr";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (atapi_dmadir || atapi_id_dmadir(dev->id)) {
|
|
|
|
+ dev->flags |= ATA_DFLAG_DMADIR;
|
|
|
|
+ dma_dir_string = ", DMADIR";
|
|
|
|
+ }
|
|
|
|
+
|
|
/* print device info to dmesg */
|
|
/* print device info to dmesg */
|
|
if (ata_msg_drv(ap) && print_info)
|
|
if (ata_msg_drv(ap) && print_info)
|
|
ata_dev_printk(dev, KERN_INFO,
|
|
ata_dev_printk(dev, KERN_INFO,
|
|
- "ATAPI: %s, %s, max %s%s%s\n",
|
|
|
|
|
|
+ "ATAPI: %s, %s, max %s%s%s%s\n",
|
|
modelbuf, fwrevbuf,
|
|
modelbuf, fwrevbuf,
|
|
ata_mode_string(xfer_mask),
|
|
ata_mode_string(xfer_mask),
|
|
- cdb_intr_string, atapi_an_string);
|
|
|
|
|
|
+ cdb_intr_string, atapi_an_string,
|
|
|
|
+ dma_dir_string);
|
|
}
|
|
}
|
|
|
|
|
|
/* determine max_sectors */
|
|
/* determine max_sectors */
|
|
@@ -6560,8 +6567,6 @@ int ata_host_suspend(struct ata_host *host, pm_message_t mesg)
|
|
ata_lpm_enable(host);
|
|
ata_lpm_enable(host);
|
|
|
|
|
|
rc = ata_host_request_pm(host, mesg, 0, ATA_EHI_QUIET, 1);
|
|
rc = ata_host_request_pm(host, mesg, 0, ATA_EHI_QUIET, 1);
|
|
- if (rc == 0)
|
|
|
|
- host->dev->power.power_state = mesg;
|
|
|
|
return rc;
|
|
return rc;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -6580,7 +6585,6 @@ void ata_host_resume(struct ata_host *host)
|
|
{
|
|
{
|
|
ata_host_request_pm(host, PMSG_ON, ATA_EH_SOFTRESET,
|
|
ata_host_request_pm(host, PMSG_ON, ATA_EH_SOFTRESET,
|
|
ATA_EHI_NO_AUTOPSY | ATA_EHI_QUIET, 0);
|
|
ATA_EHI_NO_AUTOPSY | ATA_EHI_QUIET, 0);
|
|
- host->dev->power.power_state = PMSG_ON;
|
|
|
|
|
|
|
|
/* reenable link pm */
|
|
/* reenable link pm */
|
|
ata_lpm_disable(host);
|
|
ata_lpm_disable(host);
|