Here's some opregion refactoring and abstraction inspired by Radhakrishna's series [1]. This is basically what I want to see done first. The next step would be to move VBT firmware loading from intel_opregion_setup() to intel_bios_setup(). This probably involves keeping a copy of the VBT around in i915->display.vbt, maybe add vbt and vbt_size members there. This can be used to fix the i915_vbt debugfs file to actually reflect the VBT wherever it came from. BR, Jani. [1] https://patchwork.freedesktop.org/series/128341/ Jani Nikula (6): drm/i915/bios: move i915_vbt debugfs to intel_bios.c drm/i915/opregion: move i915_opregion debugfs to intel_opregion.c drm/i915/opregion: abstract getting the opregion VBT drm/i915/opregion: abstract ASLE presence check drm/i915/gvt: use local INTEL_GVT_OPREGION_SIZE drm/i915/opregion: make struct intel_opregion opaque drivers/gpu/drm/i915/display/intel_bios.c | 33 +++- drivers/gpu/drm/i915/display/intel_bios.h | 2 + .../gpu/drm/i915/display/intel_display_core.h | 3 +- .../drm/i915/display/intel_display_debugfs.c | 26 +-- .../gpu/drm/i915/display/intel_display_irq.c | 6 +- drivers/gpu/drm/i915/display/intel_opregion.c | 176 +++++++++++++----- drivers/gpu/drm/i915/display/intel_opregion.h | 47 +++-- drivers/gpu/drm/i915/gvt/kvmgt.c | 2 +- 8 files changed, 187 insertions(+), 108 deletions(-) -- 2.39.2