As Paulo explained at [1], there's a modeset related hang occuring on HSW. I bisected it down to removing a workaround meant for pre-production hardware, and Paulo cooked up a workaround that worked for him. Unfortunately I was still able to trigger the hangs by disabling all planes on pipe B but leaving the pipe active, and the doing a modeset on pipe A. The actual problem can occur when we enable any plane on a pipe that is not fully running yet. When a pipe is considered running depends on a bit on the type of encoder used. But in any case we should not really be enabling planes on disabled pipes anyway, so implementing an actual workaround should not even be necessary. We just need to be careful when we enable planes. For me it seems Jani already fixed the problem when he proposed killing the cursor enable calls from the .mode_set hooks. So it looks like our normal plane enabling during .crtc_enable happens late enough for the pipe to be fully up. I actually want to refactor the plane enabling/disabling during our .crtc_{enable,disable} a bit. But as that doesn't seem necessary to prevent the hangs, I'm posting these minimal fixes first, and then we can go crazy later. [1] http://lists.freedesktop.org/archives/intel-gfx/2013-September/033040.html -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html