All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Que <sque@chromium.org>
To: intel-gfx@lists.freedesktop.org, chris@chris-wilson.co.uk,
	jbarnes@virtuousgeek.org, eric@anholt.net
Cc: Simon Que <sque@chromium.org>, olofj@chromium.org, mjg@redhat.com
Subject: [PATCH] drivers: i915: Default max backlight brightness value
Date: Fri, 14 Oct 2011 16:46:57 -0700	[thread overview]
Message-ID: <1318636017-14568-1-git-send-email-sque@chromium.org> (raw)

In the native backlight driver, use 4096 (0x1000) as the default backlight
period, and use the period as the default max brightness.

The default brightness is defined in a separate function that can be
expanded to allow for different defaults on different systems in the
future.

Change-Id: Ie783b53dd034dcd7bf42e24ffc911cf2f10a5676
Signed-off-by: Simon Que <sque@chromium.org>
---
 drivers/gpu/drm/i915/i915_reg.h    |    1 +
 drivers/gpu/drm/i915/intel_panel.c |   22 ++++++++++++++++++----
 2 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 5d5def7..a832028 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -3275,6 +3275,7 @@
 #define  PWM_POLARITY_ACTIVE_HIGH2	(0 << 28)
 
 #define BLC_PWM_PCH_CTL2	0xc8254
+#define BLC_PWM_PCH_FREQ_SHIFT	16
 
 #define PCH_PP_STATUS		0xc7200
 #define PCH_PP_CONTROL		0xc7204
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index 05f500c..8205945 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -161,6 +161,12 @@ static u32 i915_read_blc_pwm_ctl(struct drm_i915_private *dev_priv)
 	return val;
 }
 
+static u32 intel_panel_get_default_backlight_period(struct drm_device *dev)
+{
+	/* The default number of clock cycles in one backlight PWM period. */
+	return 0x1000;
+}
+
 u32 intel_panel_get_max_backlight(struct drm_device *dev)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
@@ -168,11 +174,19 @@ u32 intel_panel_get_max_backlight(struct drm_device *dev)
 
 	max = i915_read_blc_pwm_ctl(dev_priv);
 	if (max == 0) {
-		/* XXX add code here to query mode clock or hardware clock
-		 * and program max PWM appropriately.
+		/* If no max backlight was found, use the default PWM period as
+		 * the max backlight value.
 		 */
-		printk_once(KERN_WARNING "fixme: max PWM is zero.\n");
-		return 1;
+		max = intel_panel_get_default_backlight_period(dev);
+		if (HAS_PCH_SPLIT(dev_priv->dev)) {
+			u32 val = max << BLC_PWM_PCH_FREQ_SHIFT;
+			I915_WRITE(BLC_PWM_PCH_CTL2, val);
+		} else {
+			u32 val = max << BACKLIGHT_MODULATION_FREQ_SHIFT;
+			I915_WRITE(BLC_PWM_CTL, val);
+		}
+
+		return max;
 	}
 
 	if (HAS_PCH_SPLIT(dev)) {
-- 
1.7.2.3

             reply	other threads:[~2011-10-14 23:47 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-14 23:46 Simon Que [this message]
2011-10-25 22:52 ` [PATCH] drivers: i915: Default max backlight brightness value Simon Que
2011-10-31 20:02 ` Simon Que
2011-10-31 20:32 ` Matthew Garrett

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=1318636017-14568-1-git-send-email-sque@chromium.org \
    --to=sque@chromium.org \
    --cc=chris@chris-wilson.co.uk \
    --cc=eric@anholt.net \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jbarnes@virtuousgeek.org \
    --cc=mjg@redhat.com \
    --cc=olofj@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.