Re: [Intel-gfx] [PATCH] drm/i915: don't warn if backlight unexpectedly enabled

2014-08-26 Thread Scot Doyle
On Tue, 26 Aug 2014, Daniel Vetter wrote:
> On Tue, Aug 26, 2014 at 07:33:25PM +0200, Daniel Vetter wrote:
>> Indeed the bios seems to just but gunk into that register. And if we add
>> in all the knobs there's piles of them (you have semi-duplicated backlight
>> registers on hsw on the PCH), so I guess it doesn't make sense to combine
>> them all and warn if something goes awry, at least not in a -fixes patch.
>> So Reviewed-by: Daniel Vetter  on your original
>> patch.
>>
>> Jani can decide whether he wants to save this WARN_ON (imo it's useful to
>> have such sanity-checks) in -next by taking all the various bits and duty
>> cycles into account. But maybe just on the latest platforms, that still
>> should give is good coverage, but with a lot less fuss.
>
> Out of curiosity: What are the PCH copies of the backlight registers doing
> after resume?

Thanks Daniel, here's the info:

When entering hsw_enable_pc8 during suspend
- the physical backlight is off
- BLC_PWM_CPU_CTL  == 0x 3a9 (BACKLIGHT_DUTY_CYCLE_MASK == )
- BLC_PWM_CPU_CTL2 == 0x6000
- BLC_PWM_PCH_CTL  == 0x   0
- BLC_PWM_PCH_CTL2 == 0x 3a9

When exiting hsw_disable_pc8 during resume
- the physical backlight is off
- BLC_PWM_CPU_CTL  == 0x 200
- BLC_PWM_CPU_CTL2 == 0x8000 (BLM_PWM_ENABLE)
- BLC_PWM_PCH_CTL  == 0x8000
- BLC_PWM_PCH_CTL2 == 0x 400

When entering pch_enable_backlight during resume
- the physical backlight is off
- BLC_PWM_CPU_CTL  == 0x 200
- BLC_PWM_CPU_CTL2 == 0x8000
- BLC_PWM_PCH_CTL  == 0x8000
- BLC_PWM_PCH_CTL2 == 0x 400

When exiting pch_enable_backlight during resume
- the physical backlight is off
- BLC_PWM_CPU_CTL  == duty cycle prior to suspend
- BLC_PWM_CPU_CTL2 == 0xe000 (BLM_PWM_ENABLE | BLM_TRANSCODER_EDP)
- BLC_PWM_PCH_CTL  == 0x8000
- BLC_PWM_PCH_CTL2 == 0x 3a9
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: don't warn if backlight unexpectedly enabled

2014-08-26 Thread Scot Doyle
On Tue, 26 Aug 2014, Daniel Vetter wrote:
> On Thu, Aug 21, 2014 at 07:12:59AM +0000, Scot Doyle wrote:
>> When we enter intel_modeset_setup_hw_state during resume
>> - BLC_PWM_CPU_CTL2 == BLM_PWM_ENABLE
>> - the physical backlight is off
>
> Hm, this is actually interesting - we have some other evidence that the
> best way to shut off the backlight is actually to just set the pwm duty
> cycle to 0. Can you please check that this is the case for your system?

/sys/class/backlight/intel_backlight/brightness
0 -> backlight not visible
1 -> backlight visible
937 -> max backlight

Setting /sys/class/backlight/intel_backlight/brightness to 0 updates 
BLC_PWM_CPU_CTL, but BLC_PWM_CPU_CTL2 remains 0xe000.


> Maybe we just need to extend the check to look for !PWM_ENABLE ||
> duty_cycle == 0.

The following measurements hold true no matter the duty cycle before 
suspend:

When entering hsw_enable_pc8 during suspend
- the physical backlight is off
- BLC_PWM_CPU_CTL == 0x3a90 (BACKLIGHT_DUTY_CYCLE_MASK == )
- BLC_PWM_CPU_CTL2 == 0x6000 (BLM_PWM_ENABLE)

When exiting hsw_disable_pc8 during resume
- the physical backlight is off
- BLC_PWM_CPU_CTL == 0x200
- BLC_PWM_CPU_CTL2 == 0x8000 (BLM_PWM_ENABLE | BLM_TRANSCODER_EDP)

