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