mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-02-04 18:18:54 +00:00
[PATCH] libata: Conditionally set host->max_cmd_len
In preparation for SAS attached SATA devices, which will not have a libata scsi_host, only setup host->max_cmd_len if ap->host exists. Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
a93620b860
commit
e6d902a3bf
@ -1325,6 +1325,19 @@ static void ata_dev_config_ncq(struct ata_device *dev,
|
|||||||
snprintf(desc, desc_sz, "NCQ (depth %d/%d)", hdepth, ddepth);
|
snprintf(desc, desc_sz, "NCQ (depth %d/%d)", hdepth, ddepth);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ata_set_port_max_cmd_len(struct ata_port *ap)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (ap->host) {
|
||||||
|
ap->host->max_cmd_len = 0;
|
||||||
|
for (i = 0; i < ATA_MAX_DEVICES; i++)
|
||||||
|
ap->host->max_cmd_len = max_t(unsigned int,
|
||||||
|
ap->host->max_cmd_len,
|
||||||
|
ap->device[i].cdb_len);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ata_dev_configure - Configure the specified ATA/ATAPI device
|
* ata_dev_configure - Configure the specified ATA/ATAPI device
|
||||||
* @dev: Target device to configure
|
* @dev: Target device to configure
|
||||||
@ -1344,7 +1357,7 @@ int ata_dev_configure(struct ata_device *dev, int print_info)
|
|||||||
struct ata_port *ap = dev->ap;
|
struct ata_port *ap = dev->ap;
|
||||||
const u16 *id = dev->id;
|
const u16 *id = dev->id;
|
||||||
unsigned int xfer_mask;
|
unsigned int xfer_mask;
|
||||||
int i, rc;
|
int rc;
|
||||||
|
|
||||||
if (!ata_dev_enabled(dev) && ata_msg_info(ap)) {
|
if (!ata_dev_enabled(dev) && ata_msg_info(ap)) {
|
||||||
ata_dev_printk(dev, KERN_INFO,
|
ata_dev_printk(dev, KERN_INFO,
|
||||||
@ -1474,11 +1487,7 @@ int ata_dev_configure(struct ata_device *dev, int print_info)
|
|||||||
cdb_intr_string);
|
cdb_intr_string);
|
||||||
}
|
}
|
||||||
|
|
||||||
ap->host->max_cmd_len = 0;
|
ata_set_port_max_cmd_len(ap);
|
||||||
for (i = 0; i < ATA_MAX_DEVICES; i++)
|
|
||||||
ap->host->max_cmd_len = max_t(unsigned int,
|
|
||||||
ap->host->max_cmd_len,
|
|
||||||
ap->device[i].cdb_len);
|
|
||||||
|
|
||||||
/* limit bridge transfers to udma5, 200 sectors */
|
/* limit bridge transfers to udma5, 200 sectors */
|
||||||
if (ata_dev_knobble(dev)) {
|
if (ata_dev_knobble(dev)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user