[Intel-gfx] [v3] drm/i915/display: Force the state compute phase once to enable PSR
Jani Nikula
jani.nikula at intel.com
Thu Feb 6 10:55:37 UTC 2020
On Thu, 06 Feb 2020, "Souza, Jose" <jose.souza at intel.com> wrote:
> Hi Ross
>
> I'm unable to reproduce this issue, could you share the complete dmesg?
Please file a bug at [1] and attach the dmesg there.
BR,
Jani.
[1] https://gitlab.freedesktop.org/drm/intel/issues/new
>
> 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.
--
Jani Nikula, Intel Open Source Graphics Center
More information about the Intel-gfx
mailing list