From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Jani Nikula <jani.nikula@intel.com>
Cc: <intel-gfx@lists.freedesktop.org>, <intel-xe@lists.freedesktop.org>
Subject: Re: [PATCH 6/7] drm/i915/display: convert dp aux backlight to struct intel_display
Date: Thu, 15 Aug 2024 15:16:00 -0400 [thread overview]
Message-ID: <Zr5T8K-zQyFD5k2c@intel.com> (raw)
In-Reply-To: <20240813164123.2674462-6-jani.nikula@intel.com>
On Tue, Aug 13, 2024 at 07:41:22PM +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_dp_aux_backlight.[ch] to struct intel_display.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> .../drm/i915/display/intel_dp_aux_backlight.c | 70 +++++++++++--------
> 1 file changed, 40 insertions(+), 30 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> index 8ce60d53dcde..33f72db99b58 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> @@ -109,7 +109,7 @@ static bool is_intel_tcon_cap(const u8 tcon_cap[4])
> static bool
> intel_dp_aux_supports_hdr_backlight(struct intel_connector *connector)
> {
> - struct drm_i915_private *i915 = to_i915(connector->base.dev);
> + struct intel_display *display = to_intel_display(connector);
> struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> struct drm_dp_aux *aux = &intel_dp->aux;
> struct intel_panel *panel = &connector->panel;
> @@ -122,7 +122,8 @@ intel_dp_aux_supports_hdr_backlight(struct intel_connector *connector)
> if (ret != sizeof(tcon_cap))
> return false;
>
> - drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] Detected %s HDR backlight interface version %d\n",
> + drm_dbg_kms(display->drm,
> + "[CONNECTOR:%d:%s] Detected %s HDR backlight interface version %d\n",
> connector->base.base.id, connector->base.name,
> is_intel_tcon_cap(tcon_cap) ? "Intel" : "unsupported", tcon_cap[0]);
>
> @@ -141,10 +142,10 @@ intel_dp_aux_supports_hdr_backlight(struct intel_connector *connector)
> * HDR static metadata we need to start maintaining table of
> * ranges for such panels.
> */
> - if (i915->display.params.enable_dpcd_backlight != INTEL_DP_AUX_BACKLIGHT_FORCE_INTEL &&
> + if (display->params.enable_dpcd_backlight != INTEL_DP_AUX_BACKLIGHT_FORCE_INTEL &&
> !(connector->base.hdr_sink_metadata.hdmi_type1.metadata_type &
> BIT(HDMI_STATIC_METADATA_TYPE1))) {
> - drm_info(&i915->drm,
> + drm_info(display->drm,
> "[CONNECTOR:%d:%s] Panel is missing HDR static metadata. Possible support for Intel HDR backlight interface is not used. If your backlight controls don't work try booting with i915.enable_dpcd_backlight=%d. needs this, please file a _new_ bug report on drm/i915, see " FDO_BUG_URL " for details.\n",
> connector->base.base.id, connector->base.name,
> INTEL_DP_AUX_BACKLIGHT_FORCE_INTEL);
> @@ -170,14 +171,15 @@ intel_dp_aux_supports_hdr_backlight(struct intel_connector *connector)
> static u32
> intel_dp_aux_hdr_get_backlight(struct intel_connector *connector, enum pipe pipe)
> {
> - struct drm_i915_private *i915 = to_i915(connector->base.dev);
> + struct intel_display *display = to_intel_display(connector);
> struct intel_panel *panel = &connector->panel;
> struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> u8 tmp;
> u8 buf[2] = {};
>
> if (drm_dp_dpcd_readb(&intel_dp->aux, INTEL_EDP_HDR_GETSET_CTRL_PARAMS, &tmp) != 1) {
> - drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to read current backlight mode from DPCD\n",
> + drm_err(display->drm,
> + "[CONNECTOR:%d:%s] Failed to read current backlight mode from DPCD\n",
> connector->base.base.id, connector->base.name);
> return 0;
> }
> @@ -195,7 +197,8 @@ intel_dp_aux_hdr_get_backlight(struct intel_connector *connector, enum pipe pipe
>
> if (drm_dp_dpcd_read(&intel_dp->aux, INTEL_EDP_BRIGHTNESS_NITS_LSB, buf,
> sizeof(buf)) != sizeof(buf)) {
> - drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to read brightness from DPCD\n",
> + drm_err(display->drm,
> + "[CONNECTOR:%d:%s] Failed to read brightness from DPCD\n",
> connector->base.base.id, connector->base.name);
> return 0;
> }
> @@ -253,8 +256,8 @@ static void
> intel_dp_aux_write_content_luminance(struct intel_connector *connector,
> struct hdr_output_metadata *hdr_metadata)
> {
> + struct intel_display *display = to_intel_display(connector);
> struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> - struct drm_i915_private *i915 = to_i915(connector->base.dev);
> int ret;
> u8 buf[4];
>
> @@ -270,7 +273,7 @@ intel_dp_aux_write_content_luminance(struct intel_connector *connector,
> INTEL_EDP_HDR_CONTENT_LUMINANCE,
> buf, sizeof(buf));
> if (ret < 0)
> - drm_dbg_kms(&i915->drm,
> + drm_dbg_kms(display->drm,
> "Content Luminance DPCD reg write failed, err:-%d\n",
> ret);
> }
> @@ -280,7 +283,7 @@ intel_dp_aux_fill_hdr_tcon_params(const struct drm_connector_state *conn_state,
> {
> struct intel_connector *connector = to_intel_connector(conn_state->connector);
> struct intel_panel *panel = &connector->panel;
> - struct drm_i915_private *i915 = to_i915(connector->base.dev);
> + struct intel_display *display = to_intel_display(connector);
>
> /*
> * According to spec segmented backlight needs to be set whenever panel is in
> @@ -291,7 +294,7 @@ intel_dp_aux_fill_hdr_tcon_params(const struct drm_connector_state *conn_state,
> *ctrl |= INTEL_EDP_HDR_TCON_2084_DECODE_ENABLE;
> }
>
> - if (DISPLAY_VER(i915) < 11)
> + if (DISPLAY_VER(display) < 11)
> *ctrl &= ~INTEL_EDP_HDR_TCON_TONE_MAPPING_ENABLE;
>
> if (panel->backlight.edp.intel_cap.supports_2020_gamut &&
> @@ -311,9 +314,9 @@ static void
> intel_dp_aux_hdr_enable_backlight(const struct intel_crtc_state *crtc_state,
> const struct drm_connector_state *conn_state, u32 level)
> {
> + struct intel_display *display = to_intel_display(crtc_state);
> struct intel_connector *connector = to_intel_connector(conn_state->connector);
> struct intel_panel *panel = &connector->panel;
> - struct drm_i915_private *i915 = to_i915(connector->base.dev);
> struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> struct hdr_output_metadata *hdr_metadata;
> int ret;
> @@ -323,7 +326,8 @@ intel_dp_aux_hdr_enable_backlight(const struct intel_crtc_state *crtc_state,
>
> ret = drm_dp_dpcd_readb(&intel_dp->aux, INTEL_EDP_HDR_GETSET_CTRL_PARAMS, &old_ctrl);
> if (ret != 1) {
> - drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to read current backlight control mode: %d\n",
> + drm_err(display->drm,
> + "[CONNECTOR:%d:%s] Failed to read current backlight control mode: %d\n",
> connector->base.base.id, connector->base.name, ret);
> return;
> }
> @@ -346,7 +350,8 @@ intel_dp_aux_hdr_enable_backlight(const struct intel_crtc_state *crtc_state,
>
> if (ctrl != old_ctrl &&
> drm_dp_dpcd_writeb(&intel_dp->aux, INTEL_EDP_HDR_GETSET_CTRL_PARAMS, ctrl) != 1)
> - drm_err(&i915->drm, "[CONNECTOR:%d:%s] Failed to configure DPCD brightness controls\n",
> + drm_err(display->drm,
> + "[CONNECTOR:%d:%s] Failed to configure DPCD brightness controls\n",
> connector->base.base.id, connector->base.name);
>
> if (intel_dp_in_hdr_mode(conn_state)) {
> @@ -377,7 +382,7 @@ static const char *dpcd_vs_pwm_str(bool aux)
> static void
> intel_dp_aux_write_panel_luminance_override(struct intel_connector *connector)
> {
> - struct drm_i915_private *i915 = to_i915(connector->base.dev);
> + struct intel_display *display = to_intel_display(connector);
> struct intel_panel *panel = &connector->panel;
> struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> int ret;
> @@ -392,7 +397,7 @@ intel_dp_aux_write_panel_luminance_override(struct intel_connector *connector)
> INTEL_EDP_HDR_PANEL_LUMINANCE_OVERRIDE,
> buf, sizeof(buf));
> if (ret < 0)
> - drm_dbg_kms(&i915->drm,
> + drm_dbg_kms(display->drm,
> "Panel Luminance DPCD reg write failed, err:-%d\n",
> ret);
> }
> @@ -400,20 +405,21 @@ intel_dp_aux_write_panel_luminance_override(struct intel_connector *connector)
> static int
> intel_dp_aux_hdr_setup_backlight(struct intel_connector *connector, enum pipe pipe)
> {
> - struct drm_i915_private *i915 = to_i915(connector->base.dev);
> + struct intel_display *display = to_intel_display(connector);
> struct intel_panel *panel = &connector->panel;
> struct drm_luminance_range_info *luminance_range =
> &connector->base.display_info.luminance_range;
> int ret;
>
> - drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] SDR backlight is controlled through %s\n",
> + drm_dbg_kms(display->drm,
> + "[CONNECTOR:%d:%s] SDR backlight is controlled through %s\n",
> connector->base.base.id, connector->base.name,
> dpcd_vs_pwm_str(panel->backlight.edp.intel_cap.sdr_uses_aux));
>
> if (!panel->backlight.edp.intel_cap.sdr_uses_aux) {
> ret = panel->backlight.pwm_funcs->setup(connector, pipe);
> if (ret < 0) {
> - drm_err(&i915->drm,
> + drm_err(display->drm,
> "[CONNECTOR:%d:%s] Failed to setup SDR backlight controls through PWM: %d\n",
> connector->base.base.id, connector->base.name, ret);
> return ret;
> @@ -430,7 +436,8 @@ intel_dp_aux_hdr_setup_backlight(struct intel_connector *connector, enum pipe pi
>
> intel_dp_aux_write_panel_luminance_override(connector);
>
> - drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] Using AUX HDR interface for backlight control (range %d..%d)\n",
> + drm_dbg_kms(display->drm,
> + "[CONNECTOR:%d:%s] Using AUX HDR interface for backlight control (range %d..%d)\n",
> connector->base.base.id, connector->base.name,
> panel->backlight.min, panel->backlight.max);
>
> @@ -501,9 +508,9 @@ static void intel_dp_aux_vesa_disable_backlight(const struct drm_connector_state
>
> static int intel_dp_aux_vesa_setup_backlight(struct intel_connector *connector, enum pipe pipe)
> {
> + struct intel_display *display = to_intel_display(connector);
> struct intel_dp *intel_dp = intel_attached_dp(connector);
> struct intel_panel *panel = &connector->panel;
> - struct drm_i915_private *i915 = dp_to_i915(intel_dp);
> u16 current_level;
> u8 current_mode;
> int ret;
> @@ -514,17 +521,19 @@ static int intel_dp_aux_vesa_setup_backlight(struct intel_connector *connector,
> if (ret < 0)
> return ret;
>
> - drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] AUX VESA backlight enable is controlled through %s\n",
> + drm_dbg_kms(display->drm,
> + "[CONNECTOR:%d:%s] AUX VESA backlight enable is controlled through %s\n",
> connector->base.base.id, connector->base.name,
> dpcd_vs_pwm_str(panel->backlight.edp.vesa.info.aux_enable));
> - drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] AUX VESA backlight level is controlled through %s\n",
> + drm_dbg_kms(display->drm,
> + "[CONNECTOR:%d:%s] AUX VESA backlight level is controlled through %s\n",
> connector->base.base.id, connector->base.name,
> dpcd_vs_pwm_str(panel->backlight.edp.vesa.info.aux_set));
>
> if (!panel->backlight.edp.vesa.info.aux_set || !panel->backlight.edp.vesa.info.aux_enable) {
> ret = panel->backlight.pwm_funcs->setup(connector, pipe);
> if (ret < 0) {
> - drm_err(&i915->drm,
> + drm_err(display->drm,
> "[CONNECTOR:%d:%s] Failed to setup PWM backlight controls for eDP backlight: %d\n",
> connector->base.base.id, connector->base.name, ret);
> return ret;
> @@ -553,7 +562,8 @@ static int intel_dp_aux_vesa_setup_backlight(struct intel_connector *connector,
> }
> }
>
> - drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] Using AUX VESA interface for backlight control\n",
> + drm_dbg_kms(display->drm,
> + "[CONNECTOR:%d:%s] Using AUX VESA interface for backlight control\n",
> connector->base.base.id, connector->base.name);
>
> return 0;
> @@ -562,11 +572,12 @@ static int intel_dp_aux_vesa_setup_backlight(struct intel_connector *connector,
> static bool
> intel_dp_aux_supports_vesa_backlight(struct intel_connector *connector)
> {
> + struct intel_display *display = to_intel_display(connector);
> struct intel_dp *intel_dp = intel_attached_dp(connector);
> - struct drm_i915_private *i915 = dp_to_i915(intel_dp);
>
> if (drm_edp_backlight_supported(intel_dp->edp_dpcd)) {
> - drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] AUX Backlight Control Supported!\n",
> + drm_dbg_kms(display->drm,
> + "[CONNECTOR:%d:%s] AUX Backlight Control Supported!\n",
> connector->base.base.id, connector->base.name);
> return true;
> }
> @@ -591,16 +602,15 @@ static const struct intel_panel_bl_funcs intel_dp_vesa_bl_funcs = {
>
> int intel_dp_aux_init_backlight_funcs(struct intel_connector *connector)
> {
> + struct intel_display *display = to_intel_display(connector);
> struct drm_device *dev = connector->base.dev;
> struct intel_panel *panel = &connector->panel;
> - struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> - struct drm_i915_private *i915 = dp_to_i915(intel_dp);
> bool try_intel_interface = false, try_vesa_interface = false;
>
> /* Check the VBT and user's module parameters to figure out which
> * interfaces to probe
> */
> - switch (i915->display.params.enable_dpcd_backlight) {
> + switch (display->params.enable_dpcd_backlight) {
> case INTEL_DP_AUX_BACKLIGHT_OFF:
> return -ENODEV;
> case INTEL_DP_AUX_BACKLIGHT_AUTO:
> --
> 2.39.2
>
next prev parent reply other threads:[~2024-08-15 19:16 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-13 16:41 [PATCH 1/7] drm/i915/display: support struct intel_atomic_state in to_intel_display() Jani Nikula
2024-08-13 16:41 ` [PATCH 2/7] drm/i915/display: convert intel_link_bw.c to struct intel_display Jani Nikula
2024-08-15 19:03 ` Rodrigo Vivi
2024-08-13 16:41 ` [PATCH 3/7] drm/i915/display: convert intel_load_detect.c " Jani Nikula
2024-08-15 19:04 ` Rodrigo Vivi
2024-08-15 19:06 ` Rodrigo Vivi
2024-08-15 19:06 ` Rodrigo Vivi
2024-08-13 16:41 ` [PATCH 4/7] drm/i915/alpm: convert " Jani Nikula
2024-08-15 19:14 ` Rodrigo Vivi
2024-08-13 16:41 ` [PATCH 5/7] drm/i915/lspcon: " Jani Nikula
2024-08-15 19:15 ` Rodrigo Vivi
2024-08-13 16:41 ` [PATCH 6/7] drm/i915/display: convert dp aux backlight " Jani Nikula
2024-08-15 19:16 ` Rodrigo Vivi [this message]
2024-08-13 16:41 ` [PATCH 7/7] drm/i915/hti: convert " Jani Nikula
2024-08-15 19:16 ` Rodrigo Vivi
2024-08-13 16:46 ` ✓ CI.Patch_applied: success for series starting with [1/7] drm/i915/display: support struct intel_atomic_state in to_intel_display() Patchwork
2024-08-13 16:47 ` ✓ CI.checkpatch: " Patchwork
2024-08-13 16:48 ` ✓ CI.KUnit: " Patchwork
2024-08-13 17:00 ` ✓ CI.Build: " Patchwork
2024-08-13 17:02 ` ✓ CI.Hooks: " Patchwork
2024-08-13 17:03 ` ✗ CI.checksparse: warning " Patchwork
2024-08-13 17:27 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-08-13 17:27 ` ✓ CI.BAT: success " Patchwork
2024-08-13 17:38 ` ✓ Fi.CI.BAT: " Patchwork
2024-08-13 20:41 ` ✗ CI.FULL: failure " Patchwork
2024-08-14 13:26 ` ✗ Fi.CI.IGT: " Patchwork
2024-08-15 19:03 ` [PATCH 1/7] " Rodrigo Vivi
2024-08-16 8:22 ` Jani Nikula
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zr5T8K-zQyFD5k2c@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.