When entering pch_enable_backlight during resume
- the physical backlight is off
- BLC_PWM_CPU_CTL == 0x200
- BLC_PWM_CPU_CTL2 == 0x8000 (BLM_PWM_ENABLE)

When exiting pch_enable_backlight during resume
- the physical backlight is off
- BLC_PWM_CPU_CTL == duty cycle prior to suspend
- BLC_PWM_CPU_CTL2 == 0xe000 (BLM_PWM_ENABLE | BLM_TRANSCODER_EDP)


So the BIOS is setting BLC_PWM_CPU_CTL=0x200 and BLC_PWM_CPU_CTL2=0x8000 ?
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915/bdw: Render moot context reset and switch with Execlists

2014-08-25 Thread Scot Doyle

On Mon, 25 Aug 2014, Daniel Vetter wrote:

On Wed, Aug 20, 2014 at 04:36:05PM +0100, Chris Wilson wrote:

On Wed, Aug 20, 2014 at 04:29:24PM +0100, Thomas Daniel wrote:

These two functions make no sense in an Logical Ring Context & Execlists
world.

v2: We got rid of lrc_enabled and centralized everything in the sanitized
i915.enable_execlists instead.

Signed-off-by: Oscar Mateo 

v3: Rebased.  Corrected a typo in comment for i915_switch_context and
added a comment that it should not be called in execlist mode. Added
WARN_ON if i915_switch_context is called in execlist mode. Moved check
for execlist mode out of i915_switch_context and into callers. Added
comment in context_reset explaining why nothing is done in execlist
mode.


No, this is not the way. The requirement is to reduce the number of
special cases not increase them. These should be evaluated to be no-ops
when execlists is used.


I think it's ok-ish for now. Maybe we need to reconsider when we wire up
lrc reclaim - which is the real user of the switch_context in gpu_idle.
The problem I have though is that I can't parse the subject of the patch,
someone please translate that to simplified English for me. I can do the
replacement while applying.
-Daniel


"Render moot" usually means something like "make obsolete", not sure about 
the rest.

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: Ignore VBT backlight presence check on Acer C720 (4005U)

2014-08-21 Thread Scot Doyle
commit c675949ec58ca50d5a3ae3c757892f1560f6e896
drm/i915: do not setup backlight if not available according to VBT

prevents backlight setup on the Acer C720 (Core i3 4005U CPU), which has a
misconfigured VBT. Apply quirk to ignore the VBT backlight presence check
during backlight setup.

Signed-off-by: Scot Doyle 
Tested-by: Tyler Cleveland 
Cc: Jani Nikula 
Cc: Daniel Vetter 
---
 drivers/gpu/drm/i915/intel_display.c |3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 0b327eb..3d4a4eb 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12553,6 +12553,9 @@ static struct intel_quirk intel_quirks[] = {
/* Acer C720 and C720P Chromebooks (Celeron 2955U) have backlights */
{ 0x0a06, 0x1025, 0x0a11, quirk_backlight_present },

+   /* Acer C720 Chromebook (Core i3 4005U) */
+   { 0x0a16, 0x1025, 0x0a11, quirk_backlight_present },
+
/* Toshiba CB35 Chromebook (Celeron 2955U) */
{ 0x0a06, 0x1179, 0x0a88, quirk_backlight_present },

-- 
1.7.10.4
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: don't warn if backlight unexpectedly enabled

2014-08-21 Thread Scot Doyle


On Tue, 19 Aug 2014, Daniel Vetter wrote:

On Tue, Aug 19, 2014 at 4:07 AM, Scot Doyle  wrote:

BIOS or firmware can modify hardware state during suspend/resume,
for example on the Toshiba CB35 or Lenovo T400, so log a debug message
instead of a warning if the backlight is unexpectedly enabled.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=80930
Cc: Jani Nikula 
Signed-off-by: Scot Doyle 


This should get cleaned up in the modeset state sanitization we do
upon resume, so without someone digging into this bug a bit and coming
up with an explanation for why that fails I'm reluctant to merge this.
-Daniel


When we enter intel_modeset_setup_hw_state during resume
- BLC_PWM_CPU_CTL2 == BLM_PWM_ENABLE
- the physical backlight is off
- readout_hw_state says crtcs, encoders and connectors are disabled

The sanitizations done before reaching the force_restore block are
- drm_vblank_off for each crtc
- sarea_priv->pipeA_w=0
- sarea_priv->pipeA_h=0
- ilk_wm_get_hw_state(dev)

Then the warning is logged inside the force_restore block
[11.651495] [] warn_slowpath_fmt+0x5c/0x80
[11.651508] [] pch_enable_backlight+0x1ba/0x200
[11.651518] [] intel_panel_enable_backlight+0xa4/0x100
[11.651529] [] intel_edp_backlight_on+0x54/0x140
[11.651540] [] intel_enable_ddi+0xb3/0x100
[11.651552] [] haswell_crtc_enable+0x559/0xe80
[11.651564] [] __intel_set_mode+0xf94/0x1c00
[11.651575] [] intel_modeset_setup_hw_state+0x55b/0xd80
[11.651609] [] __i915_drm_thaw+0x159/0x1d0
[11.651617] [] i915_resume+0x28/0x50

I see no code in the execution path of intel_modeset_setup_hw_state to 
either note the state of BLC_PWM_CPU_CTL2 or reset it, apart from the 
pch_enable_backlight function. Which would be one explanation :-)

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: don't warn if backlight unexpectedly enabled

