[PATCH] libata: init ap->cbl to ATA_CBL_SATA early
Init ap->cbl to ATA_CBL_SATA in ata_host_init(). This is necessary for soon-to-follow SCR handling function changes. LLDDs are free to change ap->cbl during probing. Signed-off-by: Tejun Heo <htejun@gmail.com>
This commit is contained in:
@@ -2370,8 +2370,7 @@ void ata_std_probeinit(struct ata_port *ap)
|
|||||||
if ((ap->flags & ATA_FLAG_SATA) && ap->ops->scr_read) {
|
if ((ap->flags & ATA_FLAG_SATA) && ap->ops->scr_read) {
|
||||||
u32 spd;
|
u32 spd;
|
||||||
|
|
||||||
/* set cable type and resume link */
|
/* resume link */
|
||||||
ap->cbl = ATA_CBL_SATA;
|
|
||||||
sata_phy_resume(ap);
|
sata_phy_resume(ap);
|
||||||
|
|
||||||
/* init sata_spd_limit to the current value */
|
/* init sata_spd_limit to the current value */
|
||||||
@@ -4586,7 +4585,6 @@ static void ata_host_init(struct ata_port *ap, struct Scsi_Host *host,
|
|||||||
ap->udma_mask = ent->udma_mask;
|
ap->udma_mask = ent->udma_mask;
|
||||||
ap->flags |= ent->host_flags;
|
ap->flags |= ent->host_flags;
|
||||||
ap->ops = ent->port_ops;
|
ap->ops = ent->port_ops;
|
||||||
ap->cbl = ATA_CBL_NONE;
|
|
||||||
ap->sata_spd_limit = UINT_MAX;
|
ap->sata_spd_limit = UINT_MAX;
|
||||||
ap->active_tag = ATA_TAG_POISON;
|
ap->active_tag = ATA_TAG_POISON;
|
||||||
ap->last_ctl = 0xFF;
|
ap->last_ctl = 0xFF;
|
||||||
@@ -4594,6 +4592,11 @@ static void ata_host_init(struct ata_port *ap, struct Scsi_Host *host,
|
|||||||
INIT_WORK(&ap->port_task, NULL, NULL);
|
INIT_WORK(&ap->port_task, NULL, NULL);
|
||||||
INIT_LIST_HEAD(&ap->eh_done_q);
|
INIT_LIST_HEAD(&ap->eh_done_q);
|
||||||
|
|
||||||
|
/* set cable type */
|
||||||
|
ap->cbl = ATA_CBL_NONE;
|
||||||
|
if (ap->flags & ATA_FLAG_SATA)
|
||||||
|
ap->cbl = ATA_CBL_SATA;
|
||||||
|
|
||||||
for (i = 0; i < ATA_MAX_DEVICES; i++) {
|
for (i = 0; i < ATA_MAX_DEVICES; i++) {
|
||||||
struct ata_device *dev = &ap->device[i];
|
struct ata_device *dev = &ap->device[i];
|
||||||
dev->devno = i;
|
dev->devno = i;
|
||||||
|
Reference in New Issue
Block a user