All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com>
To: Vandana Kannan <vandana.kannan@intel.com>,
	intel-gfx@lists.freedesktop.org
Cc: Deepak M <m.deepak@intel.com>, Jani Nikula <jani.nikula@intel.com>
Subject: Re: [PATCH] drm/i915: Parsing LFP brightness control from VBT
Date: Mon, 27 Jul 2015 10:08:02 +0530	[thread overview]
Message-ID: <55B5B5AA.4020200@intel.com> (raw)
In-Reply-To: <1436180709-18905-1-git-send-email-vandana.kannan@intel.com>



On 7/6/2015 4:35 PM, Vandana Kannan wrote:
> From: Deepak M <m.deepak@intel.com>
>
> LFP brighness control from the VBT block 43 indicates which
> controller is used for brightness.
> LFP1 brightness control method:
> Bit 7-4 = This field controller number of the brightnes controller.
> 0 = Controller 0
> 1 = Controller 1
> 2 = Controller 2
> 3 = Controller 3
> Others = Reserved
>
> Bits 3-0 are for Control pin
> 0 = PMIC pin is used for brightness control
> 1 = LPSS PWM is used for brightness control
> 2 = Display DDI is used for brightness control
> 3 = CABC method to control brightness
> Others = Reserved
>
> History:
> This patch was submitted earlier including a check for control pin.
> http://lists.freedesktop.org/archives/intel-gfx/2014-December/057530.html
> Since it caused the issue, https://bugs.freedesktop.org/show_bug.cgi?id=87671,
> it was reverted in
> http://lists.freedesktop.org/archives/intel-gfx/2015-January/058110.html
>
> The current patch reads controller and control pin from VBT (version >= 191)
>
>  From VBT version >= 197, default value of control pin is set to DDI, so the
> corresponding check during backlight setup will be made in a future patch
>
> Signed-off-by: Deepak M <m.deepak@intel.com>
> Signed-off-by: Vandana Kannan <vandana.kannan@intel.com>
> Cc: Jani Nikula <jani.nikula@intel.com>
> ---
>   drivers/gpu/drm/i915/i915_drv.h   |  2 ++
>   drivers/gpu/drm/i915/intel_bios.c |  9 +++++++++
>   drivers/gpu/drm/i915/intel_bios.h | 11 +++++++++++
>   3 files changed, 22 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 950a981..a89e9a9 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1461,6 +1461,8 @@ struct intel_vbt_data {
>   		bool present;
>   		bool active_low_pwm;
>   		u8 min_brightness;	/* min_brightness/255 of max */
> +		u8 controller;		/* brightness controller number */
> +		u8 control_pin;         /* brightness control pin */
>   	} backlight;
>   
>   	/* MIPI DSI */
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index 2ff9eb0..32c1ef2 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -256,6 +256,7 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv,
>   {
>   	const struct bdb_lfp_backlight_data *backlight_data;
>   	const struct bdb_lfp_backlight_data_entry *entry;
> +	const struct bdb_lfp_backlight_control_data *bl_ctrl_data;
>   
>   	backlight_data = find_section(bdb, BDB_LVDS_BACKLIGHT);
>   	if (!backlight_data)
> @@ -268,6 +269,7 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv,
>   	}
>   
>   	entry = &backlight_data->data[panel_type];
> +	bl_ctrl_data = &backlight_data->blc_ctl[panel_type];
>   
>   	dev_priv->vbt.backlight.present = entry->type == BDB_BACKLIGHT_TYPE_PWM;
>   	if (!dev_priv->vbt.backlight.present) {
> @@ -279,12 +281,19 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv,
>   	dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz;
>   	dev_priv->vbt.backlight.active_low_pwm = entry->active_low_pwm;
>   	dev_priv->vbt.backlight.min_brightness = entry->min_brightness;
> +	dev_priv->vbt.backlight.controller = bl_ctrl_data->controller;
> +	dev_priv->vbt.backlight.control_pin = bl_ctrl_data->pin;
> +
>   	DRM_DEBUG_KMS("VBT backlight PWM modulation frequency %u Hz, "
>   		      "active %s, min brightness %u, level %u\n",
>   		      dev_priv->vbt.backlight.pwm_freq_hz,
>   		      dev_priv->vbt.backlight.active_low_pwm ? "low" : "high",
>   		      dev_priv->vbt.backlight.min_brightness,
>   		      backlight_data->level[panel_type]);
> +
> +	DRM_DEBUG_KMS("VBT BL controller %u, BL control pin %u\n",
> +			dev_priv->vbt.backlight.controller,
> +			dev_priv->vbt.backlight.control_pin);
>   }
>   
>   /* Try to find sdvo panel data */
> diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h
> index af0b476..e97c1c0 100644
> --- a/drivers/gpu/drm/i915/intel_bios.h
> +++ b/drivers/gpu/drm/i915/intel_bios.h
> @@ -402,10 +402,21 @@ struct bdb_lfp_backlight_data_entry {
>   	u8 obsolete3;
>   } __packed;
>   
> +#define BLC_CONTROL_PIN_PMIC           0
> +#define BLC_CONTROL_PIN_LPSS_PWM       1
> +#define BLC_CONTROL_PIN_DDI            2
> +#define BLC_CONTROL_PIN_CABC           3
> +
> +struct bdb_lfp_backlight_control_data {
> +	u8 controller:4;
> +	u8 pin:4;
the pin should be first half of this struct.
pin - 0:3
controller - 4:7
> +} __packed;
> +
>   struct bdb_lfp_backlight_data {
>   	u8 entry_size;
>   	struct bdb_lfp_backlight_data_entry data[16];
>   	u8 level[16];
> +	struct bdb_lfp_backlight_control_data blc_ctl[16];
>   } __packed;
>   
>   struct aimdb_header {

-- 
regards,
Sivakumar

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2015-07-27  4:38 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-06 11:05 [PATCH] drm/i915: Parsing LFP brightness control from VBT Vandana Kannan
2015-07-07  8:55 ` shuang.he
2015-07-24  9:01 ` Kannan, Vandana
2015-07-27  4:38 ` Sivakumar Thulasimani [this message]
  -- strict thread matches above, loose matches on Subject: below --
2014-12-15 10:28 Vandana Kannan
2014-12-15 10:20 ` Daniel Vetter
2014-12-15 15:13 ` shuang.he

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=55B5B5AA.4020200@intel.com \
    --to=sivakumar.thulasimani@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    --cc=m.deepak@intel.com \
    --cc=vandana.kannan@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.