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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).