All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Carsten Emde <C.Emde@osadl.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 3/4] drm/i915: add quirk to indicate that an alt bit is used for brightness inversion
Date: Thu, 26 Apr 2012 19:08:44 +0200	[thread overview]
Message-ID: <20120426170844.GG5156@phenom.ffwll.local> (raw)
In-Reply-To: <20120426165034.081110768@osadl.org>

On Thu, Apr 26, 2012 at 06:48:36PM +0200, Carsten Emde wrote:
> Bit #28 of the backlight control BLC_PWM_CTL2 is normally used
> to indicate whether the brightness of the panel backlight is
> inverted. Sometimes, however, bit #29 is used for this purpose.
> Add a quirk to mark machines that do so.
> 
> Signed-off-by: Carsten Emde <C.Emde@osadl.org>
> 
> ---
>  drivers/gpu/drm/i915/i915_drv.h      |    1 +
>  drivers/gpu/drm/i915/i915_reg.h      |    1 +
>  drivers/gpu/drm/i915/intel_display.c |   10 ++++++++++
>  drivers/gpu/drm/i915/intel_panel.c   |   12 ++++++++++--
>  4 files changed, 22 insertions(+), 2 deletions(-)
> 
> Index: linux-tip/drivers/gpu/drm/i915/i915_drv.h
> ===================================================================
> --- linux-tip.orig/drivers/gpu/drm/i915/i915_drv.h
> +++ linux-tip/drivers/gpu/drm/i915/i915_drv.h
> @@ -295,6 +295,7 @@ enum intel_pch {
>  
>  #define QUIRK_PIPEA_FORCE (1<<0)
>  #define QUIRK_LVDS_SSC_DISABLE (1<<1)
> +#define QUIRK_ALT_BIT_FOR_BRIGHTNESS_INVERSION (2<<1)
>  
>  struct intel_fbdev;
>  struct intel_fbc_work;
> Index: linux-tip/drivers/gpu/drm/i915/i915_reg.h
> ===================================================================
> --- linux-tip.orig/drivers/gpu/drm/i915/i915_reg.h
> +++ linux-tip/drivers/gpu/drm/i915/i915_reg.h
> @@ -1685,6 +1685,7 @@
>  /* Backlight control */
>  #define BLC_PWM_CTL2		0x61250 /* 965+ only */
>  #define   BLM_COMBINATION_MODE	(1 << 30)
> +#define   BLM_ALT_POLARITY_I965	(1 << 29) /* quirk only */

bit29 is the pipe select bit, i.e. the backlight controller uses the pixel
clock from this pipe as the signal to module the backlight.

I need to look some more into this.
-Daniel


>  #define   BLM_POLARITY_I965	(1 << 28) /* gen4 only */
>  #define BLC_PWM_CTL		0x61254
>  /*
> Index: linux-tip/drivers/gpu/drm/i915/intel_display.c
> ===================================================================
> --- linux-tip.orig/drivers/gpu/drm/i915/intel_display.c
> +++ linux-tip/drivers/gpu/drm/i915/intel_display.c
> @@ -9101,6 +9101,16 @@ static void quirk_ssc_force_disable(stru
>  	dev_priv->quirks |= QUIRK_LVDS_SSC_DISABLE;
>  }
>  
> +/*
> + * A machine may use an alternate bit to indicate panel backlight brightness
> + * inversion
> + */
> +static void quirk_alt_bit_for_brightness_inversion(struct drm_device *dev)
> +{
> +	struct drm_i915_private *dev_priv = dev->dev_private;
> +	dev_priv->quirks |= QUIRK_ALT_BIT_FOR_BRIGHTNESS_INVERSION;
> +}
> +
>  struct intel_quirk {
>  	int device;
>  	int subsystem_vendor;
> Index: linux-tip/drivers/gpu/drm/i915/intel_panel.c
> ===================================================================
> --- linux-tip.orig/drivers/gpu/drm/i915/intel_panel.c
> +++ linux-tip/drivers/gpu/drm/i915/intel_panel.c
> @@ -208,9 +208,17 @@ static u32 intel_panel_compute_brightnes
>  	    dev_priv->quirks & QUIRK_INVERT_BRIGHTNESS)
>  		return intel_panel_get_max_backlight(dev) - val;
>  
> -	/* gen4 has a polarity bit */
> -	if (IS_GEN4(dev) && (I915_READ(BLC_PWM_CTL2) & BLM_POLARITY_I965))
> +	if (IS_GEN4(dev)) {
> +		/* gen4 has a - possibly quirked - polarity bit */
> +		int mask;
> +
> +		if (dev_priv->quirks & QUIRK_ALT_BIT_FOR_BRIGHTNESS_INVERSION)
> +			mask = BLM_ALT_POLARITY_I965;
> +		else
> +			mask = BLM_POLARITY_I965;
> +		if (I915_READ(BLC_PWM_CTL2) & mask)
>  			return intel_panel_get_max_backlight(dev) - val;
> +	}
>  
>  	return val;
>  }
> 

