libata: unify mechanism to request follow-up SRST
Previously, there were two ways to trigger follow-up SRST from hardreset method - returning -EAGAIN and leaving all device classes unmodified. Drivers never used the latter mechanism and the only use case for the former was when hardreset couldn't classify. Drop the latter mechanism and let -EAGAIN mean "perform follow-up SRST if classification is required". This change removes unnecessary follow-up SRSTs and simplifies reset implementations. Signed-off-by: Tejun Heo <htejun@gmail.com>
This commit is contained in:
@@ -1365,7 +1365,6 @@ static int ahci_hardreset(struct ata_link *link, unsigned int *class,
|
||||
|
||||
ahci_start_engine(ap);
|
||||
|
||||
*class = ATA_DEV_NONE;
|
||||
if (online)
|
||||
*class = ahci_dev_classify(ap);
|
||||
|
||||
@@ -1394,7 +1393,6 @@ static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class,
|
||||
/* vt8251 doesn't clear BSY on signature FIS reception,
|
||||
* request follow-up softreset.
|
||||
*/
|
||||
*class = ATA_DEV_NONE;
|
||||
return online ? -EAGAIN : rc;
|
||||
}
|
||||
|
||||
@@ -1439,7 +1437,6 @@ static int ahci_p5wdh_hardreset(struct ata_link *link, unsigned int *class,
|
||||
if (rc)
|
||||
ahci_kick_engine(ap, 0);
|
||||
}
|
||||
*class = ATA_DEV_NONE;
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
مرجع در شماره جدید
Block a user