2014-08-18 Thread Scot Doyle
BIOS or firmware can modify hardware state during suspend/resume,
for example on the Toshiba CB35 or Lenovo T400, so log a debug message
instead of a warning if the backlight is unexpectedly enabled.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=80930
Cc: Jani Nikula 
Signed-off-by: Scot Doyle 
---
 drivers/gpu/drm/i915/intel_panel.c |8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_panel.c 
b/drivers/gpu/drm/i915/intel_panel.c
index 59b028f..8e37444 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -801,7 +801,7 @@ static void pch_enable_backlight(struct intel_connector 
*connector)

cpu_ctl2 = I915_READ(BLC_PWM_CPU_CTL2);
if (cpu_ctl2 & BLM_PWM_ENABLE) {
-   WARN(1, "cpu backlight already enabled\n");
+   DRM_DEBUG_KMS("cpu backlight already enabled\n");
cpu_ctl2 &= ~BLM_PWM_ENABLE;
I915_WRITE(BLC_PWM_CPU_CTL2, cpu_ctl2);
}
@@ -845,7 +845,7 @@ static void i9xx_enable_backlight(struct intel_connector 
*connector)

ctl = I915_READ(BLC_PWM_CTL);
if (ctl & BACKLIGHT_DUTY_CYCLE_MASK_PNV) {
-   WARN(1, "backlight already enabled\n");
+   DRM_DEBUG_KMS("backlight already enabled\n");
I915_WRITE(BLC_PWM_CTL, 0);
}

@@ -876,7 +876,7 @@ static void i965_enable_backlight(struct intel_connector 
*connector)

ctl2 = I915_READ(BLC_PWM_CTL2);
if (ctl2 & BLM_PWM_ENABLE) {
-   WARN(1, "backlight already enabled\n");
+   DRM_DEBUG_KMS("backlight already enabled\n");
ctl2 &= ~BLM_PWM_ENABLE;
I915_WRITE(BLC_PWM_CTL2, ctl2);
}
@@ -910,7 +910,7 @@ static void vlv_enable_backlight(struct intel_connector 
*connector)

ctl2 = I915_READ(VLV_BLC_PWM_CTL2(pipe));
if (ctl2 & BLM_PWM_ENABLE) {
-   WARN(1, "backlight already enabled\n");
+   DRM_DEBUG_KMS("backlight already enabled\n");
ctl2 &= ~BLM_PWM_ENABLE;
I915_WRITE(VLV_BLC_PWM_CTL2(pipe), ctl2);
}
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: Ignore VBT backlight presence check on HP Chromebook 14

2014-07-11 Thread Scot Doyle
commit c675949ec58ca50d5a3ae3c757892f1560f6e896
drm/i915: do not setup backlight if not available according to VBT

