All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
	Carsten Emde <C.Emde@osadl.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Subject: Re: [PATCH] properly enable the blc controller on the right pipe
Date: Thu, 26 Apr 2012 19:27:18 +0200	[thread overview]
Message-ID: <20120426172718.GH5156@phenom.ffwll.local> (raw)
In-Reply-To: <1335461132-11664-1-git-send-email-daniel.vetter@ffwll.ch>

On Thu, Apr 26, 2012 at 07:25:32PM +0200, Daniel Vetter wrote:
> Depending upon how things are set up, this might help. If not, please
> install intel-gpu-tools and grab the output of intel_reg_dumper both
> when booting with nomodeset and when booting with kms.
> 
> Thanks, Daniel

btw, all these stuff is in the public documentation at

http://intellinuxgraphics.org/documentation.html

The backlight stuff is in volume three: display registers.
-Daniel

> ---
>  drivers/gpu/drm/i915/intel_drv.h   |    3 ++-
>  drivers/gpu/drm/i915/intel_lvds.c  |    3 ++-
>  drivers/gpu/drm/i915/intel_panel.c |   15 ++++++++++++++-
>  3 files changed, 18 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index 715afa1..5a021ce 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -323,7 +323,8 @@ extern u32 intel_panel_get_max_backlight(struct drm_device *dev);
>  extern u32 intel_panel_get_backlight(struct drm_device *dev);
>  extern void intel_panel_set_backlight(struct drm_device *dev, u32 level);
>  extern int intel_panel_setup_backlight(struct drm_device *dev);
> -extern void intel_panel_enable_backlight(struct drm_device *dev);
> +extern void intel_panel_enable_backlight(struct drm_device *dev,
> +					 enum pipe pipe);
>  extern void intel_panel_disable_backlight(struct drm_device *dev);
>  extern void intel_panel_destroy_backlight(struct drm_device *dev);
>  extern enum drm_connector_status intel_panel_detect(struct drm_device *dev);
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
> index 30e2c82..3e71b86 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -71,6 +71,7 @@ static struct intel_lvds *intel_attached_lvds(struct drm_connector *connector)
>  static void intel_lvds_enable(struct intel_lvds *intel_lvds)
>  {
>  	struct drm_device *dev = intel_lvds->base.base.dev;
> +	struct intel_crtc *intel_crtc = to_intel_crtc(intel_lvds->base.base.crtc);
>  	struct drm_i915_private *dev_priv = dev->dev_private;
>  	u32 ctl_reg, lvds_reg, stat_reg;
>  
> @@ -107,7 +108,7 @@ static void intel_lvds_enable(struct intel_lvds *intel_lvds)
>  	if (wait_for((I915_READ(stat_reg) & PP_ON) != 0, 1000))
>  		DRM_ERROR("timed out waiting for panel to power on\n");
>  
> -	intel_panel_enable_backlight(dev);
> +	intel_panel_enable_backlight(dev, intel_crtc->pipe);
>  }
>  
>  static void intel_lvds_disable(struct intel_lvds *intel_lvds)
> diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
> index 48177ec..486cf92 100644
> --- a/drivers/gpu/drm/i915/intel_panel.c
> +++ b/drivers/gpu/drm/i915/intel_panel.c
> @@ -261,17 +261,30 @@ void intel_panel_disable_backlight(struct drm_device *dev)
>  
>  	dev_priv->backlight_enabled = false;
>  	intel_panel_actually_set_backlight(dev, 0);
> +
> +	/*disable the blc*/
> +	I915_WRITE(BLC_PWM_CTL2,
> +		   I915_READ(BLC_PWM_CTL2) & ~(1<<31));
>  }
>  
> -void intel_panel_enable_backlight(struct drm_device *dev)
> +void intel_panel_enable_backlight(struct drm_device *dev,
> +				  enum pipe pipe)
>  {
>  	struct drm_i915_private *dev_priv = dev->dev_private;
> +	u32 tmp;
>  
>  	if (dev_priv->backlight_level == 0)
>  		dev_priv->backlight_level = intel_panel_get_max_backlight(dev);
>  
>  	dev_priv->backlight_enabled = true;
>  	intel_panel_actually_set_backlight(dev, dev_priv->backlight_level);
> +
> +	/*enable the blc on the right pipe*/
> +	tmp = I915_READ(BLC_PWM_CTL2);
> +	tmp &= ~(1<<29); /* pipe select */
> +	tmp |= pipe == PIPE_A ? 0 : 1;
> +	I915_WRITE(BLC_PWM_CTL2,
> +		   I915_READ(BLC_PWM_CTL2) & ~(1<<31));
>  }
>  
>  static void intel_panel_init_backlight(struct drm_device *dev)
> -- 
> 1.7.10
> 

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

  reply	other threads:[~2012-04-26 17:26 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
2012-04-26 17:25       ` [PATCH] properly enable the blc controller on the right pipe Daniel Vetter
2012-04-26 17:27         ` Daniel Vetter [this message]
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=20120426172718.GH5156@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.