All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@intel.com>
To: "Pandiyan, Dhinakaran" <dhinakaran.pandiyan@intel.com>
Cc: "puthik@chromium.org" <puthik@chromium.org>,
	"daniel.vetter@ffwll.ch" <daniel.vetter@ffwll.ch>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>,
	"Tc, Jenny" <jenny.tc@intel.com>
Subject: Re: [PATCH 2/2] Revert "drm/i915: Add heuristic to determine better way to adjust brightness"
Date: Fri, 21 Jul 2017 10:01:33 +0300	[thread overview]
Message-ID: <87a83ynuia.fsf@intel.com> (raw)
In-Reply-To: <1500583390.1263.10.camel@dk-H97M-D3H>

On Thu, 20 Jul 2017, "Pandiyan, Dhinakaran" <dhinakaran.pandiyan@intel.com> wrote:
> On Thu, 2017-07-20 at 12:25 +0300, Jani Nikula wrote:
>> This reverts commit 560a758d39c616f83ac25ff6e0816a49ebe6401c.
>> 
>> The DPCD backlight commits regress a Thinkpad X1 Carbon 4th Gen and a
>> BXT-P (in CI). Enabling dynamic backlight boots to a black screen, and
>> enabling DPCD backlight leads to a black screen after suspend/resume.
>> 
>
>
> Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> for
> both patches.

Thanks for the review, both pushed, with Daniel's IRC ack on top.

BR,
Jani.

