[Karmic] SRU: [PATCH 0/7] drm/i915: Fix Ironlake support
Steve Conklin
steve.conklin at canonical.com
Thu Jan 7 16:24:05 UTC 2010
On 01/07/2010 06:13 AM, Andy Whitcroft wrote:
> 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
>
ACK with the changes smb has already made to patch 1. Nice catch Andy.
Steve
More information about the kernel-team
mailing list