[Intel-gfx] drm/i915: Disable DDI Pipe Control on HSW while disabling pipe
Shobhit Kumar
shobhit.kumar at intel.com
Mon Jun 11 07:25:38 CEST 2012
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 -
[ 19.172852] WARNING: at drivers/gpu/drm/i915/intel_display.c:976
assert_fdi_tx+0x87/0x90 [i915]()
[ 19.172901] Hardware name: Shark Bay Client platform
[ 19.172941] FDI TX state assertion failure (expected off, current on)
[ 19.172986] Modules linked in: i915(+) drm_kms_helper
[ 19.173085] Pid: 1072, comm: modprobe Not tainted 3.4.0+ #26
[ 19.173185] Call Trace:
[ 19.173282] [<ffffffff81035dfa>] warn_slowpath_common+0x7a/0xb0
[ 19.173384] [<ffffffff81035ed1>] warn_slowpath_fmt+0x41/0x50
[ 19.173496] [<ffffffffa002bfe7>] assert_fdi_tx+0x87/0x90 [i915]
[ 19.173616] [<ffffffffa0030ed6>] ironlake_crtc_disable+0x176/0x800
[i915]
[ 19.173726] [<ffffffffa00315e6>] ironlake_crtc_dpms+0x86/0x90 [i915]
[ 19.173835] [<ffffffffa002cf33>] intel_crtc_dpms+0x43/0x140 [i915]
[ 19.173943] [<ffffffffa0034b10>] intel_crtc_disable+0x30/0xa0 [i915]
[ 19.174046] [<ffffffffa0002595>]
drm_helper_disable_unused_functions+0x115/0x190 [drm_kms_helper]
[ 19.174220] [<ffffffffa0036b37>] intel_modeset_init+0x677/0xe30 [i915]
[ 19.174332] [<ffffffffa000fa26>] i915_driver_load+0xa36/0xad0 [i915]
[ 19.174436] [<ffffffff813650e3>] ? drm_get_minor+0x263/0x310
[ 19.174538] [<ffffffff813673f9>] drm_get_pci_dev+0x189/0x2b0
[ 19.174655] [<ffffffffa0058443>] i915_pci_probe+0x1b/0x1d [i915]
[ 19.174757] [<ffffffff812d435a>] pci_device_probe+0x12a/0x130
[ 19.174859] [<ffffffff8137e413>] driver_probe_device+0x73/0x210
[ 19.174960] [<ffffffff8137e64b>] __driver_attach+0x9b/0xa0
[ 19.175060] [<ffffffff8137e5b0>] ? driver_probe_device+0x210/0x210
[ 19.175162] [<ffffffff8137c97e>] bus_for_each_dev+0x4e/0x80
[ 19.175262] [<ffffffff8137df89>] driver_attach+0x19/0x20
[ 19.175362] [<ffffffff8137db80>] bus_add_driver+0x1a0/0x270
[ 19.175463] [<ffffffff8137eb51>] driver_register+0x71/0x130
[ 19.175568] [<ffffffff812d4040>] __pci_register_driver+0x50/0xc0
[ 19.175671] [<ffffffff816e966d>] ? notifier_call_chain+0x4d/0x70
[ 19.175772] [<ffffffff81367635>] drm_pci_init+0x115/0x130
[ 19.175872] [<ffffffffa007e000>] ? 0xffffffffa007dfff
[ 19.175978] [<ffffffffa007e08b>] i915_init+0x8b/0x8d [i915]
[ 19.176079] [<ffffffff810001ba>] do_one_initcall+0x3a/0x160
[ 19.176181] [<ffffffff8108a91c>] sys_init_module+0xa1c/0x1ba0
[ 19.176283] [<ffffffff810889e0>] ?
ftrace_define_fields_module_load+0x70/0x70
[ 19.176445] [<ffffffff816ed5a2>] system_call_fastpath+0x16/0x1b
Regards
Shobhit
More information about the Intel-gfx
mailing list