diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c index b8dce0576512..bbcc2142d7df 100644 --- a/drivers/gpu/drm/i915/display/intel_opregion.c +++ b/drivers/gpu/drm/i915/display/intel_opregion.c @@ -1159,13 +1159,10 @@ void intel_opregion_register(struct drm_i915_private *i915) intel_opregion_resume(i915); } -void intel_opregion_resume(struct drm_i915_private *i915) +static void intel_opregion_resume_display(struct drm_i915_private *i915) { struct intel_opregion *opregion = &i915->display.opregion; - if (!opregion->header) - return; - if (opregion->acpi) { intel_didl_outputs(i915); intel_setup_cadls(i915); @@ -1186,10 +1183,34 @@ void intel_opregion_resume(struct drm_i915_private *i915) /* Some platforms abuse the _DSM to enable MUX */ intel_dsm_get_bios_data_funcs_supported(i915); +} + +void intel_opregion_resume(struct drm_i915_private *i915) +{ + struct intel_opregion *opregion = &i915->display.opregion; + + if (!opregion->header) + return; + + if (HAS_DISPLAY(i915)) + intel_opregion_resume_display(i915); intel_opregion_notify_adapter(i915, PCI_D0); } +static void intel_opregion_suspend_display(struct drm_i915_private *i915) +{ + struct intel_opregion *opregion = &i915->display.opregion; + + if (opregion->asle) + opregion->asle->ardy = ASLE_ARDY_NOT_READY; + + cancel_work_sync(&i915->display.opregion.asle_work); + + if (opregion->acpi) + opregion->acpi->drdy = 0; +} + void intel_opregion_suspend(struct drm_i915_private *i915, pci_power_t state) { struct intel_opregion *opregion = &i915->display.opregion; @@ -1199,13 +1220,8 @@ void intel_opregion_suspend(struct drm_i915_private *i915, pci_power_t state) intel_opregion_notify_adapter(i915, state); - if (opregion->asle) - opregion->asle->ardy = ASLE_ARDY_NOT_READY; - - cancel_work_sync(&i915->display.opregion.asle_work); - - if (opregion->acpi) - opregion->acpi->drdy = 0; + if (HAS_DISPLAY(i915)) + intel_opregion_suspend_display(i915); } void intel_opregion_unregister(struct drm_i915_private *i915)