All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Lee Shawn C <shawn.c.lee@intel.com>, intel-gfx@lists.freedesktop.org
Cc: Cooper Chiou <cooper.chiou@intel.com>
Subject: Re: [Intel-gfx] [PATCH v4] drm/i915: keep backlight_enable on until turn eDP display off
Date: Thu, 24 Jun 2021 11:29:09 +0300	[thread overview]
Message-ID: <87a6nfu0mi.fsf@intel.com> (raw)
In-Reply-To: <20210624053932.21037-1-shawn.c.lee@intel.com>

On Thu, 24 Jun 2021, Lee Shawn C <shawn.c.lee@intel.com> wrote:
> This workaround is specific for a particular panel on Google
> chromebook project. When user space daemon enter idle state.
> It request adjust brightness to 0, turn backlight_enable signal
> off and keep eDP main link active.
>
> On general LCD, this behavior might not be a problem.
> But on this panel, its tcon would expect source to execute
> full eDP power off sequence after drop backlight_enable signal.
> Without eDP power off sequence. Even source try to turn
> backlight_enable signal on and restore proper brightness level.
> This panel is not able to light on again.
>
> This WA ignored the request from user space daemon to disable
> backlight_enable signal and keep it on always. When user space
> request kernel to turn eDP display off, kernel driver still
> can control backlight_enable signal properly. It would not
> impact standard eDP power off sequence.
>
> v2: 1. modify the quirk name and debug messages.
>     2. unregister backlight.power callback for specific device.
> v3: 1. modify debug output messages.
>     2. use DMI_EXACT_MATCH instead of DMI_MATCH.
>
> Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> Cc: Imre Deak <imre.deak@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Cooper Chiou <cooper.chiou@intel.com>
> Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>

Thanks, pushed to drm-intel-next.

> ---
>  drivers/gpu/drm/i915/display/intel_dp.c     |  3 +-
>  drivers/gpu/drm/i915/display/intel_quirks.c | 34 +++++++++++++++++++++
>  drivers/gpu/drm/i915/i915_drv.h             |  1 +
>  3 files changed, 37 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 6cc03b9e4321..d3312b9bcc6f 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -5238,7 +5238,8 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
>  	}
>  
>  	intel_panel_init(&intel_connector->panel, fixed_mode, downclock_mode);
> -	intel_connector->panel.backlight.power = intel_pps_backlight_power;
> +	if (!(dev_priv->quirks & QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK))
> +		intel_connector->panel.backlight.power = intel_pps_backlight_power;
>  	intel_panel_setup_backlight(connector, pipe);
>  
>  	if (fixed_mode) {
> diff --git a/drivers/gpu/drm/i915/display/intel_quirks.c b/drivers/gpu/drm/i915/display/intel_quirks.c
> index 98dd787b00e3..8a52b7a16774 100644
> --- a/drivers/gpu/drm/i915/display/intel_quirks.c
> +++ b/drivers/gpu/drm/i915/display/intel_quirks.c
> @@ -53,6 +53,12 @@ static void quirk_increase_ddi_disabled_time(struct drm_i915_private *i915)
>  	drm_info(&i915->drm, "Applying Increase DDI Disabled quirk\n");
>  }
>  
> +static void quirk_no_pps_backlight_power_hook(struct drm_i915_private *i915)
> +{
> +	i915->quirks |= QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK;
> +	drm_info(&i915->drm, "Applying no pps backlight power quirk\n");
> +}
> +
>  struct intel_quirk {
>  	int device;
>  	int subsystem_vendor;
> @@ -72,6 +78,12 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
>  	return 1;
>  }
>  
> +static int intel_dmi_no_pps_backlight(const struct dmi_system_id *id)
> +{
> +	DRM_INFO("No pps backlight support on %s\n", id->ident);
> +	return 1;
> +}
> +
>  static const struct intel_dmi_quirk intel_dmi_quirks[] = {
>  	{
>  		.dmi_id_list = &(const struct dmi_system_id[]) {
> @@ -96,6 +108,28 @@ static const struct intel_dmi_quirk intel_dmi_quirks[] = {
>  		},
>  		.hook = quirk_invert_brightness,
>  	},
> +	{
> +		.dmi_id_list = &(const struct dmi_system_id[]) {
> +			{
> +				.callback = intel_dmi_no_pps_backlight,
> +				.ident = "Google Lillipup sku524294",
> +				.matches = {DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Google"),
> +					    DMI_EXACT_MATCH(DMI_BOARD_NAME, "Lindar"),
> +					    DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "sku524294"),
> +				},
> +			},
> +			{
> +				.callback = intel_dmi_no_pps_backlight,
> +				.ident = "Google Lillipup sku524295",
> +				.matches = {DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Google"),
> +					    DMI_EXACT_MATCH(DMI_BOARD_NAME, "Lindar"),
> +					    DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "sku524295"),
> +				},
> +			},
> +			{ }
> +		},
> +		.hook = quirk_no_pps_backlight_power_hook,
> +	},
>  };
>  
>  static struct intel_quirk intel_quirks[] = {
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 01e11fe38642..5a065be0792a 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -467,6 +467,7 @@ struct i915_drrs {
>  #define QUIRK_PIN_SWIZZLED_PAGES (1<<5)
>  #define QUIRK_INCREASE_T12_DELAY (1<<6)
>  #define QUIRK_INCREASE_DDI_DISABLED_TIME (1<<7)
> +#define QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK (1<<8)
>  
>  struct intel_fbdev;
>  struct intel_fbc_work;

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

  reply	other threads:[~2021-06-24  8:29 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-22 13:31 [Intel-gfx] [PATCH] drm/i915: keep backlight_enable on until turn eDP display off Lee Shawn C
2021-06-22 14:17 ` Jani Nikula
2021-06-22 15:05   ` Lee, Shawn C
2021-06-22 14:52 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: keep backlight_enable on until turn eDP display off (rev2) Patchwork
2021-06-22 15:32 ` [Intel-gfx] [PATCH v3] drm/i915: keep backlight_enable on until turn eDP display off Lee Shawn C
2021-06-23 16:45   ` Jani Nikula
2021-06-24  1:31     ` Lee, Shawn C
2021-06-22 15:39 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: keep backlight_enable on until turn eDP display off (rev3) Patchwork
2021-06-22 16:10 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-06-22 17:28 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2021-06-24  5:39 ` [Intel-gfx] [PATCH v4] drm/i915: keep backlight_enable on until turn eDP display off Lee Shawn C
2021-06-24  8:29   ` Jani Nikula [this message]
2021-06-24  5:57 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: keep backlight_enable on until turn eDP display off (rev4) Patchwork
2021-06-24  6:28 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-06-24  7:38 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork

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=87a6nfu0mi.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=cooper.chiou@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --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.