caused a regression on the HP Chromebook 14 (with Celeron 2955U CPU),
which has a misconfigured VBT. Apply quirk to ignore the VBT backlight
presence check during backlight setup.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79813
Signed-off-by: Scot Doyle 
Tested-by: Stefan Nagy 
Cc: Jani Nikula 
Cc: Daniel Vetter 
---
 drivers/gpu/drm/i915/intel_display.c |3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index fe6f1db..5d70f02 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12440,6 +12440,9 @@ static struct intel_quirk intel_quirks[] = {
 
/* Toshiba CB35 Chromebook (Celeron 2955U) */
{ 0x0a06, 0x1179, 0x0a88, quirk_backlight_present },
+
+   /* HP Chromebook 14 (Celeron 2955U) */
+   { 0x0a06, 0x103c, 0x21ed, quirk_backlight_present },
 };
 
 static void intel_init_quirks(struct drm_device *dev)
-- 
1.7.10.4

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v3 2/3] drm/i915: Acer C720 and C720P have controllable backlights

2014-07-03 Thread Scot Doyle
The Acer C720 and C720P Chromebooks (with Celeron 2955U CPU) have a
controllable backlight although their VBT reports otherwise. Apply quirk
to ignore the backlight presence check during backlight setup.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79813
Tested-by: James Duley 
Tested-by: Michael Mullin 
Signed-off-by: Scot Doyle 
CC: Jani Nikula 
---
 drivers/gpu/drm/i915/intel_display.c |3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index fae289f..7345441 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12391,6 +12391,9 @@ static struct intel_quirk intel_quirks[] = {
 
/* Acer Aspire 5336 */
{ 0x2a42, 0x1025, 0x048a, quirk_invert_brightness },
+
+   /* Acer C720 and C720P Chromebooks (Celeron 2955U) have backlights */
+   { 0x0a06, 0x1025, 0x0a11, quirk_backlight_present },
 };
 
 static void intel_init_quirks(struct drm_device *dev)
-- 
1.7.10.4

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v3 3/3] drm/i915: Toshiba CB35 has a controllable backlight

2014-07-03 Thread Scot Doyle
The Toshiba CB35 Chromebook (with Celeron 2955U CPU) has a controllable
backlight although its VBT reports otherwise. Apply quirk to ignore the
backlight presence check during backlight setup.

Patch tested by author on Toshiba CB35.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79813
Signed-off-by: Scot Doyle 
CC: Jani Nikula 
---
 drivers/gpu/drm/i915/intel_display.c |3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 7345441..c12a5da 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12394,6 +12394,9 @@ static struct intel_quirk intel_quirks[] = {
 
/* Acer C720 and C720P Chromebooks (Celeron 2955U) have backlights */
{ 0x0a06, 0x1025, 0x0a11, quirk_backlight_present },
+
+   /* Toshiba CB35 Chromebook (Celeron 2955U) */
+   { 0x0a06, 0x1179, 0x0a88, quirk_backlight_present },
 };
 
 static void intel_init_quirks(struct drm_device *dev)
-- 
1.7.10.4

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v3 1/3] drm/i915: quirk asserts controllable backlight presence, overriding VBT

2014-07-03 Thread Scot Doyle
commit c675949ec58ca50d5a3ae3c757892f1560f6e896
  drm/i915: do not setup backlight if not available according to VBT

caused a regression on machines with a misconfigured VBT. Add a quirk to
assert the presence of a controllable backlight. Use it to ignore the VBT
backlight presence check during backlight setup.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79813
Tested-by: James Duley 
Tested-by: Michael Mullin 
Reviewed-by: Jani Nikula 
Signed-off-by: Scot Doyle 
---
 drivers/gpu/drm/i915/i915_drv.h  |1 +
 drivers/gpu/drm/i915/intel_display.c |8 
 drivers/gpu/drm/i915/intel_panel.c   |8 ++--
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 9953ea8..ac06c0f 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -658,6 +658,7 @@ enum intel_sbi_destination {
 #define QUIRK_PIPEA_FORCE (1<<0)
 #define QUIRK_LVDS_SSC_DISABLE (1<<1)
 #define QUIRK_INVERT_BRIGHTNESS (1<<2)
+#define QUIRK_BACKLIGHT_PRESENT (1<<3)
 
 struct intel_fbdev;
 struct intel_fbc_work;
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index a72b55f..fae289f 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12315,6 +12315,14 @@ static void quirk_invert_brightness(struct drm_device 
*dev)
DRM_INFO("applying inverted panel brightness quirk\n");
 }
 
