1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00

drm/i915: Extract opregion vbt presence check

We want to later change intel_opregion_get_vbt to duplicate the vbt
memory if present, which would be an overkill when we just want to
peek into the presence of opregion vbt. Carve out the presence check
into its own function to use in places where only the presence of vbt
is required.

Suggested-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240228213235.2495611-5-radhakrishna.sripada@intel.com
This commit is contained in:
Radhakrishna Sripada 2024-02-28 13:32:33 -08:00 committed by Jani Nikula
parent d962f0af80
commit 9d9bb71f3e
3 changed files with 12 additions and 2 deletions

View file

@ -3414,8 +3414,7 @@ bool intel_bios_is_lvds_present(struct drm_i915_private *i915, u8 *i2c_pin)
* additional data. Trust that if the VBT was written into * additional data. Trust that if the VBT was written into
* the OpRegion then they have validated the LVDS's existence. * the OpRegion then they have validated the LVDS's existence.
*/ */
if (intel_opregion_get_vbt(i915, NULL)) return intel_opregion_vbt_present(i915);
return true;
} }
return false; return false;

View file

@ -1131,6 +1131,16 @@ const struct drm_edid *intel_opregion_get_edid(struct intel_connector *intel_con
return drm_edid; return drm_edid;
} }
bool intel_opregion_vbt_present(struct drm_i915_private *i915)
{
struct intel_opregion *opregion = i915->display.opregion;
if (!opregion || !opregion->vbt)
return false;
return true;
}
const void *intel_opregion_get_vbt(struct drm_i915_private *i915, size_t *size) const void *intel_opregion_get_vbt(struct drm_i915_private *i915, size_t *size)
{ {
struct intel_opregion *opregion = i915->display.opregion; struct intel_opregion *opregion = i915->display.opregion;

View file

@ -53,6 +53,7 @@ int intel_opregion_notify_adapter(struct drm_i915_private *dev_priv,
int intel_opregion_get_panel_type(struct drm_i915_private *dev_priv); int intel_opregion_get_panel_type(struct drm_i915_private *dev_priv);
const struct drm_edid *intel_opregion_get_edid(struct intel_connector *connector); const struct drm_edid *intel_opregion_get_edid(struct intel_connector *connector);
bool intel_opregion_vbt_present(struct drm_i915_private *i915);
const void *intel_opregion_get_vbt(struct drm_i915_private *i915, size_t *size); const void *intel_opregion_get_vbt(struct drm_i915_private *i915, size_t *size);
bool intel_opregion_headless_sku(struct drm_i915_private *i915); bool intel_opregion_headless_sku(struct drm_i915_private *i915);