[Intel-gfx] [v3] drm/i915/display: Force the state compute phase once to enable PSR
Souza, Jose
jose.souza at intel.com
Thu Feb 6 01:36:42 UTC 2020
Hi Ross
I'm unable to reproduce this issue, could you share the complete dmesg?
On Wed, 2020-02-05 at 16:01 -0700, Ross Zwisler wrote:
> On Mon, Jan 06, 2020 at 07:21:28AM -0800, José Roberto de Souza
> wrote:
> > Recent improvements in the state tracking in i915 caused PSR to not
> > be
> > enabled when reusing firmware/BIOS modeset, this is due to all
> > initial
> > commits returning ealier in intel_atomic_check() as needs_modeset()
> > is always false.
> >
> > To fix that here forcing the state compute phase in CRTC that is
> > driving the eDP that supports PSR once. Enable or disable PSR do
> > not
> > require a fullmodeset, so user will still experience glitch free
> > boot
> > process plus the power savings that PSR brings.
> >
> > It was tried to set mode_changed in intel_initial_commit() but at
> > this point the connectors are not registered causing a crash when
> > computing encoder state.
> >
> > v2:
> > - removed function return
> > - change arguments to match intel_hdcp_atomic_check
> >
> > v3:
> > - replaced drm includes in intel_psr.h by forward declaration(Jani)
> >
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=112253
> > Reported-by: <s.zharkoff at gmail.com>
> > Cc: Gwan-gyeong Mun <gwan-gyeong.mun at intel.com>
> > Cc: Jani Nikula <jani.nikula at intel.com>
> > Signed-off-by: José Roberto de Souza <jose.souza at intel.com>
> > Reviewed-by: Gwan-gyeong Mun <gwan-gyeong.mun at intel.com>
> > ---
>
> With the current linux/master:
>
> 6992ca0dd017e Merge branch 'parisc-5.6-1' of
> git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
>
> my system fails to boot, and I bisected the failure to this
> commit. Here are
> the relevant messages from dmesg, passed through kasan_symbolize.py:
>
> i915 0000:00:02.0: vgaarb: deactivate vga console
> [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
> [drm] Driver supports precise vblank timestamp query.
> resource sanity check: requesting [mem 0x000c0000-0x000dffff], which
> spans more than PCI Bus 0000:00 [mem 0x000c0000-0x000c3fff
> window]
> caller pci_map_rom+0x6a/0x17d mapping multiple BARs
> i915 0000:00:02.0: Invalid PCI ROM data signature: expecting
> 0x52494350, got 0xe937aa55
> [drm] Failed to find VBIOS tables (VBT)
> i915 0000:00:02.0: vgaarb: changed VGA decodes:
> olddecodes=io+mem,decodes=io+mem:owns=io+mem
> ------------[ cut here ]------------
> WARNING: CPU: 0 PID: 1 at
> drivers/gpu/drm/drm_atomic.c:296[< none >]
> drm_atomic_get_crtc_state+0xf8/0x110 drivers/gpu/drm/drm_atomic.c:304
> Modules linked in:
> CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.5.0-rc1-00573-
> g60c6a14b489ba #31
> Hardware name: GOOGLE Samus, BIOS 05/14/2019
> RIP: 0010:drm_atomic_get_crtc_state+0xf8/0x110
> Code: 89 2c 11 48 89 98 f0 01 00 00 48 8b 4d 20 8b 55 60 e8 5c aa 00
> 00 48 8b 04 24 48 83 c4 08 5b 5d 41 5c c3 48 98 e9 4e ff ff
> ff <0f> 0b e9 28 ff ff ff 48 c7 c0 f4 ff ff ff e9 3b ff ff ff 0f 1f
> 44
> RSP: 0000:ffffab4b80017970 EFLAGS: 00010246
> RAX: 0000000000000000 RBX: ffff93c1a69ca000 RCX: ffff93c1ab69b8c0
> RDX: 000000000000002d RSI: 0000000000000000 RDI: ffff93c1a69ca000
> RBP: ffff93c1a6944000 R08: 0000000000000079 R09: 0000000000000079
> R10: 000000000000002d R11: 0000000000000005 R12: 0000000000000000
> R13: ffff93c1a6944000 R14: 0000000000000005 R15: ffff93c1a6979c00
> FS: 0000000000000000(0000) GS:ffff93c1aec00000(0000)
> knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: ffff93c0f5201000 CR3: 00000003b3e0c001 CR4: 00000000003606f0
> Call Trace:
> [< none >]
> drm_atomic_add_affected_connectors+0x2e/0x110
> drivers/gpu/drm/drm_atomic.c:1046
> [< none >] drm_atomic_helper_check_modeset+0x4a1/0xa70
> drivers/gpu/drm/drm_atomic_helper.c:703
> [< none >] intel_atomic_check+0x96/0x2510
> drivers/gpu/drm/i915/display/intel_display.c:14603
> ?[< inline >] kmemdup ./include/linux/string.h:453
> ?[< none >]
> intel_digital_connector_duplicate_state+0x21/0x40
> drivers/gpu/drm/i915/display/intel_atomic.c:171
> ?[< inline >] spin_unlock_irqrestore
> ./include/linux/spinlock.h:393
> ?[< none >] drm_connector_list_iter_next+0x88/0xb0
> drivers/gpu/drm/drm_connector.c:689
> [< inline >] sanitize_watermarks
> drivers/gpu/drm/i915/display/intel_display.c:17359
> [< none >] intel_modeset_init+0x10a8/0x1d50
> drivers/gpu/drm/i915/display/intel_display.c:17602
> [< inline >] i915_driver_modeset_probe
> drivers/gpu/drm/i915/i915_drv.c:311
> [< none >] i915_driver_probe+0xa4e/0x1410
> drivers/gpu/drm/i915/i915_drv.c:1528
> ?[< none >] __kernfs_new_node+0x159/0x1c0
> fs/kernfs/dir.c:666
> [< none >] i915_pci_probe+0x54/0x138
> drivers/gpu/drm/i915/i915_pci.c:994
> [< none >] local_pci_probe+0x42/0x80 drivers/pci/pci-
> driver.c:306
> [< inline >] pci_call_probe drivers/pci/pci-driver.c:361
> [< inline >] __pci_device_probe drivers/pci/pci-driver.c:386
> [< none >] pci_device_probe+0x107/0x1a0
> drivers/pci/pci-driver.c:429
> [< none >] really_probe+0x147/0x3c0
> drivers/base/dd.c:548
> [< none >] driver_probe_device+0xb6/0x100
> drivers/base/dd.c:721
> [< none >] device_driver_attach+0x53/0x60
> drivers/base/dd.c:995
> [< none >] __driver_attach+0x8a/0x150
> drivers/base/dd.c:1072
> ?[< none >] device_driver_attach+0x60/0x60
> drivers/base/dd.c:995
> ?[< none >] device_driver_attach+0x60/0x60
> drivers/base/dd.c:995
> [< none >] bus_for_each_dev+0x78/0xc0
> drivers/base/bus.c:304
> [< none >] bus_add_driver+0x14d/0x1f0
> drivers/base/bus.c:621
> [< none >] driver_register+0x6c/0xc0
> drivers/base/driver.c:170
> ?[< none >] mipi_dsi_bus_init+0x11/0x11
> drivers/gpu/drm/drm_mipi_dsi.c:1208
> [< none >] i915_init+0x58/0x6b
> drivers/gpu/drm/i915/i915_pci.c:1057
> [< none >] do_one_initcall+0x46/0x1f4 init/main.c:938
> [< inline >] do_initcall_level init/main.c:1006
> [< inline >] do_initcalls init/main.c:1014
> [< inline >] do_basic_setup init/main.c:1031
> [< none >] kernel_init_freeable+0x1a7/0x24e
> init/main.c:1191
> ?[< none >] rest_init+0xaa/0xaa init/main.c:451
> [< none >] kernel_init+0xa/0x106 init/main.c:1109
> [< none >] ret_from_fork+0x35/0x40
> arch/x86/entry/entry_64.S:352
> ---[ end trace 261d284d91320989 ]---
> tsc: Refined TSC clocksource calibration: 2394.459 MHz
> clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x2283c51f836,
> max_idle_ns: 440795218683 ns
> clocksource: Switched to clocksource tsc
>
> After this the system appears to stop booting, and I get no more
> serial output
> nor any display.
More information about the Intel-gfx
mailing list