-- 
Daniel Vetter
Mail: daniel@ffwll.ch
Mobile: +41 (0)79 365 57 48

  reply	other threads:[~2012-04-26 17:07 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-23  9:32 [PATCH 1/2] drm/i915: clear up backlight inversion confusion on gen4 Daniel Vetter
2012-04-23  9:32 ` [PATCH 2/2] drm/i915: pnv has a backlight polarity control bit, too Daniel Vetter
2012-04-23 10:27   ` Chris Wilson
2012-04-23  9:53 ` [PATCH 1/2] drm/i915: clear up backlight inversion confusion on gen4 Chris Wilson
2012-04-23 12:21   ` Daniel Vetter
2012-04-23 12:32     ` Chris Wilson
2012-04-23 13:48       ` Daniel Vetter
     [not found] ` <4F9542EF.3010208@osadl.org>
2012-04-23 12:32   ` Daniel Vetter
2012-04-23 12:36     ` Daniel Vetter
2012-04-23 13:15       ` Carsten Emde
2012-04-23 13:39         ` Daniel Vetter
2012-04-23 14:00           ` Carsten Emde
2012-04-23 14:22             ` Daniel Vetter
2012-04-23 15:06               ` Carsten Emde
2012-04-23 15:22                 ` Daniel Vetter
2012-04-23 15:38                   ` Carsten Emde
2012-04-23 15:56                     ` Daniel Vetter
2012-04-23 16:55                       ` Carsten Emde
2012-04-26 16:48 ` [PATCH 0/4] drm/i915: " Carsten Emde
2012-04-26 16:48   ` [PATCH 1/4] drm/i915: " Carsten Emde
2012-04-26 16:48   ` [PATCH 2/4] drm/i915: completely revert the invert brightness quirk Carsten Emde
2012-04-26 16:48   ` [PATCH 3/4] drm/i915: add quirk to indicate that an alt bit is used for brightness inversion Carsten Emde
2012-04-26 17:08     ` Daniel Vetter [this message]
2012-04-26 17:25       ` [PATCH] properly enable the blc controller on the right pipe Daniel Vetter
2012-04-26 17:27         ` Daniel Vetter
2012-04-26 19:12         ` Carsten Emde
2012-04-26 19:30           ` Daniel Vetter
2012-04-27 20:18             ` Carsten Emde
2012-06-02 23:08               ` Daniel Vetter
2012-06-11  8:51                 ` Daniel Vetter
2012-07-19 14:00                   ` Carsten Emde
2012-07-19 14:40                     ` Daniel Vetter
2012-07-19 22:51                       ` Carsten Emde
2012-07-20  8:10                         ` Daniel Vetter
2012-07-24  7:30                           ` Carsten Emde
2012-07-25 22:35                             ` Carsten Emde
2012-07-26 11:55                               ` [PATCH] drm/i915 disable combination mode Daniel Vetter
2012-07-26 12:20                               ` Daniel Vetter
2012-07-26 12:36                               ` Daniel Vetter
2012-07-26 14:09                               ` Daniel Vetter
2012-04-26 16:48   ` [PATCH 4/4] drm/i915: assign the brightness inversion quirk to Acer Aspire 5734Z Carsten Emde
2012-04-27 16:17   ` [PATCH 0/4] drm/i915: Re: clear up backlight inversion confusion on gen4 Monark Gondaliya

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=20120426170844.GG5156@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=C.Emde@osadl.org \
    --cc=daniel.vetter@ffwll.ch \
    --cc=intel-gfx@lists.freedesktop.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.