Tejun Heo
e5005b15c9
libata: issue DIPM enable commands with LPM state updated
...
Low level drivers may behave differently depending on the current
link->lpm_policy. During ata_eh_set_lpm(), DIPM enable commands are
issued after the successful completion of ap->ops->set_lpm(), which
means that the controller is already in the target state. This causes
DIPM enable commands to be processed with mismatching controller power
state and link->lpm_policy value.
In ahci, link->lpm_policy is used to ignore certain PHY events if LPM
is enabled; however, as DIPM commands are issued with stale
link->lpm_policy, they sometimes end up triggering these conditions
and get aborted leading to LPM configuration failure.
Fix it by updating link->lpm_policy before issuing DIPM enable
commands.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Kyle McMartin <kyle@mcmartin.ca>
Cc: stable@kernel.org
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2010-12-24 13:34:34 -05:00
..
2010-10-21 20:21:04 -04:00
2010-10-21 20:21:04 -04:00
2010-10-21 21:17:00 -04:00
2010-10-21 20:21:05 -04:00
2010-10-21 20:21:05 -04:00
2010-12-24 13:33:37 -05:00
2010-10-21 21:17:00 -04:00
2010-08-15 00:53:08 -04:00
2010-12-24 13:34:18 -05:00
2010-12-24 13:34:34 -05:00
2010-10-21 20:21:04 -04:00
2010-11-17 12:03:58 -05:00
2010-12-24 13:32:07 -05:00
2010-10-21 20:21:04 -04:00
2010-10-21 20:21:03 -04:00
2010-10-21 20:21:05 -04:00
2010-12-24 13:33:37 -05:00
2010-05-25 19:40:30 -04:00
2010-05-25 19:40:30 -04:00
2010-05-25 19:40:30 -04:00
2010-09-09 14:19:18 -04:00
2010-03-30 22:02:32 +09:00
2010-05-19 13:32:19 -04:00
2010-05-25 19:40:30 -04:00
2010-05-25 19:40:24 -04:00
2010-10-24 13:41:39 -07:00
2010-08-25 19:24:15 -04:00
2010-10-21 20:21:05 -04:00
2010-05-25 19:40:24 -04:00
2010-05-25 19:40:30 -04:00
2010-05-25 19:40:30 -04:00
2010-12-24 13:33:23 -05:00
2010-05-25 19:40:30 -04:00
2010-05-25 19:40:30 -04:00
2010-05-25 19:40:30 -04:00
2010-05-25 19:40:24 -04:00
2010-05-25 19:40:30 -04:00
2010-05-25 19:40:30 -04:00
2010-05-25 19:40:24 -04:00
2009-03-24 22:52:39 -04:00
2010-10-18 11:03:14 +02:00
2010-05-25 19:40:30 -04:00
2009-04-07 08:31:11 -07:00
2010-05-25 19:40:30 -04:00
2010-11-12 17:10:53 -05:00
2010-06-02 17:50:38 +10:00
2010-05-25 19:40:30 -04:00
2010-08-06 09:25:50 -06:00
2009-03-24 22:13:27 -04:00
2010-05-25 19:40:30 -04:00
2010-05-25 19:40:24 -04:00
2010-03-01 14:58:46 -05:00
2010-05-25 19:40:30 -04:00
2010-11-12 17:10:55 -05:00
2010-08-06 09:25:50 -06:00
2010-05-25 19:40:30 -04:00
2010-03-01 14:58:46 -05:00
2010-05-25 19:40:30 -04:00
2009-05-31 14:50:40 +01:00
2010-09-29 17:20:24 +02:00
2010-10-21 20:21:06 -04:00
2010-05-25 19:40:24 -04:00
2010-05-25 19:40:30 -04:00
2010-05-19 13:32:19 -04:00
2010-06-18 15:07:32 +08:00
2009-03-24 22:13:27 -04:00
2010-05-25 19:40:30 -04:00
2010-03-30 22:02:32 +09:00
2010-05-25 19:40:30 -04:00
2010-03-01 14:58:46 -05:00
2010-10-21 20:21:05 -04:00
2010-05-25 19:40:30 -04:00
2010-10-21 20:21:05 -04:00
2010-05-25 19:40:30 -04:00
2010-05-25 19:40:30 -04:00
2010-10-21 20:21:06 -04:00
2010-05-25 19:40:30 -04:00
2010-10-21 20:21:06 -04:00
2010-05-25 19:40:30 -04:00
2010-09-09 22:27:44 -04:00
2010-05-19 13:36:50 -04:00
2010-08-25 19:24:16 -04:00
2010-10-21 20:21:05 -04:00
2010-10-21 20:21:05 -04:00
2010-10-21 20:21:03 -04:00
2010-10-21 20:21:03 -04:00
2010-05-19 13:38:54 -04:00
2008-01-23 05:24:15 -05:00
2010-05-25 19:40:45 -04:00
2010-10-21 20:21:05 -04:00
2010-05-25 19:40:19 -04:00
2010-05-25 19:40:30 -04:00
2010-05-25 19:40:24 -04:00
2010-05-19 13:36:46 -04:00
2010-05-25 19:40:24 -04:00
2010-11-19 13:16:26 -05:00
2010-05-25 19:40:24 -04:00