All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Lyude Paul <lyude@redhat.com>, intel-gfx@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Rodrigo Vivi <rodrigo.vivi@intel.com>,
	Lee Shawn C <shawn.c.lee@intel.com>
Subject: Re: [PATCH 3/5] drm/i915: Fix DPCD register order in intel_dp_aux_enable_backlight()
Date: Tue, 03 Dec 2019 14:41:00 +0200	[thread overview]
Message-ID: <87r21lintv.fsf@intel.com> (raw)
In-Reply-To: <20191122231616.2574-4-lyude@redhat.com>

On Fri, 22 Nov 2019, Lyude Paul <lyude@redhat.com> wrote:
> For eDP panels, it appears it's expected that so long as the panel is in
> DPCD control mode that the brightness value is never set to 0. Instead,
> if the desired effect is to set the panel's backlight to 0 we're
> expected to simply turn off the backlight through the
> DP_EDP_DISPLAY_CONTROL_REGISTER.
>
> We already do the latter correctly in intel_dp_aux_disable_backlight().
> But, we make the mistake of writing the DPCD registers in the wrong
> order when enabling the backlight in intel_dp_aux_enable_backlight()
> since we currently enable the backlight through
> DP_EDP_DISPLAY_CONTROL_REGISTER before writing the brightness level. On
> the X1 Extreme 2nd Generation, this appears to have the potential of
> confusing the panel in such a way that further attempts to set the
> brightness don't actually change the backlight as expected and leave it
> off. Presumably, this happens because the incorrect register writing
> order briefly leaves the panel with DPCD mode enabled and a 0 brightness
> level set.
>
> So, reverse the order we write the DPCD registers when enabling the
> panel backlight so that we write the brightness value first, and enable
> the backlight second. This fix appears to be the final bit needed to get
> the backlight on the ThinkPad X1 Extreme 2nd Generation's AMOLED screen
> working.
>
> Signed-off-by: Lyude Paul <lyude@redhat.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> 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 0bf8772bc7bb..87b59db9ffe3 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> @@ -205,8 +205,9 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st
>  		}
>  	}
>  
> +	intel_dp_aux_set_backlight(conn_state,
> +				   connector->panel.backlight.level);
>  	set_aux_backlight_enable(intel_dp, true);
> -	intel_dp_aux_set_backlight(conn_state, connector->panel.backlight.level);
>  }
>  
>  static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old_conn_state)

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Lyude Paul <lyude@redhat.com>, intel-gfx@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 3/5] drm/i915: Fix DPCD register order in intel_dp_aux_enable_backlight()
Date: Tue, 03 Dec 2019 14:41:00 +0200	[thread overview]
Message-ID: <87r21lintv.fsf@intel.com> (raw)
In-Reply-To: <20191122231616.2574-4-lyude@redhat.com>

On Fri, 22 Nov 2019, Lyude Paul <lyude@redhat.com> wrote:
> For eDP panels, it appears it's expected that so long as the panel is in
> DPCD control mode that the brightness value is never set to 0. Instead,
> if the desired effect is to set the panel's backlight to 0 we're
> expected to simply turn off the backlight through the
> DP_EDP_DISPLAY_CONTROL_REGISTER.
>
> We already do the latter correctly in intel_dp_aux_disable_backlight().
> But, we make the mistake of writing the DPCD registers in the wrong
> order when enabling the backlight in intel_dp_aux_enable_backlight()
> since we currently enable the backlight through
> DP_EDP_DISPLAY_CONTROL_REGISTER before writing the brightness level. On
> the X1 Extreme 2nd Generation, this appears to have the potential of
> confusing the panel in such a way that further attempts to set the
> brightness don't actually change the backlight as expected and leave it
> off. Presumably, this happens because the incorrect register writing
> order briefly leaves the panel with DPCD mode enabled and a 0 brightness
> level set.
>
> So, reverse the order we write the DPCD registers when enabling the
> panel backlight so that we write the brightness value first, and enable
> the backlight second. This fix appears to be the final bit needed to get
> the backlight on the ThinkPad X1 Extreme 2nd Generation's AMOLED screen
> working.
>
> Signed-off-by: Lyude Paul <lyude@redhat.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> 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 0bf8772bc7bb..87b59db9ffe3 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> @@ -205,8 +205,9 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st
>  		}
>  	}
>  
> +	intel_dp_aux_set_backlight(conn_state,
> +				   connector->panel.backlight.level);
>  	set_aux_backlight_enable(intel_dp, true);
> -	intel_dp_aux_set_backlight(conn_state, connector->panel.backlight.level);
>  }
>  
>  static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old_conn_state)

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Lyude Paul <lyude@redhat.com>, intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>,
	David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
	Chris Wilson <chris@chris-wilson.co.uk>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Lee Shawn C <shawn.c.lee@intel.com>,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/5] drm/i915: Fix DPCD register order in intel_dp_aux_enable_backlight()
