From: Deepak M <m.deepak@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: Deepak M <m.deepak@intel.com>,
Jani Nikula <jani.nikula@intel.com>,
Yetunde Adebisi <yetundex.adebisi@intel.com>,
Daniel Vetter <daniel.vetter@intel.com>
Subject: [PATCH 3/5] drm/i915: Parse LFP brightness control field in VBT
Date: Tue, 29 Mar 2016 20:13:19 +0530 [thread overview]
Message-ID: <1459262601-20132-3-git-send-email-m.deepak@intel.com> (raw)
In-Reply-To: <1459262601-20132-1-git-send-email-m.deepak@intel.com>
These fields in VBT indicates the PWM source which
is used and also the controller number.
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Yetunde Adebisi <yetundex.adebisi@intel.com>
Signed-off-by: Deepak M <m.deepak@intel.com>
---
drivers/gpu/drm/i915/i915_drv.h | 2 ++
drivers/gpu/drm/i915/intel_bios.c | 12 ++++++++++++
drivers/gpu/drm/i915/intel_drv.h | 5 +++++
drivers/gpu/drm/i915/intel_vbt_defs.h | 6 ++++++
4 files changed, 25 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 050d860..30321e6 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1488,6 +1488,8 @@ struct intel_vbt_data {
bool present;
bool active_low_pwm;
u8 min_brightness; /* min_brightness/255 of max */
+ u8 pwm_pin; /* Source of PWM */
+ u8 pwm_controller; /* Controller used in particular PWM */
} backlight;
/* MIPI DSI */
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index 1af7074..1a5b124 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -284,6 +284,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)
@@ -296,6 +297,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) {
@@ -304,6 +306,16 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv,
return;
}
+ /*
+ * IF the VBT version is less than 191, set the
+ * pwm controller as PMIC by default.
+ */
+ dev_priv->vbt.backlight.pwm_pin = BLC_CONTROL_PIN_PMIC;
+ if (bdb->version >= 191) {
+ dev_priv->vbt.backlight.pwm_pin = bl_ctrl_data->pin;
+ dev_priv->vbt.backlight.pwm_controller = bl_ctrl_data->controller;
+ }
+
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;
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index c87b450..02a74b0 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -124,6 +124,11 @@
#define INTEL_I2C_BUS_DVO 1
#define INTEL_I2C_BUS_SDVO 2
+#define BLC_CONTROL_PIN_PMIC 0
+#define BLC_CONTROL_PIN_LPSS_PWM 1
+#define BLC_CONTROL_PIN_DDI 2
+#define BLC_CONTROL_PIN_PANEL_PWM 3
+
/* these are outputs from the chip - integrated only
external chips are via DVO or SDVO output */
enum intel_output_type {
diff --git a/drivers/gpu/drm/i915/intel_vbt_defs.h b/drivers/gpu/drm/i915/intel_vbt_defs.h
index 749dcea..f6744dc 100644
--- a/drivers/gpu/drm/i915/intel_vbt_defs.h
+++ b/drivers/gpu/drm/i915/intel_vbt_defs.h
@@ -440,10 +440,16 @@ struct bdb_lfp_backlight_data_entry {
u8 obsolete3;
} __packed;
+struct bdb_lfp_backlight_control_data {
+ u8 pin:4;
+ u8 controller:4;
+} __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 {
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-03-29 14:43 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-29 14:43 [PATCH 1/5] drm: Add new DCS commands in the enum list Deepak M
2016-03-29 14:43 ` [PATCH 2/5] drm/i915: Parsing the PWM cntrl and CABC ON/OFF fields in VBT Deepak M
2016-03-29 14:43 ` Deepak M [this message]
2016-03-29 14:43 ` [PATCH 4/5] drm/i915: Add DCS control for Panel PWM Deepak M
2016-03-29 14:43 ` [PATCH 5/5] drm/i915: CABC support for Panel PWM backlight control Deepak M
2016-03-29 15:33 ` ✗ Fi.CI.BAT: failure for series starting with [1/5] drm: Add new DCS commands in the enum list Patchwork
-- strict thread matches above, loose matches on Subject: below --
2016-03-30 14:03 [PATCH 1/5] " Jani Nikula
2016-03-30 14:03 ` [PATCH 3/5] drm/i915: Parse LFP brightness control field in VBT Jani Nikula
2016-03-29 15:01 [PATCH 0/5] drm/i915: dsi dcs & cabc backlight control Jani Nikula
2016-03-29 15:01 ` [PATCH 3/5] drm/i915: Parse LFP brightness control field in VBT Jani Nikula
2016-03-29 15:45 ` Deepak, M
2016-03-30 13:45 ` Jani Nikula
2016-03-28 9:36 Deepak M
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=1459262601-20132-3-git-send-email-m.deepak@intel.com \
--to=m.deepak@intel.com \
--cc=daniel.vetter@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=yetundex.adebisi@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.