diff mbox

[v8,1/5] drm/i915: Drop AUX backlight enable check for backlight control

Message ID C56C55B681623645A065C9EE352337D611131CE4@ORSMSX109.amr.corp.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dhinakaran Pandiyan May 17, 2017, 8:09 p.m. UTC

Comments

Puthikorn Voravootivat May 17, 2017, 9:04 p.m. UTC | #1
On Wed, May 17, 2017 at 1:09 PM, Pandiyan, Dhinakaran <
dhinakaran.pandiyan@intel.com> wrote:

>
> ________________________________________
> From: Puthikorn Voravootivat [puthik@google.com] on behalf of Puthikorn
> Voravootivat [puthik@chromium.org]
> Sent: Tuesday, May 16, 2017 5:33 PM
> To: intel-gfx@lists.freedesktop.org; Pandiyan, Dhinakaran
> Cc: dri-devel@lists.freedesktop.org; Jani Nikula; Navare, Manasi D;
> Stephane Marchesin; Puthikorn Voravootivat
> Subject: [PATCH v8 1/5] drm/i915: Drop AUX backlight enable check for
> backlight control
>
>
> There are some panel that
> (1) does not support display backlight enable via AUX
> (2) support display backlight adjustment via AUX
> (3) support display backlight enable via eDP BL_ENABLE pin
>
> The current driver required that (1) must be support to enable (2).
> This patch drops that requirement.
>
> Signed-off-by: Puthikorn Voravootivat <puthik@chromium.org>
> ---
> drivers/gpu/drm/i915/intel_dp_aux_backlight.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
> b/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
> index b87c5a381d6a..d32c06583e0b 100644
> --- a/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
> +++ b/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
> @@ -165,7 +165,6 @@ intel_dp_aux_display_control_capable(struct
> intel_connector *connector)
> * the panel can support backlight control over the aux channel
> */
> if (intel_dp->edp_dpcd[1] & DP_EDP_TCON_BACKLIGHT_ADJUSTMENT_CAP &&
> - (intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_AUX_ENABLE_CAP) &&
> (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_AUX_SET_CAP) &&
> !((intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_PIN_ENABLE_CAP) ||
> (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP))) {
> --
> 2.13.0.303.g4ebf302169-goog
>
>
> ^ still has the problem I mentioned last time. How about this?
>
>
> diff --git a/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
> b/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
> index b87c5a3..7072bcf 100644
> --- a/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
> +++ b/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
> @@ -28,6 +28,10 @@ static void set_aux_backlight_enable(struct intel_dp
> *intel_dp, bool enable)
>  {
>         uint8_t reg_val = 0;
>
> +       /* Early return when display use other mechanism to enable
> backlight. */
> +       if (!(intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_AUX_ENABLE_CAP))
> +               return;
> +
>         if (drm_dp_dpcd_readb(&intel_dp->aux, DP_EDP_DISPLAY_CONTROL_
> REGISTER,
>                               &reg_val) < 0) {
>                 DRM_DEBUG_KMS("Failed to read DPCD register 0x%x\n",
> @@ -165,10 +169,8 @@ intel_dp_aux_display_control_capable(struct
> intel_connector *connector)
>          * the panel can support backlight control over the aux channel
>          */
>         if (intel_dp->edp_dpcd[1] & DP_EDP_TCON_BACKLIGHT_ADJUSTMENT_CAP
> &&
> -           (intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_AUX_ENABLE_CAP) &&
>             (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_AUX_SET_CAP)
> &&
> -           !((intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_PIN_ENABLE_CAP) ||
> -             (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP)))
> {
> +           !(intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP))
> {
>                 DRM_DEBUG_KMS("AUX Backlight Control Supported!\n");
>                 return true;
>         }
>
>
> This works too. I probably misunderstood your comment as I move the code
to next patch in the set.
Dhinakaran Pandiyan May 18, 2017, 10:01 p.m. UTC | #2
On Wed, 2017-05-17 at 14:04 -0700, Puthikorn Voravootivat wrote:
> 

> On Wed, May 17, 2017 at 1:09 PM, Pandiyan, Dhinakaran

> <dhinakaran.pandiyan@intel.com> wrote:

>         

>         ________________________________________

>         From: Puthikorn Voravootivat [puthik@google.com] on behalf of

>         Puthikorn Voravootivat [puthik@chromium.org]

>         Sent: Tuesday, May 16, 2017 5:33 PM

>         To: intel-gfx@lists.freedesktop.org; Pandiyan, Dhinakaran

>         Cc: dri-devel@lists.freedesktop.org; Jani Nikula; Navare,

>         Manasi D; Stephane Marchesin; Puthikorn Voravootivat

>         Subject: [PATCH v8 1/5] drm/i915: Drop AUX backlight enable

>         check for backlight control

>         

>         

>         There are some panel that

>         (1) does not support display backlight enable via AUX

>         (2) support display backlight adjustment via AUX

>         (3) support display backlight enable via eDP BL_ENABLE pin

>         

>         The current driver required that (1) must be support to enable

>         (2).

>         This patch drops that requirement.

>         

>         Signed-off-by: Puthikorn Voravootivat <puthik@chromium.org>

>         ---

>         drivers/gpu/drm/i915/intel_dp_aux_backlight.c | 1 -

>         1 file changed, 1 deletion(-)

>         

>         diff --git a/drivers/gpu/drm/i915/intel_dp_aux_backlight.c

>         b/drivers/gpu/drm/i915/intel_dp_aux_backlight.c

>         index b87c5a381d6a..d32c06583e0b 100644

>         --- a/drivers/gpu/drm/i915/intel_dp_aux_backlight.c

>         +++ b/drivers/gpu/drm/i915/intel_dp_aux_backlight.c

>         @@ -165,7 +165,6 @@

>         intel_dp_aux_display_control_capable(struct intel_connector

>         *connector)

>         * the panel can support backlight control over the aux channel

>         */

>         if (intel_dp->edp_dpcd[1] &

>         DP_EDP_TCON_BACKLIGHT_ADJUSTMENT_CAP &&

>         - (intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_AUX_ENABLE_CAP) &&

>         (intel_dp->edp_dpcd[2] &

>         DP_EDP_BACKLIGHT_BRIGHTNESS_AUX_SET_CAP) &&

>         !((intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_PIN_ENABLE_CAP) ||

>         (intel_dp->edp_dpcd[2] &

>         DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP))) {

>         --

>         2.13.0.303.g4ebf302169-goog

>         

>         

>         

>         ^ still has the problem I mentioned last time. How about

>         this? 

>         

>         

>         diff --git a/drivers/gpu/drm/i915/intel_dp_aux_backlight.c

>         b/drivers/gpu/drm/i915/intel_dp_aux_backlight.c

>         index b87c5a3..7072bcf 100644

>         --- a/drivers/gpu/drm/i915/intel_dp_aux_backlight.c

>         +++ b/drivers/gpu/drm/i915/intel_dp_aux_backlight.c

>         @@ -28,6 +28,10 @@ static void set_aux_backlight_enable(struct

>         intel_dp *intel_dp, bool enable)

>          {

>                 uint8_t reg_val = 0;

>         

>         +       /* Early return when display use other mechanism to

>         enable backlight. */

>         +       if (!(intel_dp->edp_dpcd[1] &

>         DP_EDP_BACKLIGHT_AUX_ENABLE_CAP))

>         +               return;

>         +

>                 if (drm_dp_dpcd_readb(&intel_dp->aux,

>         DP_EDP_DISPLAY_CONTROL_REGISTER,

>                                       &reg_val) < 0) {

>                         DRM_DEBUG_KMS("Failed to read DPCD register 0x

>         %x\n",

>         @@ -165,10 +169,8 @@

>         intel_dp_aux_display_control_capable(struct intel_connector

>         *connector)

>                  * the panel can support backlight control over the

>         aux channel

>                  */

>                 if (intel_dp->edp_dpcd[1] &

>         DP_EDP_TCON_BACKLIGHT_ADJUSTMENT_CAP &&

>         -           (intel_dp->edp_dpcd[1] &

>         DP_EDP_BACKLIGHT_AUX_ENABLE_CAP) &&

>                     (intel_dp->edp_dpcd[2] &

>         DP_EDP_BACKLIGHT_BRIGHTNESS_AUX_SET_CAP) &&

>         -           !((intel_dp->edp_dpcd[1] &

>         DP_EDP_BACKLIGHT_PIN_ENABLE_CAP) ||

>         -             (intel_dp->edp_dpcd[2] &

>         DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP))) {

>         +           !(intel_dp->edp_dpcd[2] &

>         DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP)) {

>                         DRM_DEBUG_KMS("AUX Backlight Control

>         Supported!\n");

>                         return true;

>                 }

>         

>         

>         

> This works too. I probably misunderstood your comment as I move the

> code to next patch in the set.



Please feel free to question any of the comments if you do not agree.

-DK

> _______________________________________________

> Intel-gfx mailing list

> Intel-gfx@lists.freedesktop.org

> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
index b87c5a381d6a..d32c06583e0b 100644
--- a/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
+++ b/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
@@ -165,7 +165,6 @@  intel_dp_aux_display_control_capable(struct intel_connector *connector)
* the panel can support backlight control over the aux channel
*/
if (intel_dp->edp_dpcd[1] & DP_EDP_TCON_BACKLIGHT_ADJUSTMENT_CAP &&
- (intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_AUX_ENABLE_CAP) &&
(intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_AUX_SET_CAP) &&
!((intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_PIN_ENABLE_CAP) ||
(intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP))) {
--
2.13.0.303.g4ebf302169-goog


^ still has the problem I mentioned last time. How about this?


diff --git a/drivers/gpu/drm/i915/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
index b87c5a3..7072bcf 100644
--- a/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
+++ b/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
@@ -28,6 +28,10 @@  static void set_aux_backlight_enable(struct intel_dp *intel_dp, bool enable)
 {
        uint8_t reg_val = 0;

+       /* Early return when display use other mechanism to enable backlight. */
+       if (!(intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_AUX_ENABLE_CAP))
+               return;
+
        if (drm_dp_dpcd_readb(&intel_dp->aux, DP_EDP_DISPLAY_CONTROL_REGISTER,
                              &reg_val) < 0) {
                DRM_DEBUG_KMS("Failed to read DPCD register 0x%x\n",
@@ -165,10 +169,8 @@  intel_dp_aux_display_control_capable(struct intel_connector *connector)
         * the panel can support backlight control over the aux channel
         */
        if (intel_dp->edp_dpcd[1] & DP_EDP_TCON_BACKLIGHT_ADJUSTMENT_CAP &&
-           (intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_AUX_ENABLE_CAP) &&
            (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_AUX_SET_CAP) &&
-           !((intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_PIN_ENABLE_CAP) ||
-             (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP))) {
+           !(intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP)) {
                DRM_DEBUG_KMS("AUX Backlight Control Supported!\n");
                return true;
        }