• Imre Deak's avatar
    drm/i915/opregion: Fix opregion setup during system resume on platforms without display · c4a1e57b
    Imre Deak authored
    Atm, during system resume, the driver updates the display connector
    information required by the opregion video extensions during system
    resume, on platforms both with and without display being present. On
    !HAS_DISPLAY platforms this will result in the crash with the stack
    trace below, since the driver's connector state is not initialized on
    those.
    
    Bspec doesn't specify when each of the opregion functionality is
    supported (depending on the presence of display), however we can presume
    that none of the video extensions, nor the ACPI _DSM functions are
    supported on !HAS_DISPLAY platforms; accordingly skip the corresponding
    opregion/ACPI setup on those (also matching the Windows driver in this).
    
    Keep sending the opregion notification about suspending/resuming the
    whole adapter (vs. the display only which is a separate power state
    notification) on all platforms, similarly to runtime suspend/resume.
    
    This fixes the following:
    Oops: 0000 [#1] PREEMPT SMP NOPTI
    CPU: 4 PID: 1443 Comm: kworker/u40:55 Tainted: G U 6.2.0-rc8+ #58
    Hardware name: LENOVO 82VB/LNVNB161216, BIOS KMCN09WW 04/26/2022
    Workqueue: events_unbound async_run_entry_fn
    RIP: 0010:drm_connector_list_iter_next+0x4f/0xb0
    
    Call Trace:
     <TASK>
     intel_acpi_device_id_update+0x80/0x160 [i915]
     intel_opregion_resume+0x2f/0x1e0 [i915]
     ? dg2_init_clock_gating+0x49/0xf0 [i915]
     i915_drm_resume+0x137/0x190 [i915]
     ? __pfx_pci_pm_resume+0x10/0x10
     dpm_run_callback+0x47/0x150
    
    Cc: iczero <iczero@hellomouse.net>
    Reported-and-tested-by: default avatariczero <iczero@hellomouse.net>
    References: https://gitlab.freedesktop.org/drm/intel/-/issues/8015Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
    Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230308162503.3219200-1-imre.deak@intel.com
    c4a1e57b
intel_opregion.c 36 KB