[Karmic] SRU: [PATCH 0/7] drm/i915: Fix Ironlake support
Andy Whitcroft
apw at canonical.com
Thu Jan 7 12:13:57 UTC 2010
On Wed, Jan 06, 2010 at 11:28:37PM +0100, Stefan Bader wrote:
> [Note: tracking bug number TBD]
>
> SRU Justification:
>
> Impact: The support for Ironlake in the i915 driver shipped with Karmic has
> several major issues which prevent Karmic from running on platforms using this
> chipset.
>
> Fix: This is a selective pick of fixes recommeded by Intel to get those
> hardware running. It is not complete but without those, the systems could
> not be used.
There appears to be a bug in the first patch where we restore CG_2D_DIS
but never save it, which is unresolved in this stack. There appears
to be a bug in the second patch but it is resolved in a later patch.
Otherwise they look vile but ironlake specific. Details below:
d927c07 drm/i915: Refactor save/restore code
this is meant to be totally benign code refactoring, I see what appear
to be two changes. First it no longer saves IIR, though that appears to
be safe as it was never restored in the old code. Second it seems to
no longer save CG_2D_DIS but still restores it, that sounds like a bug
to me.
f5179c1 drm/i915: Ironlake suspend/resume support
this seems to sneakily carry the fix below:
- dev_priv->saveBCLRPAT_A = I915_READ(BCLRPAT_A);
+ dev_priv->saveBCLRPAT_B = I915_READ(BCLRPAT_B);
Otherwise it seems to add pair save/restore changes, other than there
appears be a bug in handling of DPLL_B_MD which we save only as below:
if (IS_I965G(dev) && !IS_IGDNG(dev))
dev_priv->saveDPLL_B_MD = I915_READ(DPLL_B_MD);
but restore as below:
if (IS_I965G(dev))
I915_WRITE(DPLL_B_MD, dev_priv->saveDPLL_B_MD);
note that pipe A _is_ modified in the expected manner.
05f5315 drm/i915: Fix and cleanup DPLL calculation for Ironlake
seems to reorder the search for a clock, seems to be ironlake specific
d9fd5fe drm/i915: HDMI hardware workaround for Ironlake
looks to only affect ironlake, banging a couple of registers harder
ca1ec5e drm/i915: Add more registers save/restore for Ironlake suspend
seems to add correctly paired save/restore of a number additional
registers. It also carries the fix for the issue in the second patch:
if (IS_I965G(dev) && !IS_IGDNG(dev))
I915_WRITE(DPLL_B_MD, dev_priv->saveDPLL_B_MD);
7325017 drm/i915: Add ACPI OpRegion support for Ironlake
seems ony to change behaviour for ironlake
85208bb drm/i915: Add display hotplug event on Ironlake
seems ony to change behaviour for ironlake
-apw
More information about the kernel-team
mailing list