* [PATCH 1/4] drm/i915: pnv has a backlight polarity control bit, too
@ 2012-06-05 8:07 Daniel Vetter
2012-06-05 8:07 ` [PATCH 2/4] drm/i915: clear up backlight #define confusion on gen4+ Daniel Vetter
` (4 more replies)
0 siblings, 5 replies; 12+ messages in thread
From: Daniel Vetter @ 2012-06-05 8:07 UTC (permalink / raw)
To: Intel Graphics Development; +Cc: Daniel Vetter
We already correctly ignore bit0 on gen < 4, now we also now why ;-)
I've decided that losing that single bit of precision isn't worth the
trouble to sprinkle IS_PINEVIEW checks all over the backlight control
code - that code is way too fragile imo.
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
drivers/gpu/drm/i915/i915_reg.h | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 7dcc04f..20244b9 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -1828,6 +1828,8 @@
*/
#define BACKLIGHT_DUTY_CYCLE_SHIFT (0)
#define BACKLIGHT_DUTY_CYCLE_MASK (0xffff)
+#define BACKLIGHT_DUTY_CYCLE_MASK_PNV (0xfffe)
+#define BLM_POLARITY_PNV (1 << 0) /* pnv only */
#define BLC_HIST_CTL 0x61260
--
1.7.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/4] drm/i915: clear up backlight #define confusion on gen4+
2012-06-05 8:07 [PATCH 1/4] drm/i915: pnv has a backlight polarity control bit, too Daniel Vetter
@ 2012-06-05 8:07 ` Daniel Vetter
2012-06-12 15:06 ` Eugeni Dodonov
2012-06-05 8:07 ` [PATCH 3/4] drm/i915: properly enable the blc controller on the right pipe Daniel Vetter
` (3 subsequent siblings)
4 siblings, 1 reply; 12+ messages in thread
From: Daniel Vetter @ 2012-06-05 8:07 UTC (permalink / raw)
To: Intel Graphics Development; +Cc: Daniel Vetter
- Regroup definitions for BLC_PWM_CTL so that they're all together and
and ordered according to the bitfields.
- Add all missing defintions for BLC_PWM_CTL2.
- Use the BLM_ (for backlight modulation) prefix consistently.
- Note that combination mode (i.e. also taking the legacy backlight
control value from pci config space into account) is gen4 only.
- Move the new registers for PCH-split machines up, they're an almost
match for the gen4 defitions. Prefix the special PCH-only bits with
BLM_PCH_. Also add the pipe C select bit for ivb.
- Rip out the second pair of PCH polarity definitions - they're only
valid on early (pre-production) ilk silicon.
- Adapt the existing code to use the new definitions. This has the
nice benefit of killing a magic (1 << 30) left behind be Jesse
Barnes.
No functional changes in this patch.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
drivers/gpu/drm/i915/i915_reg.h | 55 +++++++++++++++++++++------------
drivers/gpu/drm/i915/intel_display.c | 4 +-
drivers/gpu/drm/i915/intel_lvds.c | 12 ++++----
3 files changed, 43 insertions(+), 28 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 20244b9..c4b1a2b 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -1807,18 +1807,35 @@
#define PFIT_AUTO_RATIOS 0x61238
/* Backlight control */
-#define BLC_PWM_CTL 0x61254
-#define BACKLIGHT_MODULATION_FREQ_SHIFT (17)
#define BLC_PWM_CTL2 0x61250 /* 965+ only */
-#define BLM_COMBINATION_MODE (1 << 30)
+#define BLM_PWM_ENABLE (1 << 31)
+#define BLM_COMBINATION_MODE (1 << 30) /* gen4 only */
+#define BLM_PIPE_SELECT (1 << 29)
+#define BLM_PIPE_SELECT_IVB (3 << 29)
+#define BLM_PIPE_A (0 << 29)
+#define BLM_PIPE_B (1 << 29)
+#define BLM_PIPE_C (2 << 29) /* ivb + */
+#define BLM_PIPE(pipe) ((pipe) << 29)
+#define BLM_POLARITY_I965 (1 << 28) /* gen4 only */
+#define BLM_PHASE_IN_INTERUPT_STATUS (1 << 26)
+#define BLM_PHASE_IN_ENABLE (1 << 25)
+#define BLM_PHASE_IN_INTERUPT_ENABL (1 << 24)
+#define BLM_PHASE_IN_TIME_BASE_SHIFT (16)
+#define BLM_PHASE_IN_TIME_BASE_MASK (0xff << 16)
+#define BLM_PHASE_IN_COUNT_SHIFT (8)
+#define BLM_PHASE_IN_COUNT_MASK (0xff << 8)
+#define BLM_PHASE_IN_INCR_SHIFT (0)
+#define BLM_PHASE_IN_INCR_MASK (0xff << 0)
+#define BLC_PWM_CTL 0x61254
/*
* This is the most significant 15 bits of the number of backlight cycles in a
* complete cycle of the modulated backlight control.
*
* The actual value is this field multiplied by two.
*/
-#define BACKLIGHT_MODULATION_FREQ_MASK (0x7fff << 17)
-#define BLM_LEGACY_MODE (1 << 16)
+#define BACKLIGHT_MODULATION_FREQ_SHIFT (17)
+#define BACKLIGHT_MODULATION_FREQ_MASK (0x7fff << 17)
+#define BLM_LEGACY_MODE (1 << 16) /* gen2 only */
/*
* This is the number of cycles out of the backlight modulation cycle for which
* the backlight is on.
@@ -1833,6 +1850,19 @@
#define BLC_HIST_CTL 0x61260
+/* New registers for PCH-split platforms. Safe where new bits show up, the
+ * register layout machtes with gen4 BLC_PWM_CTL[12]. */
+#define BLC_PWM_CPU_CTL2 0x48250
+#define BLC_PWM_CPU_CTL 0x48254
+
+/* PCH CTL1 is totally different, all but the below bits are reserved. CTL2 is
+ * like the normal CTL from gen4 and earlier. Hooray for confusing naming. */
+#define BLC_PWM_PCH_CTL1 0xc8250
+#define BLM_PCH_PWM_ENABLE (1 << 30)
+#define BLM_PCH_OVERRIDE_ENABLE (1 << 30)
+#define BLM_PCH_POLARITY (1 << 29)
+#define BLC_PWM_PCH_CTL2 0xc8254
+
/* TV port control */
#define TV_CTL 0x68000
/** Enables the TV encoder */
@@ -3840,21 +3870,6 @@
#define PCH_LVDS 0xe1180
#define LVDS_DETECTED (1 << 1)
-#define BLC_PWM_CPU_CTL2 0x48250
-#define PWM_ENABLE (1 << 31)
-#define PWM_PIPE_A (0 << 29)
-#define PWM_PIPE_B (1 << 29)
-#define BLC_PWM_CPU_CTL 0x48254
-
-#define BLC_PWM_PCH_CTL1 0xc8250
-#define PWM_PCH_ENABLE (1 << 31)
-#define PWM_POLARITY_ACTIVE_LOW (1 << 29)
-#define PWM_POLARITY_ACTIVE_HIGH (0 << 29)
-#define PWM_POLARITY_ACTIVE_LOW2 (1 << 28)
-#define PWM_POLARITY_ACTIVE_HIGH2 (0 << 28)
-
-#define BLC_PWM_PCH_CTL2 0xc8254
-
#define PCH_PP_STATUS 0xc7200
#define PCH_PP_CONTROL 0xc7204
#define PANEL_UNLOCK_REGS (0xabcd << 16)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 9f5148ac..5cc1e9b 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -6889,9 +6889,9 @@ static void ivb_pch_pwm_override(struct drm_device *dev)
* IVB has CPU eDP backlight regs too, set things up to let the
* PCH regs control the backlight
*/
- I915_WRITE(BLC_PWM_CPU_CTL2, PWM_ENABLE);
+ I915_WRITE(BLC_PWM_CPU_CTL2, BLM_PWM_ENABLE);
I915_WRITE(BLC_PWM_CPU_CTL, 0);
- I915_WRITE(BLC_PWM_PCH_CTL1, PWM_ENABLE | (1<<30));
+ I915_WRITE(BLC_PWM_PCH_CTL1, BLM_PCH_PWM_ENABLE | BLM_PCH_OVERRIDE_ENABLE);
}
void intel_modeset_init_hw(struct drm_device *dev)
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 08eb04c..a7269e6 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -1081,16 +1081,16 @@ out:
/* make sure PWM is enabled and locked to the LVDS pipe */
pwm = I915_READ(BLC_PWM_CPU_CTL2);
- if (pipe == 0 && (pwm & PWM_PIPE_B))
- I915_WRITE(BLC_PWM_CPU_CTL2, pwm & ~PWM_ENABLE);
+ if (pipe == 0 && (pwm & BLM_PIPE_B))
+ I915_WRITE(BLC_PWM_CPU_CTL2, pwm & ~BLM_PWM_ENABLE);
if (pipe)
- pwm |= PWM_PIPE_B;
+ pwm |= BLM_PIPE_B;
else
- pwm &= ~PWM_PIPE_B;
- I915_WRITE(BLC_PWM_CPU_CTL2, pwm | PWM_ENABLE);
+ pwm &= ~BLM_PIPE_B;
+ I915_WRITE(BLC_PWM_CPU_CTL2, pwm | BLM_PWM_ENABLE);
pwm = I915_READ(BLC_PWM_PCH_CTL1);
- pwm |= PWM_PCH_ENABLE;
+ pwm |= BLM_PCH_PWM_ENABLE;
I915_WRITE(BLC_PWM_PCH_CTL1, pwm);
/*
* Unlock registers and just
--
1.7.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/4] drm/i915: properly enable the blc controller on the right pipe
2012-06-05 8:07 [PATCH 1/4] drm/i915: pnv has a backlight polarity control bit, too Daniel Vetter
2012-06-05 8:07 ` [PATCH 2/4] drm/i915: clear up backlight #define confusion on gen4+ Daniel Vetter
@ 2012-06-05 8:07 ` Daniel Vetter
2012-06-05 11:15 ` Daniel Vetter
2012-06-05 8:07 ` [PATCH 4/4] drm/i915: allow pipe A for lvds on gen4 Daniel Vetter
` (2 subsequent siblings)
4 siblings, 1 reply; 12+ messages in thread
From: Daniel Vetter @ 2012-06-05 8:07 UTC (permalink / raw)
To: Intel Graphics Development; +Cc: Daniel Vetter
On gen4+ we have a bitfield to specify from which pipe the backlight
controller should take it's clock. For PCH split platforms we've
already set these up, but only at initialization time. And without
taking into account the 3rd pipe added with ivb.
For gen4, we've completely ignored these. Although we do restrict lvds
to the 2nd pipe, so this is only a problem on machines where we boot
up with the lvds on the first pipe.
So restructure the code to enable the backlight on the right pipe at
modeset time.
v2: For odd reasons panel_enable_backlight gets called twice in a
modeset, so we can't WARN_ON in there if the backlight controller is
switched on already.
Tested-By: Kamal Mostafa <kamal@canonical.com>
Bugzilla: https://bugs.launchpad.net/bugs/954661
Cc: Carsten Emde <C.Emde@osadl.org>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
drivers/gpu/drm/i915/intel_drv.h | 3 +-
drivers/gpu/drm/i915/intel_lvds.c | 32 +++++------------------------
drivers/gpu/drm/i915/intel_panel.c | 38 +++++++++++++++++++++++++++++++++++-
3 files changed, 45 insertions(+), 28 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 39d7b07..2fc2623 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -377,7 +377,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 a7269e6..492db77 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)
@@ -1074,35 +1075,14 @@ bool intel_lvds_init(struct drm_device *dev)
goto failed;
out:
+ /*
+ * Unlock registers and just
+ * leave them unlocked
+ */
if (HAS_PCH_SPLIT(dev)) {
- u32 pwm;
-
- pipe = (I915_READ(PCH_LVDS) & LVDS_PIPEB_SELECT) ? 1 : 0;
-
- /* make sure PWM is enabled and locked to the LVDS pipe */
- pwm = I915_READ(BLC_PWM_CPU_CTL2);
- if (pipe == 0 && (pwm & BLM_PIPE_B))
- I915_WRITE(BLC_PWM_CPU_CTL2, pwm & ~BLM_PWM_ENABLE);
- if (pipe)
- pwm |= BLM_PIPE_B;
- else
- pwm &= ~BLM_PIPE_B;
- I915_WRITE(BLC_PWM_CPU_CTL2, pwm | BLM_PWM_ENABLE);
-
- pwm = I915_READ(BLC_PWM_PCH_CTL1);
- pwm |= BLM_PCH_PWM_ENABLE;
- I915_WRITE(BLC_PWM_PCH_CTL1, pwm);
- /*
- * Unlock registers and just
- * leave them unlocked
- */
I915_WRITE(PCH_PP_CONTROL,
I915_READ(PCH_PP_CONTROL) | PANEL_UNLOCK_REGS);
} else {
- /*
- * Unlock registers and just
- * leave them unlocked
- */
I915_WRITE(PP_CONTROL,
I915_READ(PP_CONTROL) | PANEL_UNLOCK_REGS);
}
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index 2a1625d..5e52639 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -287,9 +287,18 @@ void intel_panel_disable_backlight(struct drm_device *dev)
dev_priv->backlight_enabled = false;
intel_panel_actually_set_backlight(dev, 0);
+
+ if (INTEL_INFO(dev)->gen >= 4) {
+ uint32_t reg;
+
+ reg = HAS_PCH_SPLIT(dev) ? BLC_PWM_CPU_CTL2 : BLC_PWM_CTL2;
+
+ I915_WRITE(reg, I915_READ(reg) & ~BLM_PWM_ENABLE);
+ }
}
-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;
@@ -298,6 +307,33 @@ void intel_panel_enable_backlight(struct drm_device *dev)
dev_priv->backlight_enabled = true;
intel_panel_actually_set_backlight(dev, dev_priv->backlight_level);
+
+ if (INTEL_INFO(dev)->gen >= 4) {
+ uint32_t reg, tmp;
+
+ reg = HAS_PCH_SPLIT(dev) ? BLC_PWM_CPU_CTL2 : BLC_PWM_CTL2;
+
+
+ tmp = I915_READ(reg);
+
+ /* While modesetting this code gets called twice, hence don't
+ * adjust the backlight pipe if the backlight pwm is enabled
+ * again already. */
+ if (tmp & BLM_PWM_ENABLE)
+ return;
+
+ if (dev_priv->num_pipe == 3)
+ tmp &= ~BLM_PIPE_SELECT_IVB;
+ else
+ tmp &= ~BLM_PIPE_SELECT;
+
+ tmp |= BLM_PIPE(pipe);
+ tmp &= ~BLM_PWM_ENABLE;
+
+ I915_WRITE(reg, tmp);
+ POSTING_READ(reg);
+ I915_WRITE(reg, tmp | BLM_PWM_ENABLE);
+ }
}
static void intel_panel_init_backlight(struct drm_device *dev)
--
1.7.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 4/4] drm/i915: allow pipe A for lvds on gen4
2012-06-05 8:07 [PATCH 1/4] drm/i915: pnv has a backlight polarity control bit, too Daniel Vetter
2012-06-05 8:07 ` [PATCH 2/4] drm/i915: clear up backlight #define confusion on gen4+ Daniel Vetter
2012-06-05 8:07 ` [PATCH 3/4] drm/i915: properly enable the blc controller on the right pipe Daniel Vetter
@ 2012-06-05 8:07 ` Daniel Vetter
2012-06-12 15:35 ` Eugeni Dodonov
2012-06-05 9:25 ` [PATCH 1/4] drm/i915: pnv has a backlight polarity control bit, too Paul Menzel
2012-06-12 14:41 ` Eugeni Dodonov
4 siblings, 1 reply; 12+ messages in thread
From: Daniel Vetter @ 2012-06-05 8:07 UTC (permalink / raw)
To: Intel Graphics Development; +Cc: Daniel Vetter
Given the havoc the missing backlight pipe select code might have
caused, let's try to re-enabled pipe A support for lvds on gen4 hw.
Just to see what all blows up ...
Note though that
commit 4add75c43f39573edc884d46b7c2b7414f01171a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Sat Dec 4 17:49:46 2010 +0000
drm/i915: Allow LVDS to be on pipe A for Ironlake+
claims that this caused tons of spurious wakeups somehow.
More details can be found in the old revert:
commit 12e8ba25ef52f19e7a42e61aecb3c1fef83b2a82
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue Sep 7 23:39:28 2010 +0100
Revert "drm/i915: Allow LVDS on pipe A on gen4+"
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=16307
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
drivers/gpu/drm/i915/intel_lvds.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 492db77..ab4d647 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -968,6 +968,8 @@ bool intel_lvds_init(struct drm_device *dev)
intel_encoder->clone_mask = (1 << INTEL_LVDS_CLONE_BIT);
if (HAS_PCH_SPLIT(dev))
intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
+ else if (IS_GEN4(dev))
+ intel_encoder->crtc_mask = (1 << 0) | (1 << 1);
else
intel_encoder->crtc_mask = (1 << 1);
--
1.7.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/4] drm/i915: pnv has a backlight polarity control bit, too
2012-06-05 8:07 [PATCH 1/4] drm/i915: pnv has a backlight polarity control bit, too Daniel Vetter
` (2 preceding siblings ...)
2012-06-05 8:07 ` [PATCH 4/4] drm/i915: allow pipe A for lvds on gen4 Daniel Vetter
@ 2012-06-05 9:25 ` Paul Menzel
2012-06-12 14:41 ` Eugeni Dodonov
4 siblings, 0 replies; 12+ messages in thread
From: Paul Menzel @ 2012-06-05 9:25 UTC (permalink / raw)
To: Daniel Vetter; +Cc: Intel Graphics Development
[-- Attachment #1.1: Type: text/plain, Size: 1100 bytes --]
Dear Daniel,
Am Dienstag, den 05.06.2012, 10:07 +0200 schrieb Daniel Vetter:
> We already correctly ignore bit0 on gen < 4, now we also now why ;-)
s,also now,also know,
Maybe also do not use abbreviations in commit summaries.
> I've decided that losing that single bit of precision isn't worth the
> trouble to sprinkle IS_PINEVIEW checks all over the backlight control
> code - that code is way too fragile imo.
>
> Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
> drivers/gpu/drm/i915/i915_reg.h | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 7dcc04f..20244b9 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -1828,6 +1828,8 @@
> */
> #define BACKLIGHT_DUTY_CYCLE_SHIFT (0)
> #define BACKLIGHT_DUTY_CYCLE_MASK (0xffff)
> +#define BACKLIGHT_DUTY_CYCLE_MASK_PNV (0xfffe)
> +#define BLM_POLARITY_PNV (1 << 0) /* pnv only */
>
> #define BLC_HIST_CTL 0x61260
Thanks,
Paul
[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
[-- Attachment #2: Type: text/plain, Size: 159 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] drm/i915: properly enable the blc controller on the right pipe
2012-06-05 11:15 ` Daniel Vetter
@ 2012-06-05 10:14 ` Daniel Vetter
2012-06-12 15:15 ` Eugeni Dodonov
0 siblings, 1 reply; 12+ messages in thread
From: Daniel Vetter @ 2012-06-05 10:14 UTC (permalink / raw)
To: Intel Graphics Development; +Cc: Daniel Vetter
On gen4+ we have a bitfield to specify from which pipe the backlight
controller should take it's clock. For PCH split platforms we've
already set these up, but only at initialization time. And without
taking into account the 3rd pipe added with ivb.
For gen4, we've completely ignored these. Although we do restrict lvds
to the 2nd pipe, so this is only a problem on machines where we boot
up with the lvds on the first pipe.
So restructure the code to enable the backlight on the right pipe at
modeset time.
v2: For odd reasons panel_enable_backlight gets called twice in a
modeset, so we can't WARN_ON in there if the backlight controller is
switched on already.
v3: backlight enable can also be called through dpms on, so the check
in there is legit. Update the comment to reflect that.
Tested-By: Kamal Mostafa <kamal@canonical.com>
Bugzilla: https://bugs.launchpad.net/bugs/954661
Cc: Carsten Emde <C.Emde@osadl.org>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
drivers/gpu/drm/i915/intel_drv.h | 3 +-
drivers/gpu/drm/i915/intel_lvds.c | 32 +++++------------------------
drivers/gpu/drm/i915/intel_panel.c | 38 +++++++++++++++++++++++++++++++++++-
3 files changed, 45 insertions(+), 28 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 39d7b07..2fc2623 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -377,7 +377,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 a7269e6..492db77 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)
@@ -1074,35 +1075,14 @@ bool intel_lvds_init(struct drm_device *dev)
goto failed;
out:
+ /*
+ * Unlock registers and just
+ * leave them unlocked
+ */
if (HAS_PCH_SPLIT(dev)) {
- u32 pwm;
-
- pipe = (I915_READ(PCH_LVDS) & LVDS_PIPEB_SELECT) ? 1 : 0;
-
- /* make sure PWM is enabled and locked to the LVDS pipe */
- pwm = I915_READ(BLC_PWM_CPU_CTL2);
- if (pipe == 0 && (pwm & BLM_PIPE_B))
- I915_WRITE(BLC_PWM_CPU_CTL2, pwm & ~BLM_PWM_ENABLE);
- if (pipe)
- pwm |= BLM_PIPE_B;
- else
- pwm &= ~BLM_PIPE_B;
- I915_WRITE(BLC_PWM_CPU_CTL2, pwm | BLM_PWM_ENABLE);
-
- pwm = I915_READ(BLC_PWM_PCH_CTL1);
- pwm |= BLM_PCH_PWM_ENABLE;
- I915_WRITE(BLC_PWM_PCH_CTL1, pwm);
- /*
- * Unlock registers and just
- * leave them unlocked
- */
I915_WRITE(PCH_PP_CONTROL,
I915_READ(PCH_PP_CONTROL) | PANEL_UNLOCK_REGS);
} else {
- /*
- * Unlock registers and just
- * leave them unlocked
- */
I915_WRITE(PP_CONTROL,
I915_READ(PP_CONTROL) | PANEL_UNLOCK_REGS);
}
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index 2a1625d..7191908 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -287,9 +287,18 @@ void intel_panel_disable_backlight(struct drm_device *dev)
dev_priv->backlight_enabled = false;
intel_panel_actually_set_backlight(dev, 0);
+
+ if (INTEL_INFO(dev)->gen >= 4) {
+ uint32_t reg;
+
+ reg = HAS_PCH_SPLIT(dev) ? BLC_PWM_CPU_CTL2 : BLC_PWM_CTL2;
+
+ I915_WRITE(reg, I915_READ(reg) & ~BLM_PWM_ENABLE);
+ }
}
-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;
@@ -298,6 +307,33 @@ void intel_panel_enable_backlight(struct drm_device *dev)
dev_priv->backlight_enabled = true;
intel_panel_actually_set_backlight(dev, dev_priv->backlight_level);
+
+ if (INTEL_INFO(dev)->gen >= 4) {
+ uint32_t reg, tmp;
+
+ reg = HAS_PCH_SPLIT(dev) ? BLC_PWM_CPU_CTL2 : BLC_PWM_CTL2;
+
+
+ tmp = I915_READ(reg);
+
+ /* Note that this can also get called through dpms changes. And
+ * we don't track the backlight dpms state, hence check whether
+ * we have to do anything first. */
+ if (tmp & BLM_PWM_ENABLE)
+ return;
+
+ if (dev_priv->num_pipe == 3)
+ tmp &= ~BLM_PIPE_SELECT_IVB;
+ else
+ tmp &= ~BLM_PIPE_SELECT;
+
+ tmp |= BLM_PIPE(pipe);
+ tmp &= ~BLM_PWM_ENABLE;
+
+ I915_WRITE(reg, tmp);
+ POSTING_READ(reg);
+ I915_WRITE(reg, tmp | BLM_PWM_ENABLE);
+ }
}
static void intel_panel_init_backlight(struct drm_device *dev)
--
1.7.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 3/4] drm/i915: properly enable the blc controller on the right pipe
2012-06-05 8:07 ` [PATCH 3/4] drm/i915: properly enable the blc controller on the right pipe Daniel Vetter
@ 2012-06-05 11:15 ` Daniel Vetter
2012-06-05 10:14 ` [PATCH] " Daniel Vetter
0 siblings, 1 reply; 12+ messages in thread
From: Daniel Vetter @ 2012-06-05 11:15 UTC (permalink / raw)
To: Intel Graphics Development; +Cc: Daniel Vetter
On Tue, Jun 05, 2012 at 10:07:10AM +0200, Daniel Vetter wrote:
> On gen4+ we have a bitfield to specify from which pipe the backlight
> controller should take it's clock. For PCH split platforms we've
> already set these up, but only at initialization time. And without
> taking into account the 3rd pipe added with ivb.
>
> For gen4, we've completely ignored these. Although we do restrict lvds
> to the 2nd pipe, so this is only a problem on machines where we boot
> up with the lvds on the first pipe.
>
> So restructure the code to enable the backlight on the right pipe at
> modeset time.
>
> v2: For odd reasons panel_enable_backlight gets called twice in a
> modeset, so we can't WARN_ON in there if the backlight controller is
> switched on already.
Note that further inspections showed that nothing odd is going on, these
are just dpms on/off calls from Xorg. I've simply forgotten to update the
commit message and the comment in the code ...
-Daniel
>
> Tested-By: Kamal Mostafa <kamal@canonical.com>
> Bugzilla: https://bugs.launchpad.net/bugs/954661
> Cc: Carsten Emde <C.Emde@osadl.org>
> Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
> drivers/gpu/drm/i915/intel_drv.h | 3 +-
> drivers/gpu/drm/i915/intel_lvds.c | 32 +++++------------------------
> drivers/gpu/drm/i915/intel_panel.c | 38 +++++++++++++++++++++++++++++++++++-
> 3 files changed, 45 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index 39d7b07..2fc2623 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -377,7 +377,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 a7269e6..492db77 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)
> @@ -1074,35 +1075,14 @@ bool intel_lvds_init(struct drm_device *dev)
> goto failed;
>
> out:
> + /*
> + * Unlock registers and just
> + * leave them unlocked
> + */
> if (HAS_PCH_SPLIT(dev)) {
> - u32 pwm;
> -
> - pipe = (I915_READ(PCH_LVDS) & LVDS_PIPEB_SELECT) ? 1 : 0;
> -
> - /* make sure PWM is enabled and locked to the LVDS pipe */
> - pwm = I915_READ(BLC_PWM_CPU_CTL2);
> - if (pipe == 0 && (pwm & BLM_PIPE_B))
> - I915_WRITE(BLC_PWM_CPU_CTL2, pwm & ~BLM_PWM_ENABLE);
> - if (pipe)
> - pwm |= BLM_PIPE_B;
> - else
> - pwm &= ~BLM_PIPE_B;
> - I915_WRITE(BLC_PWM_CPU_CTL2, pwm | BLM_PWM_ENABLE);
> -
> - pwm = I915_READ(BLC_PWM_PCH_CTL1);
> - pwm |= BLM_PCH_PWM_ENABLE;
> - I915_WRITE(BLC_PWM_PCH_CTL1, pwm);
> - /*
> - * Unlock registers and just
> - * leave them unlocked
> - */
> I915_WRITE(PCH_PP_CONTROL,
> I915_READ(PCH_PP_CONTROL) | PANEL_UNLOCK_REGS);
> } else {
> - /*
> - * Unlock registers and just
> - * leave them unlocked
> - */
> I915_WRITE(PP_CONTROL,
> I915_READ(PP_CONTROL) | PANEL_UNLOCK_REGS);
> }
> diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
> index 2a1625d..5e52639 100644
> --- a/drivers/gpu/drm/i915/intel_panel.c
> +++ b/drivers/gpu/drm/i915/intel_panel.c
> @@ -287,9 +287,18 @@ void intel_panel_disable_backlight(struct drm_device *dev)
>
> dev_priv->backlight_enabled = false;
> intel_panel_actually_set_backlight(dev, 0);
> +
> + if (INTEL_INFO(dev)->gen >= 4) {
> + uint32_t reg;
> +
> + reg = HAS_PCH_SPLIT(dev) ? BLC_PWM_CPU_CTL2 : BLC_PWM_CTL2;
> +
> + I915_WRITE(reg, I915_READ(reg) & ~BLM_PWM_ENABLE);
> + }
> }
>
> -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;
>
> @@ -298,6 +307,33 @@ void intel_panel_enable_backlight(struct drm_device *dev)
>
> dev_priv->backlight_enabled = true;
> intel_panel_actually_set_backlight(dev, dev_priv->backlight_level);
> +
> + if (INTEL_INFO(dev)->gen >= 4) {
> + uint32_t reg, tmp;
> +
> + reg = HAS_PCH_SPLIT(dev) ? BLC_PWM_CPU_CTL2 : BLC_PWM_CTL2;
> +
> +
> + tmp = I915_READ(reg);
> +
> + /* While modesetting this code gets called twice, hence don't
> + * adjust the backlight pipe if the backlight pwm is enabled
> + * again already. */
> + if (tmp & BLM_PWM_ENABLE)
> + return;
> +
> + if (dev_priv->num_pipe == 3)
> + tmp &= ~BLM_PIPE_SELECT_IVB;
> + else
> + tmp &= ~BLM_PIPE_SELECT;
> +
> + tmp |= BLM_PIPE(pipe);
> + tmp &= ~BLM_PWM_ENABLE;
> +
> + I915_WRITE(reg, tmp);
> + POSTING_READ(reg);
> + I915_WRITE(reg, tmp | BLM_PWM_ENABLE);
> + }
> }
>
> static void intel_panel_init_backlight(struct drm_device *dev)
> --
> 1.7.7.6
>
--
Daniel Vetter
Mail: daniel@ffwll.ch
Mobile: +41 (0)79 365 57 48
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/4] drm/i915: pnv has a backlight polarity control bit, too
2012-06-05 8:07 [PATCH 1/4] drm/i915: pnv has a backlight polarity control bit, too Daniel Vetter
` (3 preceding siblings ...)
2012-06-05 9:25 ` [PATCH 1/4] drm/i915: pnv has a backlight polarity control bit, too Paul Menzel
@ 2012-06-12 14:41 ` Eugeni Dodonov
4 siblings, 0 replies; 12+ messages in thread
From: Eugeni Dodonov @ 2012-06-12 14:41 UTC (permalink / raw)
To: Daniel Vetter; +Cc: Intel Graphics Development
On 06/05/2012 05:07 AM, Daniel Vetter wrote:
> We already correctly ignore bit0 on gen < 4, now we also now why ;-)
s/now/know
> I've decided that losing that single bit of precision isn't worth the
> trouble to sprinkle IS_PINEVIEW checks all over the backlight control
> code - that code is way too fragile imo.
>
> Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Eugeni
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/4] drm/i915: clear up backlight #define confusion on gen4+
2012-06-05 8:07 ` [PATCH 2/4] drm/i915: clear up backlight #define confusion on gen4+ Daniel Vetter
@ 2012-06-12 15:06 ` Eugeni Dodonov
0 siblings, 0 replies; 12+ messages in thread
From: Eugeni Dodonov @ 2012-06-12 15:06 UTC (permalink / raw)
To: Daniel Vetter; +Cc: Intel Graphics Development
On 06/05/2012 05:07 AM, Daniel Vetter wrote:
> - Regroup definitions for BLC_PWM_CTL so that they're all together and
> and ordered according to the bitfields.
>
> - Add all missing defintions for BLC_PWM_CTL2.
s/defintions/definitions
>
> - Use the BLM_ (for backlight modulation) prefix consistently.
>
> - Note that combination mode (i.e. also taking the legacy backlight
> control value from pci config space into account) is gen4 only.
>
> - Move the new registers for PCH-split machines up, they're an almost
> match for the gen4 defitions. Prefix the special PCH-only bits with
> BLM_PCH_. Also add the pipe C select bit for ivb.
>
> - Rip out the second pair of PCH polarity definitions - they're only
> valid on early (pre-production) ilk silicon.
>
> - Adapt the existing code to use the new definitions. This has the
> nice benefit of killing a magic (1 << 30) left behind be Jesse
> Barnes.
>
> No functional changes in this patch.
>
> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
The bits look correct, but I think it would make it easier to follow up
if you'd split it into 2 patches to simplify things:
1. Add/regroup BLC_PWM_CTL2 and BLC_PWM_CTL stuff (and all the other
pre-PCH stuff)
2. Add/move the PCH registers
So each patch would correspond to one set of documents.
But if you think that the current way is good the way it is, for the
functional changes, as far as I can see:
Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Eugeni
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] drm/i915: properly enable the blc controller on the right pipe
2012-06-05 10:14 ` [PATCH] " Daniel Vetter
@ 2012-06-12 15:15 ` Eugeni Dodonov
0 siblings, 0 replies; 12+ messages in thread
From: Eugeni Dodonov @ 2012-06-12 15:15 UTC (permalink / raw)
To: Daniel Vetter; +Cc: Intel Graphics Development
On 06/05/2012 07:14 AM, Daniel Vetter wrote:
> + /* Note that this can also get called through dpms changes. And
> + * we don't track the backlight dpms state, hence check whether
> + * we have to do anything first. */
> + if (tmp & BLM_PWM_ENABLE)
> + return;
> +
I am tempted to add a WARN_ON(pipe > dev_priv->num_pipe) here, now that
we should handle 3 pipes.
> + if (dev_priv->num_pipe == 3)
> + tmp &= ~BLM_PIPE_SELECT_IVB;
> + else
> + tmp &= ~BLM_PIPE_SELECT;
> +
> + tmp |= BLM_PIPE(pipe);
> + tmp &= ~BLM_PWM_ENABLE;
> +
> + I915_WRITE(reg, tmp);
> + POSTING_READ(reg);
> + I915_WRITE(reg, tmp | BLM_PWM_ENABLE);
> + }
But besides that:
Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Eugeni
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/4] drm/i915: allow pipe A for lvds on gen4
2012-06-05 8:07 ` [PATCH 4/4] drm/i915: allow pipe A for lvds on gen4 Daniel Vetter
@ 2012-06-12 15:35 ` Eugeni Dodonov
2012-06-12 17:29 ` Daniel Vetter
0 siblings, 1 reply; 12+ messages in thread
From: Eugeni Dodonov @ 2012-06-12 15:35 UTC (permalink / raw)
To: Daniel Vetter; +Cc: Intel Graphics Development
On 06/05/2012 05:07 AM, Daniel Vetter wrote:
> Given the havoc the missing backlight pipe select code might have
> caused, let's try to re-enabled pipe A support for lvds on gen4 hw.
> Just to see what all blows up ...
>
> Note though that
>
> commit 4add75c43f39573edc884d46b7c2b7414f01171a
> Author: Chris Wilson <chris@chris-wilson.co.uk>
> Date: Sat Dec 4 17:49:46 2010 +0000
>
> drm/i915: Allow LVDS to be on pipe A for Ironlake+
>
> claims that this caused tons of spurious wakeups somehow.
>
> More details can be found in the old revert:
>
> commit 12e8ba25ef52f19e7a42e61aecb3c1fef83b2a82
> Author: Chris Wilson <chris@chris-wilson.co.uk>
> Date: Tue Sep 7 23:39:28 2010 +0100
>
> Revert "drm/i915: Allow LVDS on pipe A on gen4+"
>
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=16307
>
> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
I think we'll notice soon enough if it breaks something, so why not
giving it a try?
Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Eugeni
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/4] drm/i915: allow pipe A for lvds on gen4
2012-06-12 15:35 ` Eugeni Dodonov
@ 2012-06-12 17:29 ` Daniel Vetter
0 siblings, 0 replies; 12+ messages in thread
From: Daniel Vetter @ 2012-06-12 17:29 UTC (permalink / raw)
To: eugeni.dodonov; +Cc: Daniel Vetter, Intel Graphics Development
On Tue, Jun 12, 2012 at 12:35:17PM -0300, Eugeni Dodonov wrote:
> On 06/05/2012 05:07 AM, Daniel Vetter wrote:
> > Given the havoc the missing backlight pipe select code might have
> > caused, let's try to re-enabled pipe A support for lvds on gen4 hw.
> > Just to see what all blows up ...
> >
> > Note though that
> >
> > commit 4add75c43f39573edc884d46b7c2b7414f01171a
> > Author: Chris Wilson <chris@chris-wilson.co.uk>
> > Date: Sat Dec 4 17:49:46 2010 +0000
> >
> > drm/i915: Allow LVDS to be on pipe A for Ironlake+
> >
> > claims that this caused tons of spurious wakeups somehow.
> >
> > More details can be found in the old revert:
> >
> > commit 12e8ba25ef52f19e7a42e61aecb3c1fef83b2a82
> > Author: Chris Wilson <chris@chris-wilson.co.uk>
> > Date: Tue Sep 7 23:39:28 2010 +0100
> >
> > Revert "drm/i915: Allow LVDS on pipe A on gen4+"
> >
> > Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=16307
> >
> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>
> I think we'll notice soon enough if it breaks something, so why not
> giving it a try?
>
> Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Thanks for reviewing these, queud all four to -next.
-Daniel
--
Daniel Vetter
Mail: daniel@ffwll.ch
Mobile: +41 (0)79 365 57 48
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2012-06-12 17:27 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-05 8:07 [PATCH 1/4] drm/i915: pnv has a backlight polarity control bit, too Daniel Vetter
2012-06-05 8:07 ` [PATCH 2/4] drm/i915: clear up backlight #define confusion on gen4+ Daniel Vetter
2012-06-12 15:06 ` Eugeni Dodonov
2012-06-05 8:07 ` [PATCH 3/4] drm/i915: properly enable the blc controller on the right pipe Daniel Vetter
2012-06-05 11:15 ` Daniel Vetter
2012-06-05 10:14 ` [PATCH] " Daniel Vetter
2012-06-12 15:15 ` Eugeni Dodonov
2012-06-05 8:07 ` [PATCH 4/4] drm/i915: allow pipe A for lvds on gen4 Daniel Vetter
2012-06-12 15:35 ` Eugeni Dodonov
2012-06-12 17:29 ` Daniel Vetter
2012-06-05 9:25 ` [PATCH 1/4] drm/i915: pnv has a backlight polarity control bit, too Paul Menzel
2012-06-12 14:41 ` Eugeni Dodonov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox