[Intel-gfx] drm/i915: Disable DDI Pipe Control on HSW while disabling pipe

Shobhit Kumar shobhit.kumar at intel.com
Mon Jun 11 10:27:47 CEST 2012


On 06/11/2012 12:38 PM, Daniel Vetter wrote:
> On Mon, Jun 11, 2012 at 7:25 AM, Shobhit Kumar<shobhit.kumar at intel.com>  wrote:
>> On 06/08/2012 07:20 PM, Eugeni Dodonov wrote:
>>>
>>> On 06/08/2012 09:49 AM, Daniel Vetter wrote:
>>>>
>>>> On Fri, Jun 08, 2012 at 11:44:23AM +0530, Shobhit Kumar wrote:
>>>>>
>>>>> In Haswell while disabling a pipe, we need to disable the DDI control as
>>>>> well along with the PIPECONF. Otherwise we will hit assertions during
>>>>> crtc
>>>>> disable
>>>>
>>>>
>>>> Hm, can you add such an example assert with backtrace please? All these
>>>> asserts encode our current understanding of the hw depency chain, so I'd
>>>> like to check whether we're really doing the right thing and don't just
>>>> stfu some dmesg noise.
>>>>
>>>> Thanks, Daniel
>>>
>>>
>>> This is part of the pipe disabling process starting with Haswell. DDI
>>> pipe function control should be disabled when pipe is being disabled,
>>> otherwise it stays in enabled state and on next enabling we hit the
>>> assert within assert_fdi_tx:
>>>
>>> ...
>>> if (IS_HASWELL(dev_priv->dev)) {
>>> /* On Haswell, DDI is used instead of FDI_TX_CTL */
>>> reg = DDI_FUNC_CTL(pipe);
>>> val = I915_READ(reg);
>>> cur_state = !!(val&  PIPE_DDI_FUNC_ENABLE);
>>> ...
>>>
>> Eugeni already explained how and where the assertion will be raised. Please
>> find a sample assertion while loading the driver with HDMI output connected
>
> Yeah, we've discussed this quite a bit, thanks anyway for following
> up. Imo I'm not too stressed out about this backtrace since (as per my
> discussion with Eugeni) our code and asserts around disabling the
> ddi/pch fdi rx stuff is a bit ugly/buggy still for hsw/lpt, so I think
> this can wait a bit.

Its just that the DP enabling does not work properly if the pipe 
DDI_FUNC_CTL is not off while I am testing my DP code. In case of HDMI 
even if the assertion is there it works when we re-enable it in modeset, 
but for DP, DDI_FUNC_CTL already enabled spells doom. Maybe it has got 
to do with the fact that HDMI is driver by WRPLL while in my code DP is 
over SPLL ?

>
> Imo the ddi disable shouldn't be in the pipe disable function but
> makes more sense in the fdi disable functions. But then it would be
> brutally obviously that that still touches the fdi tx regs on hsw, and
> from there on it's all down the rabbit hole ...

Yeah, I agree

Regards
Shobhit



More information about the Intel-gfx mailing list