[PATCH 3/4] drm/i915/opregion: convert to struct intel_display
Imre Deak
imre.deak at intel.com
Tue Aug 6 14:37:48 UTC 2024
On Wed, Jul 31, 2024 at 07:44:35PM +0300, Jani Nikula wrote:
> Going forward, struct intel_display shall replace struct
> drm_i915_private as the main display device data pointer type. Convert
> intel_opregion.[ch] to struct intel_display.
>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_bios.c | 10 +-
> .../drm/i915/display/intel_display_debugfs.c | 5 +-
> .../drm/i915/display/intel_display_device.c | 8 +-
> .../drm/i915/display/intel_display_driver.c | 6 +-
> .../gpu/drm/i915/display/intel_display_irq.c | 24 +-
> drivers/gpu/drm/i915/display/intel_opregion.c | 296 +++++++++---------
> drivers/gpu/drm/i915/display/intel_opregion.h | 54 ++--
> drivers/gpu/drm/i915/i915_driver.c | 22 +-
> drivers/gpu/drm/xe/display/xe_display.c | 19 +-
> 9 files changed, 238 insertions(+), 206 deletions(-)
>
> [...]
> diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
> index 4c9b9e7ebc91..0cf6c0711dae 100644
> --- a/drivers/gpu/drm/i915/display/intel_opregion.c
> +++ b/drivers/gpu/drm/i915/display/intel_opregion.c
> [...]
>
> @@ -384,18 +384,18 @@ static int swsci(struct drm_i915_private *dev_priv,
> int intel_opregion_notify_encoder(struct intel_encoder *encoder,
> bool enable)
> {
> - struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> + struct intel_display *display = to_intel_display(encoder->base.dev);
Nit: AFAICS, this could be just to_intel_display(encoder).
> u32 parm = 0;
> u32 type = 0;
> u32 port;
> int ret;
>
> /* don't care about old stuff for now */
> - if (!HAS_DDI(dev_priv))
> + if (!HAS_DDI(display))
> return 0;
>
> /* Avoid port out of bounds checks if SWSCI isn't there. */
> - ret = check_swsci_function(dev_priv, SWSCI_SBCB_DISPLAY_POWER_STATE);
> + ret = check_swsci_function(display, SWSCI_SBCB_DISPLAY_POWER_STATE);
> if (ret)
> return ret;
>
> @@ -419,7 +419,7 @@ int intel_opregion_notify_encoder(struct intel_encoder *encoder,
> * number is out of bounds after mapping.
> */
> if (port > 4) {
> - drm_dbg_kms(&dev_priv->drm,
> + drm_dbg_kms(display->drm,
> "[ENCODER:%d:%s] port %c (index %u) out of bounds for display power state notification\n",
> encoder->base.base.id, encoder->base.name,
> port_name(encoder->port), port);
> @@ -444,7 +444,7 @@ int intel_opregion_notify_encoder(struct intel_encoder *encoder,
> type = DISPLAY_TYPE_INTERNAL_FLAT_PANEL;
> break;
> default:
> - drm_WARN_ONCE(&dev_priv->drm, 1,
> + drm_WARN_ONCE(display->drm, 1,
> "unsupported intel_encoder type %d\n",
> encoder->type);
> return -EINVAL;
> @@ -452,7 +452,7 @@ int intel_opregion_notify_encoder(struct intel_encoder *encoder,
>
> parm |= type << (16 + port * 3);
>
> - return swsci(dev_priv, SWSCI_SBCB_DISPLAY_POWER_STATE, parm, NULL);
> + return swsci(display, SWSCI_SBCB_DISPLAY_POWER_STATE, parm, NULL);
> }
>
> static const struct {
> @@ -466,33 +466,33 @@ static const struct {
> { PCI_D3cold, 0x04 },
> };
>
> -int intel_opregion_notify_adapter(struct drm_i915_private *dev_priv,
> +int intel_opregion_notify_adapter(struct intel_display *display,
> pci_power_t state)
Missing change in the forward declartion for !CONFIG_ACPI, also reported
by lkp.
> {
> int i;
>
> - if (!HAS_DDI(dev_priv))
> + if (!HAS_DDI(display))
> return 0;
>
> for (i = 0; i < ARRAY_SIZE(power_state_map); i++) {
> if (state == power_state_map[i].pci_power_state)
> - return swsci(dev_priv, SWSCI_SBCB_ADAPTER_POWER_STATE,
> + return swsci(display, SWSCI_SBCB_ADAPTER_POWER_STATE,
> power_state_map[i].parm, NULL);
> }
>
> return -EINVAL;
> }
>
> [...]
> int
> -intel_opregion_get_panel_type(struct drm_i915_private *dev_priv)
> +intel_opregion_get_panel_type(struct intel_display *display)
Same as above.
> {
> u32 panel_details;
> int ret;
>
> - ret = swsci(dev_priv, SWSCI_GBDA_PANEL_DETAILS, 0x0, &panel_details);
> + ret = swsci(display, SWSCI_GBDA_PANEL_DETAILS, 0x0, &panel_details);
> if (ret)
> return ret;
>
> ret = (panel_details >> 8) & 0xff;
> if (ret > 0x10) {
> - drm_dbg_kms(&dev_priv->drm,
> + drm_dbg_kms(display->drm,
> "Invalid OpRegion panel type 0x%x\n", ret);
> return -EINVAL;
> }
>
> /* fall back to VBT panel type? */
> if (ret == 0x0) {
> - drm_dbg_kms(&dev_priv->drm, "No panel type in OpRegion\n");
> + drm_dbg_kms(display->drm, "No panel type in OpRegion\n");
> return -ENODEV;
> }
>
> @@ -1083,7 +1084,7 @@ intel_opregion_get_panel_type(struct drm_i915_private *dev_priv)
> * via a quirk list :(
> */
> if (!dmi_check_system(intel_use_opregion_panel_type)) {
> - drm_dbg_kms(&dev_priv->drm,
> + drm_dbg_kms(display->drm,
> "Ignoring OpRegion panel type (%d)\n", ret - 1);
> return -ENODEV;
> }
> @@ -1104,8 +1105,8 @@ intel_opregion_get_panel_type(struct drm_i915_private *dev_priv)
> */
> const struct drm_edid *intel_opregion_get_edid(struct intel_connector *connector)
> {
> - struct drm_i915_private *i915 = to_i915(connector->base.dev);
> - struct intel_opregion *opregion = i915->display.opregion;
> + struct intel_display *display = to_intel_display(connector->base.dev);
Nit: this could be just to_intel_display(connector).
With the forward declarations fixed looks ok:
Reviewed-by: Imre Deak <imre.deak at intel.com>
More information about the Intel-xe
mailing list