>
>> References: http://mid.mail-archive.com/20170706135349.6tu3lz7uehazlnnn@boom
>> References: http://mid.mail-archive.com/20170627132326.f2q3yn4bh5flji4q@boom
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101619
>> Reported-by: David Weinehall <david.weinehall@linux.intel.com>
>> Fixes: 560a758d39c6 ("drm/i915: Add heuristic to determine better way to adjust brightness")
>> Cc: Jenny TC <jenny.tc@intel.com>
>> Cc: David Weinehall <david.weinehall@linux.intel.com>
>> Cc: Puthikorn Voravootivat <puthik@chromium.org>
>> Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Cc: intel-gfx@lists.freedesktop.org
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>>  drivers/gpu/drm/i915/i915_params.c            |  7 ++-
>>  drivers/gpu/drm/i915/i915_params.h            |  2 +-
>>  drivers/gpu/drm/i915/intel_dp_aux_backlight.c | 61 ++-------------------------
>>  3 files changed, 7 insertions(+), 63 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
>> index 5b5ab15d191f..14e2c2e57f96 100644
>> --- a/drivers/gpu/drm/i915/i915_params.c
>> +++ b/drivers/gpu/drm/i915/i915_params.c
>> @@ -63,7 +63,7 @@ struct i915_params i915 __read_mostly = {
>>  	.huc_firmware_path = NULL,
>>  	.enable_dp_mst = true,
>>  	.inject_load_failure = 0,
>> -	.enable_dpcd_backlight = -1,
>> +	.enable_dpcd_backlight = false,
>>  	.enable_gvt = false,
>>  };
>>  
>> @@ -246,10 +246,9 @@ MODULE_PARM_DESC(enable_dp_mst,
>>  module_param_named_unsafe(inject_load_failure, i915.inject_load_failure, uint, 0400);
>>  MODULE_PARM_DESC(inject_load_failure,
>>  	"Force an error after a number of failure check points (0:disabled (default), N:force failure at the Nth failure check point)");
>> -module_param_named_unsafe(enable_dpcd_backlight, i915.enable_dpcd_backlight, int, 0600);
>> +module_param_named(enable_dpcd_backlight, i915.enable_dpcd_backlight, bool, 0600);
>>  MODULE_PARM_DESC(enable_dpcd_backlight,
>> -	"Enable support for DPCD backlight control "
>> -	"(-1:auto (default), 0:force disable, 1:force enabled if supported");
>> +	"Enable support for DPCD backlight control (default:false)");
>>  
>>  module_param_named(enable_gvt, i915.enable_gvt, bool, 0400);
>>  MODULE_PARM_DESC(enable_gvt,
>> diff --git a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h
>> index 0d6cf9138dc4..febbfdbd30bd 100644
>> --- a/drivers/gpu/drm/i915/i915_params.h
>> +++ b/drivers/gpu/drm/i915/i915_params.h
>> @@ -53,7 +53,6 @@
>>  	func(int, edp_vswing); \
>>  	func(int, reset); \
>>  	func(unsigned int, inject_load_failure); \
>> -	func(int, enable_dpcd_backlight); \
>>  	/* leave bools at the end to not create holes */ \
>>  	func(bool, alpha_support); \
>>  	func(bool, enable_cmd_parser); \
>> @@ -67,6 +66,7 @@
>>  	func(bool, verbose_state_checks); \
>>  	func(bool, nuclear_pageflip); \
>>  	func(bool, enable_dp_mst); \
>> +	func(bool, enable_dpcd_backlight); \
>>  	func(bool, enable_gvt)
>>  
>>  #define MEMBER(T, member) T member
>> diff --git a/drivers/gpu/drm/i915/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
>> index fea161727c6e..d2830ba3162e 100644
>> --- a/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
>> +++ b/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
>> @@ -251,66 +251,15 @@ intel_dp_aux_display_control_capable(struct intel_connector *connector)
>>  	/* Check the eDP Display control capabilities registers to determine if
>>  	 * 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[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_AUX_SET_CAP)) {
>> +	if (intel_dp->edp_dpcd[1] & DP_EDP_TCON_BACKLIGHT_ADJUSTMENT_CAP &&
>> +	    (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_AUX_SET_CAP) &&
>> +	    !(intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP)) {
>>  		DRM_DEBUG_KMS("AUX Backlight Control Supported!\n");
>>  		return true;
>>  	}
>>  	return false;
>>  }
>>  
>> -/*
>> - * Heuristic function whether we should use AUX for backlight adjustment or not.
>> - *
>> - * We should use AUX for backlight brightness adjustment if panel doesn't this
>> - * via PWM pin or using AUX is better than using PWM pin.
>> - *
>> - * The heuristic to determine that using AUX pin is better than using PWM pin is
>> - * that the panel support any of the feature list here.
>> - * - Regional backlight brightness adjustment
>> - * - Backlight PWM frequency set
>> - * - More than 8 bits resolution of brightness level
>> - * - Backlight enablement via AUX and not by BL_ENABLE pin
>> - *
>> - * If all above are not true, assume that using PWM pin is better.
>> - */
>> -static bool
>> -intel_dp_aux_display_control_heuristic(struct intel_connector *connector)
>> -{
>> -	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
>> -	uint8_t reg_val;
>> -
>> -	/* Panel doesn't support adjusting backlight brightness via PWN pin */
>> -	if (!(intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP))
>> -		return true;
>> -
>> -	/* Panel supports regional backlight brightness adjustment */
>> -	if (drm_dp_dpcd_readb(&intel_dp->aux, DP_EDP_GENERAL_CAP_3,
>> -			      &reg_val) != 1) {
>> -		DRM_DEBUG_KMS("Failed to read DPCD register 0x%x\n",
>> -			       DP_EDP_GENERAL_CAP_3);
>> -		return false;
>> -	}
>> -	if (reg_val > 0)
>> -		return true;
>> -
>> -	/* Panel supports backlight PWM frequency set */
>> -	if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_FREQ_AUX_SET_CAP)
>> -		return true;
>> -
>> -	/* Panel supports more than 8 bits resolution of brightness level */
>> -	if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT)
>> -		return true;
>> -
>> -	/* Panel supports enabling backlight via AUX but not by BL_ENABLE pin */
>> -	if ((intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_AUX_ENABLE_CAP) &&
>> -	    !(intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_PIN_ENABLE_CAP))
>> -		return true;
>> -
>> -	return false;
>> -
>> -}
>> -
>>  int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector)
>>  {
>>  	struct intel_panel *panel = &intel_connector->panel;
>> @@ -321,10 +270,6 @@ int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector)
>>  	if (!intel_dp_aux_display_control_capable(intel_connector))
>>  		return -ENODEV;
>>  
>> -	if (i915.enable_dpcd_backlight == -1 &&
>> -	    !intel_dp_aux_display_control_heuristic(intel_connector))
>> -		return -ENODEV;
>> -
>>  	panel->backlight.setup = intel_dp_aux_setup_backlight;
>>  	panel->backlight.enable = intel_dp_aux_enable_backlight;
>>  	panel->backlight.disable = intel_dp_aux_disable_backlight;

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

  reply	other threads:[~2017-07-21  7:01 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-20  9:25 [PATCH 0/2] drm/i915: revert DPCD backlight and DBC enabling by default Jani Nikula
2017-07-20  9:25 ` [PATCH 1/2] Revert "drm/i915: Add option to support dynamic backlight via DPCD" Jani Nikula
2017-07-20  9:25 ` [PATCH 2/2] Revert "drm/i915: Add heuristic to determine better way to adjust brightness" Jani Nikula
2017-07-20 20:23   ` Pandiyan, Dhinakaran
2017-07-21  7:01     ` Jani Nikula [this message]
2017-07-20 12:02 ` ✓ Fi.CI.BAT: success for drm/i915: revert DPCD backlight and DBC enabling by default 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=87a83ynuia.fsf@intel.com \
    --to=jani.nikula@intel.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dhinakaran.pandiyan@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jenny.tc@intel.com \
    --cc=puthik@chromium.org \
    /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.