+/* Some VBT's incorrectly indicate no backlight is present */
+static void quirk_backlight_present(struct drm_device *dev)
+{
+   struct drm_i915_private *dev_priv = dev->dev_private;
+   dev_priv->quirks |= QUIRK_BACKLIGHT_PRESENT;
+   DRM_INFO("applying backlight present quirk\n");
+}
+
 struct intel_quirk {
int device;
int subsystem_vendor;
diff --git a/drivers/gpu/drm/i915/intel_panel.c 
b/drivers/gpu/drm/i915/intel_panel.c
index 38a9857..628cd89 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -1118,8 +1118,12 @@ int intel_panel_setup_backlight(struct drm_connector 
*connector)
int ret;
 
if (!dev_priv->vbt.backlight.present) {
-   DRM_DEBUG_KMS("native backlight control not available per 
VBT\n");
-   return 0;
+   if (dev_priv->quirks & QUIRK_BACKLIGHT_PRESENT) {
+   DRM_DEBUG_KMS("no backlight present per VBT, but 
present per quirk\n");
+   } else {
+   DRM_DEBUG_KMS("no backlight present per VBT\n");
+   return 0;
+   }
}
 
/* set level and max in panel struct */
-- 
1.7.10.4

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v3 0/3] drm/i915: fix backlight regression caused by misconfigured VBT

2014-07-03 Thread Scot Doyle
Submitted with git to correct whitespace problems.
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2 3/3] drm/i915: Toshiba CB35 has a controllable backlight

2014-06-30 Thread Scot Doyle
The Toshiba CB35 Chromebook (with Celeron 2955U CPU) has a controllable 
backlight although its VBT reports otherwise. Apply quirk to ignore the 
backlight presence check during backlight setup.


Patch tested by author on Toshiba CB35.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79813
Signed-off-by: Scot Doyle 
CC: Jani Nikula 
---
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 18089bf..b3a99e9 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12394,6 +12394,9 @@ static struct intel_quirk intel_quirks[] = {

 /* Acer C720 and C720P Chromebooks (Celeron 2955U) have backlights */
 { 0x0a06, 0x1025, 0x0a11, quirk_backlight_present },
+
+/* Toshiba CB35 Chromebook (Celeron 2955U) */
+{ 0x0a06, 0x1179, 0x0a88, quirk_backlight_present },
 };

 static void intel_init_quirks(struct drm_device *dev)
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2 2/3] drm/i915: Acer C720 and C720P have controllable backlights

2014-06-30 Thread Scot Doyle
The Acer C720 and C720P Chromebooks (with Celeron 2955U CPU) have a 
controllable backlight although their VBT reports otherwise. Apply quirk 
to ignore the backlight presence check during backlight setup.


Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79813
Tested-by: James Duley 
Tested-by: Michael Mullin 
Signed-off-by: Scot Doyle 
CC: Jani Nikula 
---
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 7b5f193..18089bf 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12391,6 +12391,9 @@ static struct intel_quirk intel_quirks[] = {

/* Acer Aspire 5336 */
{ 0x2a42, 0x1025, 0x048a, quirk_invert_brightness },
+
+/* Acer C720 and C720P Chromebooks (Celeron 2955U) have backlights */
+{ 0x0a06, 0x1025, 0x0a11, quirk_backlight_present },
 };

 static void intel_init_quirks(struct drm_device *dev)
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2 1/3] drm/i915: quirk asserts controllable backlight presence, overriding VBT

2014-06-30 Thread Scot Doyle

commit c675949ec58ca50d5a3ae3c757892f1560f6e896
 drm/i915: do not setup backlight if not available according to VBT

