On Wed, 02 Nov 2011 00:31:40 -0700 Keith Packard keithp@keithp.com wrote:
On Tue, 1 Nov 2011 23:20:27 -0700, Keith Packard keithp@keithp.com wrote:
-static void ironlake_wait_panel_off(struct intel_dp *intel_dp) +#define IDLE_ON_MASK (PP_ON | PP_READY | PP_SEQUENCE_MASK | 0 | PP_SEQUENCE_STATE_MASK) +#define IDLE_ON_VALUE (PP_ON | PP_READY | PP_SEQUENCE_NONE | 0 | PP_SEQUENCE_STATE_ON_IDLE)
A bit more testing -- looks like the MacBook Air doesn't mange to get PP_READY set when it's time to turn the panel on. I should look at this a bit more closely; there's no reason it shouldn't be set. But, nothing bad seems to happen if we simply ignore the PP_READY bit
+#define IDLE_ON_MASK (PP_ON | 0 | PP_SEQUENCE_MASK | 0 | PP_SEQUENCE_STATE_MASK) +#define IDLE_ON_VALUE (PP_ON | 0 | PP_SEQUENCE_NONE | 0 | PP_SEQUENCE_STATE_ON_IDLE)
Note that PP_READY will incorrectly depend on some other register values, so in some configs the panel will happily power up even if PP_READY isn't set yet...