[Intel-gfx] [PATCH 06/16] drm/i915: Don't call modeset related functions when display is disabled
Chris Wilson
chris at chris-wilson.co.uk
Mon Apr 8 20:50:28 UTC 2019
Quoting Jani Nikula (2018-10-22 10:00:39)
> On Mon, 22 Oct 2018, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> > Quoting Jani Nikula (2018-10-22 09:25:45)
> >> On Fri, 12 Oct 2018, José Roberto de Souza <jose.souza at intel.com> wrote:
> >> > Display features should not be initialized or deinitialized when
> >> > display is disabled.
> >
> > I completely disagree with this assertion. If the display is disabled,
> > so must all the associated hw so that we can power down the entire
> > chipset when idle. That means we have to complete the probe (so we
> > continue to rely on fuses and in place of accurate fuses pci-id quirks
> > for the infamous chipsets) and switch it off.
>
> That actually doesn't contradict with what I said about
> HAS_DISPLAY(). In many cases I think the early return on no display is
> the right thing to do. However, no display isn't the same as display
> disabled by module parameter (or whatnot)... which does require probe
> before disable to achieve the power down.
>
> But is the power down on display disable by module parameter a
> requirement for us?
We still see this error in BAT roughly every day:
<7> [557.273023] [drm:intel_power_well_enable [i915]] enabling display
<7> [557.273553] [drm:i915_redisable_vga_power_on [i915]] Something enabled VGA plane, disabling it
<4> [557.274207] ------------[ cut here ]------------
<4> [557.274420] Unclaimed write to register 0x44200
<4> [557.274637] WARNING: CPU: 2 PID: 370 at drivers/gpu/drm/i915/intel_uncore.c:1034 __unclaimed_reg_debug+0x40/0x50 [i915]
<4> [557.274643] Modules linked in: i915(+) amdgpu gpu_sched ttm vgem snd_hda_codec_hdmi coretemp btusb crct10dif_pclmul btrtl crc32_pclmul btbcm btintel ghash_clmulni_intel bluetooth cdc_ether usbnet r8152 mii ecdh_generic snd_hda_codec snd_hwdep snd_hda_core snd_pcm prime_numbers pinctrl_cherryview lpc_ich [last unloaded: i915]
<4> [557.274686] CPU: 2 PID: 370 Comm: rngd Tainted: G U 5.1.0-rc4-CI-CI_DRM_5891+ #1
<4> [557.274690] Hardware name: GOOGLE Cyan/Cyan, BIOS MrChromebox 02/15/2018
<4> [557.274829] RIP: 0010:__unclaimed_reg_debug+0x40/0x50 [i915]
<4> [557.274836] Code: 74 05 5b 5d 41 5c c3 45 84 e4 48 c7 c0 2b 6a 7b a0 48 c7 c6 21 6a 7b a0 48 0f 44 f0 89 ea 48 c7 c7 34 6a 7b a0 e8 b0 a3 a1 e0 <0f> 0b 83 2d 97 46 1b 00 01 5b 5d 41 5c c3 66 90 41 56 41 55 41 89
<4> [557.274841] RSP: 0018:ffff888079903e30 EFLAGS: 00010082
<4> [557.274847] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
<4> [557.274851] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 00000000ffffffff
<4> [557.274856] RBP: 0000000000044200 R08: 0000000000000000 R09: 0000000000000001
<4> [557.274860] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
<4> [557.274865] R13: ffff88806d820eb0 R14: 0000000000000006 R15: 0000000000000000
<4> [557.274870] FS: 00007f7c805d2740(0000) GS:ffff888079900000(0000) knlGS:0000000000000000
<4> [557.274875] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
<4> [557.274879] CR2: 00005647db5bc7d8 CR3: 000000006476c000 CR4: 00000000001006e0
<4> [557.274884] Call Trace:
<4> [557.274891] <IRQ>
<4> [557.275026] fwtable_write32+0x25f/0x2c0 [i915]
<4> [557.275149] cherryview_irq_handler+0x180/0x210 [i915]
<4> [557.275170] __handle_irq_event_percpu+0x41/0x2d0
<4> [557.275177] ? handle_irq_event+0x27/0x50
<4> [557.275188] handle_irq_event_percpu+0x2b/0x70
<4> [557.275197] handle_irq_event+0x2f/0x50
<4> [557.275207] handle_edge_irq+0xee/0x1a0
<4> [557.275216] handle_irq+0x67/0x160
<4> [557.275229] do_IRQ+0x5e/0x130
<4> [557.275240] common_interrupt+0xf/0xf
Precisely because the display is not powered down on request.
-Chris
More information about the Intel-gfx
mailing list