caused a regression on machines with a misconfigured VBT. Add a quirk to 
assert the presence of a controllable backlight. Use it to ignore the VBT 
backlight presence check during backlight setup.


Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79813
Tested-by: James Duley 
Tested-by: Michael Mullin 
Signed-off-by: Scot Doyle 
Reviewed-by: Jani Nikula 
---
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 8cea596..723b1fe 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -657,6 +657,7 @@ enum intel_sbi_destination {
 #define QUIRK_PIPEA_FORCE (1<<0)
 #define QUIRK_LVDS_SSC_DISABLE (1<<1)
 #define QUIRK_INVERT_BRIGHTNESS (1<<2)
+#define QUIRK_BACKLIGHT_PRESENT (1<<3)

 struct intel_fbdev;
 struct intel_fbc_work;
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 3badfbd..7b5f193 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12315,6 +12315,14 @@ static void quirk_invert_brightness(struct drm_device 
*dev)
DRM_INFO("applying inverted panel brightness quirk\n");
 }

+/* Some VBT's incorrectly indicate no backlight is present */
+static void quirk_backlight_present(struct drm_device *dev)
+{
+   struct drm_i915_private *dev_priv = dev->dev_private;
+   dev_priv->quirks |= QUIRK_BACKLIGHT_PRESENT;
+   DRM_INFO("applying backlight present quirk\n");
+}
+
 struct intel_quirk {
int device;
int subsystem_vendor;
diff --git a/drivers/gpu/drm/i915/intel_panel.c 
b/drivers/gpu/drm/i915/intel_panel.c
index 38a9857..628cd89 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -1118,8 +1118,12 @@ int intel_panel_setup_backlight(struct drm_connector 
*connector)
int ret;

if (!dev_priv->vbt.backlight.present) {
-   DRM_DEBUG_KMS("native backlight control not available per 
VBT\n");
-   return 0;
+   if (dev_priv->quirks & QUIRK_BACKLIGHT_PRESENT) {
+   DRM_DEBUG_KMS("no backlight present per VBT, but present per 
quirk\n");
+   } else {
+   DRM_DEBUG_KMS("no backlight present per VBT\n");
+   return 0;
+   }
}

/* set level and max in panel struct */
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2 0/3] drm/i915: fix backlight regression caused by misconfigured VBT

2014-06-30 Thread Scot Doyle

Jani, here are the changes you suggested plus:

1) Against newer drm-intel-nightly
2) Added Acer C720P (touchscreen), tested by Michael
3) Removed HP 14 and Dell 11 Chromebooks since no testers yet
4) Clarified these are for the Haswell (Celeron 2955U) boards since upcoming 
Chromebooks may be same model with different board
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 5/5] Toshiba CB35 Chromebook has a controllable backlight

2014-06-27 Thread Scot Doyle
The Toshiba CB35 Chromebook laptop has a controllable backlight although 
its VBT reports otherwise.


Patch tested by author on Toshiba CB35.

Signed-off-by: Scot Doyle 
CC: Jani Nikula 
---
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 89d9fe8..90c97d8 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12375,6 +12375,9 @@ static struct intel_quirk intel_quirks[] = {

/* HP 14 (Celeron 2955U) Chromebook */
{ 0x0a06, 0x103c, 0x21ed, quirk_backlight_present },
+
+   /* Toshiba CB35 Chromebook */
+   { 0x0a06, 0x1179, 0x0a88, quirk_backlight_present },
 };

 static void intel_init_quirks(struct drm_device *dev)

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 4/5] HP 14 Chromebook has a controllable backlight

2014-06-27 Thread Scot Doyle
The HP 14 (Celeron 2955U) Chromebook laptop has a controllable backlight 
although its VBT reports otherwise.


Signed-off-by: Scot Doyle 
CC: Jani Nikula 
---
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 2ac699b..89d9fe8 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12372,6 +12372,9 @@ static struct intel_quirk intel_quirks[] = {

/* Dell 11 Chromebook */
{ 0x0a06, 0x1028, 0x0a35, quirk_backlight_present },
+
+   /* HP 14 (Celeron 2955U) Chromebook */
+   { 0x0a06, 0x103c, 0x21ed, quirk_backlight_present },
 };

 static void intel_init_quirks(struct drm_device *dev)

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 3/5] Dell 11 Chromebook has a controllable backlight

