On Mon, Aug 03, 2015 at 12:25:11PM -0400, Theodore Ts'o wrote:
On Mon, Aug 03, 2015 at 05:27:29PM +0200, Daniel Vetter wrote:
Ok I updated fixes-stuff with just 2 patches which seem to be enough to fix it. Plus a patch to convert Linus' hack into something we can keep plus a drive-by WARNING fix in mst that got in the way for me.
Seems to work here in getting rid of the Oops. If this tests out for you too I'll send a pull to Linus.
I've just tried pulling in your updated fixes-stuff, and it avoids the oops and allows external the monitor to work correctly. However, I'm still seeing a large number of drm/i915 related warning messages and other kernel kvetching.
Involved a bit of head-scratching since I'm not too familiar with the watermark code and it gained a lot of complexity for atomic. But the below patch should be able to fix this WARNING (and it looks like it was a genuine one). If it works for you I'll bake it into a proper patch.
Thanks, Daniel
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 30e0f54ba19d..ae07fd0c395c 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -15121,6 +15121,11 @@ void intel_modeset_setup_hw_state(struct drm_device *dev,
intel_modeset_readout_hw_state(dev);
+ if (IS_GEN9(dev)) + skl_wm_get_hw_state(dev); + else if (HAS_PCH_SPLIT(dev)) + ilk_wm_get_hw_state(dev); + /* * Now that we have the config, copy it to each CRTC struct * Note that this could go away if we move to using crtc_config @@ -15162,11 +15167,6 @@ void intel_modeset_setup_hw_state(struct drm_device *dev, pll->on = false; }
- if (IS_GEN9(dev)) - skl_wm_get_hw_state(dev); - else if (HAS_PCH_SPLIT(dev)) - ilk_wm_get_hw_state(dev); - if (force_restore) { i915_redisable_vga(dev);