All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@intel.com>
To: intel-gfx@lists.freedesktop.org, Deepak M <m.deepak@intel.com>
Cc: jani.nikula@intel.com
Subject: [PATCH 3/5] drm/i915: Parse LFP brightness control field in VBT
Date: Tue, 29 Mar 2016 18:01:29 +0300	[thread overview]
Message-ID: <7c197d838be599f7596f92a78bb023d466a15b97.1459263393.git.jani.nikula@intel.com> (raw)
In-Reply-To: <cover.1459263393.git.jani.nikula@intel.com>
In-Reply-To: <cover.1459263393.git.jani.nikula@intel.com>

From: Deepak M <m.deepak@intel.com>

These fields in VBT indicates the PWM source which
is used and also the controller number.

v2 by Jani: check for out of bounds access, some renames, change default
type, etc.

Signed-off-by: Deepak M <m.deepak@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h       | 1 +
 drivers/gpu/drm/i915/intel_bios.c     | 9 +++++++++
 drivers/gpu/drm/i915/intel_bios.h     | 8 ++++++++
 drivers/gpu/drm/i915/intel_vbt_defs.h | 6 ++++++
 4 files changed, 24 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 0906dfd7b1a9..4a76b7b2dbd9 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1472,6 +1472,7 @@ struct intel_vbt_data {
 		bool present;
 		bool active_low_pwm;
 		u8 min_brightness;	/* min_brightness/255 of max */
+		enum intel_backlight_type type;
 	} backlight;
 
 	/* MIPI DSI */
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index 6985519921b4..2f639820aded 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -304,6 +304,15 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv,
 		return;
 	}
 
+	dev_priv->vbt.backlight.type = INTEL_BACKLIGHT_DISPLAY_DDI;
+	if (bdb->version >= 191 &&
+	    get_blocksize(backlight_data) >= sizeof(*backlight_data)) {
+		const struct bdb_lfp_backlight_control_method *method;
+
+		method = &backlight_data->backlight_control[panel_type];
+		dev_priv->vbt.backlight.type = method->type;
+	}
+
 	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_bios.h b/drivers/gpu/drm/i915/intel_bios.h
index 149c3226e895..df6ce3e3d26f 100644
--- a/drivers/gpu/drm/i915/intel_bios.h
+++ b/drivers/gpu/drm/i915/intel_bios.h
@@ -30,6 +30,14 @@
 #ifndef _INTEL_BIOS_H_
 #define _INTEL_BIOS_H_
 
+enum intel_backlight_type {
+	INTEL_BACKLIGHT_PMIC,
+	INTEL_BACKLIGHT_LPSS,
+	INTEL_BACKLIGHT_DISPLAY_DDI,
+	INTEL_BACKLIGHT_CABC,
+	INTEL_BACKLIGHT_PANEL_DRIVER_INTERFACE,
+};
+
 struct edp_power_seq {
 	u16 t1_t3;
 	u16 t8;
diff --git a/drivers/gpu/drm/i915/intel_vbt_defs.h b/drivers/gpu/drm/i915/intel_vbt_defs.h
index 749dceab7c02..2191076c3ff6 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_method {
+	u8 type: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_method backlight_control[16];
 } __packed;
 
 struct aimdb_header {
-- 
2.1.4

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

  parent reply	other threads:[~2016-03-29 15:02 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-29 15:01 [PATCH 0/5] drm/i915: dsi dcs & cabc backlight control Jani Nikula
2016-03-29 15:01 ` [PATCH 1/5] drm: Add new DCS commands in the enum list Jani Nikula
2016-03-29 15:01 ` [PATCH 2/5] drm/i915: Parsing the PWM cntrl and CABC ON/OFF fields in VBT Jani Nikula
2016-03-29 15:01 ` Jani Nikula [this message]
2016-03-29 15:45   ` [PATCH 3/5] drm/i915: Parse LFP brightness control field " Deepak, M
2016-03-30 13:45     ` Jani Nikula
2016-03-29 15:01 ` [PATCH 4/5] drm/i915: Add DCS control for Panel PWM Jani Nikula
2016-03-29 15:01 ` [PATCH 5/5] CABC support for Panel PWM backlight control Jani Nikula
2016-03-29 16:05 ` ✗ Fi.CI.BAT: failure for drm/i915: dsi dcs & cabc " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2016-03-30 14:03 [PATCH 1/5] drm: Add new DCS commands in the enum list Jani Nikula
2016-03-30 14:03 ` [PATCH 3/5] drm/i915: Parse LFP brightness control field in VBT Jani Nikula
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 3/5] drm/i915: Parse LFP brightness control field in VBT Deepak M
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=7c197d838be599f7596f92a78bb023d466a15b97.1459263393.git.jani.nikula@intel.com \
    --to=jani.nikula@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=m.deepak@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.