2014-06-27 Thread Scot Doyle
The Dell 11 Chromebook laptop has a controllable backlight although its 
VBT reports otherwise.


Signed-off-by: Scot Doyle 
CC: Jani Nikula 
---
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 2855d29..2ac699b 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12369,6 +12369,9 @@ static struct intel_quirk intel_quirks[] = {

/* Acer C720 Chromebook has a controllable backlight */
{ 0x0a06, 0x1025, 0x0a11, quirk_backlight_present },
+
+   /* Dell 11 Chromebook */
+   { 0x0a06, 0x1028, 0x0a35, quirk_backlight_present },
 };

 static void intel_init_quirks(struct drm_device *dev)
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 2/5] Acer C720 has a controllable backlight

2014-06-27 Thread Scot Doyle
The Acer C720 laptop has a controllable backlight although its VBT reports 
otherwise.


Tested-by: James Duley 
Signed-off-by: Scot Doyle 
CC: Jani Nikula 
---
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index c583b07..2855d29 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12366,6 +12366,9 @@ static struct intel_quirk intel_quirks[] = {

/* Acer Aspire 5336 */
{ 0x2a42, 0x1025, 0x048a, quirk_invert_brightness },
+
+   /* Acer C720 Chromebook has a controllable backlight */
+   { 0x0a06, 0x1025, 0x0a11, quirk_backlight_present },
 };

 static void intel_init_quirks(struct drm_device *dev)
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 1/5] quirk asserts controllable backlight presence, overriding VBT

2014-06-27 Thread Scot Doyle
Add a quirk to assert the presence of a controllable backlight. Use it to 
ignore the VBT backlight presence check during backlight setup.


Tested-by: James Duley 
Signed-off-by: Scot Doyle 
CC: Jani Nikula 
---
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 8cea596..723b1fe 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -657,6 +657,7 @@ enum intel_sbi_destination {
 #define QUIRK_PIPEA_FORCE (1<<0)
 #define QUIRK_LVDS_SSC_DISABLE (1<<1)
 #define QUIRK_INVERT_BRIGHTNESS (1<<2)
+#define QUIRK_BACKLIGHT_PRESENT (1<<3)

 struct intel_fbdev;
 struct intel_fbc_work;
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 065984d..c583b07 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12290,6 +12290,14 @@ static void quirk_invert_brightness(struct drm_device 
*dev)
DRM_INFO("applying inverted panel brightness quirk\n");
 }

+/* Some VBT's incorrectly indicate no backlight is present */
+static void quirk_backlight_present(struct drm_device *dev)
+{
+   struct drm_i915_private *dev_priv = dev->dev_private;
+   dev_priv->quirks |= QUIRK_BACKLIGHT_PRESENT;
+   DRM_INFO("applying backlight present quirk\n");
+}
+
 struct intel_quirk {
int device;
int subsystem_vendor;
diff --git a/drivers/gpu/drm/i915/intel_panel.c 
b/drivers/gpu/drm/i915/intel_panel.c
index 38a9857..dfc6b5f 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -1118,8 +1118,13 @@ int intel_panel_setup_backlight(struct drm_connector 
*connector)
int ret;

if (!dev_priv->vbt.backlight.present) {
-   DRM_DEBUG_KMS("native backlight control not available per 
VBT\n");
-   return 0;
+   if (dev_priv->quirks & QUIRK_BACKLIGHT_PRESENT) {
+   DRM_DEBUG_KMS("no backlight present per VBT, but "
+ "present per quirk\n");
+   } else {
+   DRM_DEBUG_KMS("no backlight present per VBT\n");
+   return 0;
+   }
}

/* set level and max in panel struct */
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 0/5] drm/i915: Fix backlight regression caused by misconfigured VBT

2014-06-27 Thread Scot Doyle

commit c675949ec58ca50d5a3ae3c757892f1560f6e896
drm/i915: do not setup backlight if not available according to VBT

caused a regression on machines with a misconfigured VBT. Add a quirk to 
assert the presence of a controllable backlight, overriding the VBT. Then 
apply this quirk to four Haswell-based Chromebook laptops.


Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79813
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx