|
@@ -205,6 +205,7 @@ enum {
|
|
|
ATA_LFLAG_SW_ACTIVITY = (1 << 7), /* keep activity stats */
|
|
|
ATA_LFLAG_NO_LPM = (1 << 8), /* disable LPM on this link */
|
|
|
ATA_LFLAG_RST_ONCE = (1 << 9), /* limit recovery to one reset */
|
|
|
+ ATA_LFLAG_CHANGED = (1 << 10), /* LPM state changed on this link */
|
|
|
|
|
|
/* struct ata_port flags */
|
|
|
ATA_FLAG_SLAVE_POSS = (1 << 0), /* host supports slave dev */
|
|
@@ -309,6 +310,12 @@ enum {
|
|
|
*/
|
|
|
ATA_TMOUT_PMP_SRST_WAIT = 5000,
|
|
|
|
|
|
+ /* When the LPM policy is set to ATA_LPM_MAX_POWER, there might
|
|
|
+ * be a spurious PHY event, so ignore the first PHY event that
|
|
|
+ * occurs within 10s after the policy change.
|
|
|
+ */
|
|
|
+ ATA_TMOUT_SPURIOUS_PHY = 10000,
|
|
|
+
|
|
|
/* ATA bus states */
|
|
|
BUS_UNKNOWN = 0,
|
|
|
BUS_DMA = 1,
|
|
@@ -788,6 +795,8 @@ struct ata_link {
|
|
|
struct ata_eh_context eh_context;
|
|
|
|
|
|
struct ata_device device[ATA_MAX_DEVICES];
|
|
|
+
|
|
|
+ unsigned long last_lpm_change; /* when last LPM change happened */
|
|
|
};
|
|
|
#define ATA_LINK_CLEAR_BEGIN offsetof(struct ata_link, active_tag)
|
|
|
#define ATA_LINK_CLEAR_END offsetof(struct ata_link, device[0])
|