Date: Tue, 03 Dec 2019 14:41:00 +0200	[thread overview]
Message-ID: <87r21lintv.fsf@intel.com> (raw)
In-Reply-To: <20191122231616.2574-4-lyude@redhat.com>

On Fri, 22 Nov 2019, Lyude Paul <lyude@redhat.com> wrote:
> For eDP panels, it appears it's expected that so long as the panel is in
> DPCD control mode that the brightness value is never set to 0. Instead,
> if the desired effect is to set the panel's backlight to 0 we're
> expected to simply turn off the backlight through the
> DP_EDP_DISPLAY_CONTROL_REGISTER.
>
> We already do the latter correctly in intel_dp_aux_disable_backlight().
> But, we make the mistake of writing the DPCD registers in the wrong
> order when enabling the backlight in intel_dp_aux_enable_backlight()
> since we currently enable the backlight through
> DP_EDP_DISPLAY_CONTROL_REGISTER before writing the brightness level. On
> the X1 Extreme 2nd Generation, this appears to have the potential of
> confusing the panel in such a way that further attempts to set the
> brightness don't actually change the backlight as expected and leave it
> off. Presumably, this happens because the incorrect register writing
> order briefly leaves the panel with DPCD mode enabled and a 0 brightness
> level set.
>
> So, reverse the order we write the DPCD registers when enabling the
> panel backlight so that we write the brightness value first, and enable
> the backlight second. This fix appears to be the final bit needed to get
> the backlight on the ThinkPad X1 Extreme 2nd Generation's AMOLED screen
> working.
>
> Signed-off-by: Lyude Paul <lyude@redhat.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> 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 0bf8772bc7bb..87b59db9ffe3 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> @@ -205,8 +205,9 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st
>  		}
>  	}
>  
> +	intel_dp_aux_set_backlight(conn_state,
> +				   connector->panel.backlight.level);
>  	set_aux_backlight_enable(intel_dp, true);
> -	intel_dp_aux_set_backlight(conn_state, connector->panel.backlight.level);
>  }
>  
>  static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old_conn_state)

-- 
Jani Nikula, Intel Open Source Graphics Center

  reply	other threads:[~2019-12-03 12:41 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-22 23:15 [PATCH 0/5] drm/i915: eDP DPCD aux backlight fixes Lyude Paul
2019-11-22 23:15 ` [Intel-gfx] " Lyude Paul
2019-11-22 23:15 ` Lyude Paul
2019-11-22 23:15 ` [PATCH 1/5] drm/i915: Fix eDP DPCD aux max backlight calculations Lyude Paul
2019-11-22 23:15   ` Lyude Paul
2019-11-22 23:15   ` [Intel-gfx] " Lyude Paul
2019-12-20 10:05   ` [1/5] " Perr Yuan
2019-12-20 10:05     ` Perr Yuan
2019-12-20 10:05     ` [Intel-gfx] " Perr Yuan
2019-11-22 23:16 ` [PATCH 2/5] drm/i915: Assume 100% brightness when not in DPCD control mode Lyude Paul
2019-11-22 23:16   ` Lyude Paul
2019-11-22 23:16   ` [Intel-gfx] " Lyude Paul
2019-11-22 23:16   ` Lyude Paul
2019-12-03 12:40   ` Jani Nikula
2019-12-03 12:40     ` Jani Nikula
2019-12-03 12:40     ` [Intel-gfx] " Jani Nikula
2019-12-03 22:42     ` [PATCH v2] " Lyude Paul
2019-12-03 22:42       ` Lyude Paul
2019-12-03 22:42       ` [Intel-gfx] " Lyude Paul
2019-12-23  7:17       ` [v2] " Perr Yuan
2019-12-23  7:17         ` Perr Yuan
2019-12-23  7:17         ` [Intel-gfx] " Perr Yuan
2019-11-22 23:16 ` [PATCH 3/5] drm/i915: Fix DPCD register order in intel_dp_aux_enable_backlight() Lyude Paul
2019-11-22 23:16   ` [Intel-gfx] " Lyude Paul
2019-11-22 23:16   ` Lyude Paul
2019-12-03 12:41   ` Jani Nikula [this message]
2019-12-03 12:41     ` Jani Nikula
2019-12-03 12:41     ` [Intel-gfx] " Jani Nikula
2019-12-23  7:19   ` [3/5] " Perr Yuan
2019-12-23  7:19     ` Perr Yuan
2019-12-23  7:19     ` [Intel-gfx] " Perr Yuan
2019-11-22 23:16 ` [PATCH 4/5] drm/i915: Auto detect DPCD backlight support by default Lyude Paul
2019-11-22 23:16   ` Lyude Paul
2019-11-22 23:16   ` [Intel-gfx] " Lyude Paul
2019-12-03 12:41   ` Jani Nikula
2019-12-03 12:41     ` Jani Nikula
2019-12-03 12:41     ` [Intel-gfx] " Jani Nikula
2019-12-23  7:20   ` [4/5] " Perr Yuan
2019-12-23  7:20     ` Perr Yuan
2019-12-23  7:20     ` [Intel-gfx] " Perr Yuan
2019-11-22 23:16 ` [PATCH 5/5] drm/i915: Force DPCD backlight mode on X1 Extreme 2nd Gen 4K AMOLED panel Lyude Paul
2019-11-22 23:16   ` Lyude Paul
2019-11-22 23:16   ` [Intel-gfx] " Lyude Paul
2019-11-22 23:16   ` Lyude Paul
2019-12-03 12:42   ` Jani Nikula
2019-12-03 12:42     ` Jani Nikula
2019-12-03 12:42     ` [Intel-gfx] " Jani Nikula
2019-11-22 23:55 ` ✓ Fi.CI.BAT: success for drm/i915: eDP DPCD aux backlight fixes Patchwork
2019-11-22 23:55   ` [Intel-gfx] " Patchwork
2019-11-24  6:16 ` ✓ Fi.CI.IGT: " Patchwork
2019-11-24  6:16   ` [Intel-gfx] " Patchwork
2019-12-04  1:05 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: eDP DPCD aux backlight fixes (rev2) Patchwork
2019-12-04 13:07 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2019-12-05  1:13 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915: eDP DPCD aux backlight fixes (rev3) Patchwork
2019-12-05  7:15 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: eDP DPCD aux backlight fixes (rev4) Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2019-12-12  3:12 [PATCH 3/5] drm/i915: Fix DPCD register order in intel_dp_aux_enable_backlight() AceLan Kao

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=87r21lintv.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=airlied@linux.ie \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lyude@redhat.com \
    --cc=rodrigo.vivi@intel.com \
    --cc=shawn.c.lee@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.