drm/i915: restore QUIRK_NO_PCH_PWM_ENABLE
cover drm/i915: restore QUIRK_NO_PCH_PWM_ENABLE
Stable team -
I'd like to hear your opinions on this one. It reverts a commit that regressed in 3.14, but the revert does not exist upstream. Instead we've root caused the issue and provided a real fix for upstream, but we're hesitant to backport that to stable. Functionally the effect of the revert is similar to the real fix, but only impacts a few models, while the real fix has much broader scope. See the commit message for details.
Romain, Kamal, I'd appreciate it if you could provide your tested-by with this on top of 3.14.2 on the failing Dell XPS models. Thanks.
BR,
Jani.
Jani Nikula (1):
drm/i915: restore QUIRK_NO_PCH_PWM_ENABLE
drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_display.c | 16 ++++++++++++++++ drivers/gpu/drm/i915/intel_panel.c | 4 ++++ 3 files changed, 21 insertions(+)
Signature · 1 line
1.9.1
PATCH 1/1 drm/i915: restore QUIRK_NO_PCH_PWM_ENABLE
This reverts the bisected regressing
commit bc0bb9fd1c7810407ab810d204bbaecb255fddde
Author: Jani Nikula <[email protected]> Date: Thu Nov 14 12:14:29 2013 +0200
drm/i915: remove QUIRK_NO_PCH_PWM_ENABLE
restoring QUIRK_NO_PCH_PWM_ENABLE for a couple of Dell XPS models which broke in 3.14.
There is no such revert upstream. We have root caused and fixed the issue upstream, without the quirk, with:
commit 39fbc9c8f6765959b55e0b127dd5c57df5a47d67
Author: Jani Nikula <[email protected]> Date: Wed Apr 9 11:22:06 2014 +0300
drm/i915: check VBT for supported backlight type
and
commit c675949ec58ca50d5a3ae3c757892f1560f6e896
Author: Jani Nikula <[email protected]> Date: Wed Apr 9 11:31:37 2014 +0300
drm/i915: do not setup backlight if not available according to VBT
While the commits are within the stable rules otherwise, and fix more machines than just the regressed Dell XPS models, we feel backporting them to stable may be too risky. The revert is limited to the broken machines, and the impact should be effectively the same as what the upstream commits do more generally.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76276
--- drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_display.c | 16 ++++++++++++++++ drivers/gpu/drm/i915/intel_panel.c | 4 ++++ 3 files changed, 21 insertions(+)
drivers/gpu/drm/i915/i915_drv.h +1 -0
@@ -734,6 +734,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_NO_PCH_PWM_ENABLE (1<<3)struct intel_fbdev ;struct intel_fbc_work ;
drivers/gpu/drm/i915/intel_display.c +16 -0
@@ -10771,6 +10771,17 @@ static void quirk_invert_brightness(struct drm_device *dev)DRM_INFO ("applying inverted panel brightness quirk\n" ); } +/* +* Some machines (Dell XPS13) suffer broken backlight controls if +* BLM_PCH_PWM_ENABLE is set. +*/ +static void quirk_no_pcm_pwm_enable (struct drm_device *dev) +{ +struct drm_i915_private *dev_priv = dev->dev_private; + dev_priv->quirks |=QUIRK_NO_PCH_PWM_ENABLE ; +DRM_INFO ("applying no-PCH_PWM_ENABLE quirk\n" ); +} +struct intel_quirk {int device;int subsystem_vendor;
@@ -10839,6 +10850,11 @@ static struct intel_quirk intel_quirks[] = {/* Acer Aspire 4736Z */ { 0x2a42, 0x1025, 0x0260, quirk_invert_brightness }, + +/* Dell XPS13 HD Sandy Bridge */ + { 0x0116, 0x1028, 0x052e, quirk_no_pcm_pwm_enable }, +/* Dell XPS13 HD and XPS13 FHD Ivy Bridge */ + { 0x0166, 0x1028, 0x058b, quirk_no_pcm_pwm_enable }, };static void intel_init_quirks (struct drm_device *dev)
drivers/gpu/drm/i915/intel_panel.c +4 -0
@@ -671,6 +671,10 @@ static void pch_enable_backlight(struct intel_connector *connector) pch_ctl2 = panel->backlight.max <<16 ;I915_WRITE (BLC_PWM_PCH_CTL2 , pch_ctl2); +/* XXX: transitional */ +if (dev_priv->quirks &QUIRK_NO_PCH_PWM_ENABLE ) +return ; + pch_ctl1 =0 ;if (panel->backlight.active_low_pwm) pch_ctl1 |=BLM_PCH_POLARITY ;
Signature · 1 line
1.9.1
Quoted 10 lines · Jani Nikula
This reverts the bisected regressing
commit
bc0bb9fd1c7810407ab810d204bbaecb255fdddeAuthor: Jani Nikula <[email protected]> Date: Thu Nov 14 12:14:29 2013 +0200drm/i915: remove
QUIRK_NO_PCH_PWM_ENABLErestoring
QUIRK_NO_PCH_PWM_ENABLEfor a couple of Dell XPS models which broke in 3.14.
I've been running with this revert since v3.14-rc (and now v3.14.2), so:
Quoted 34 lines · Jani Nikula
This reverts the bisected regressing
commit
bc0bb9fd1c7810407ab810d204bbaecb255fdddeAuthor: Jani Nikula <[email protected]> Date: Thu Nov 14 12:14:29 2013 +0200drm/i915: remove
QUIRK_NO_PCH_PWM_ENABLErestoring
QUIRK_NO_PCH_PWM_ENABLEfor a couple of Dell XPS models which broke in 3.14.There is no such revert upstream. We have root caused and fixed the issue upstream, without the quirk, with:
commit
39fbc9c8f6765959b55e0b127dd5c57df5a47d67Author: Jani Nikula <[email protected]> Date: Wed Apr 9 11:22:06 2014 +0300drm/i915: check VBT for supported backlight type
and
commit
c675949ec58ca50d5a3ae3c757892f1560f6e896Author: Jani Nikula <[email protected]> Date: Wed Apr 9 11:31:37 2014 +0300drm/i915: do not setup backlight if not available according to VBT
While the commits are within the stable rules otherwise, and fix more machines than just the regressed Dell XPS models, we feel backporting them to stable may be too risky. The revert is limited to the broken machines, and the impact should be effectively the same as what the upstream commits do more generally.
Quoted 6 lines
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76276
Reported-by Romain Francoise <[email protected]>CC Kamal Mostafa <[email protected]>CC Daniel Vetter <[email protected]>CC [email protected] (3.14 only)Signed-off-by Jani Nikula <[email protected]>
Ack from my side since the VBT-based fix we have in 3.15 really is a bit too risky for backporting and should get the full -rc cycle for testing. But we just can't let existing users on affected hw hang in there for 2 months.
-Daniel
Quoted 70 lines
--- drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_display.c | 16 ++++++++++++++++ drivers/gpu/drm/i915/intel_panel.c | 4 ++++ 3 files changed, 21 insertions(+)drivers/gpu/drm/i915/i915_drv.h +1
-0@@ -734,6 +734,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_NO_PCH_PWM_ENABLE (1<<3)struct intel_fbdev ;struct intel_fbc_work ;drivers/gpu/drm/i915/intel_display.c +16
-0@@ -10771,6 +10771,17 @@ static void quirk_invert_brightness(struct drm_device *dev)DRM_INFO ("applying inverted panel brightness quirk\n" ); } +/* +* Some machines (Dell XPS13) suffer broken backlight controls if +* BLM_PCH_PWM_ENABLE is set. +*/ +static void quirk_no_pcm_pwm_enable (struct drm_device *dev) +{ +struct drm_i915_private *dev_priv = dev->dev_private; + dev_priv->quirks |=QUIRK_NO_PCH_PWM_ENABLE ; +DRM_INFO ("applying no-PCH_PWM_ENABLE quirk\n" ); +} +struct intel_quirk {int device;int subsystem_vendor;@@ -10839,6 +10850,11 @@ static struct intel_quirk intel_quirks[] = {/* Acer Aspire 4736Z */ { 0x2a42, 0x1025, 0x0260, quirk_invert_brightness }, + +/* Dell XPS13 HD Sandy Bridge */ + { 0x0116, 0x1028, 0x052e, quirk_no_pcm_pwm_enable }, +/* Dell XPS13 HD and XPS13 FHD Ivy Bridge */ + { 0x0166, 0x1028, 0x058b, quirk_no_pcm_pwm_enable }, };static void intel_init_quirks (struct drm_device *dev)drivers/gpu/drm/i915/intel_panel.c +4
-0@@ -671,6 +671,10 @@ static void pch_enable_backlight(struct intel_connector *connector) pch_ctl2 = panel->backlight.max <<16 ;I915_WRITE (BLC_PWM_PCH_CTL2 , pch_ctl2); +/* XXX: transitional */ +if (dev_priv->quirks &QUIRK_NO_PCH_PWM_ENABLE ) +return ; + pch_ctl1 =0 ;if (panel->backlight.active_low_pwm) pch_ctl1 |=BLM_PCH_POLARITY ;Signature · 1 line
1.9.1
Signature · 3 lines
Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch
Greg, ping? Can we go with this?
Quoted 127 lines · Daniel Vetter
Quoted 34 lines · Jani Nikula
This reverts the bisected regressing
commit
bc0bb9fd1c7810407ab810d204bbaecb255fdddeAuthor: Jani Nikula <[email protected]> Date: Thu Nov 14 12:14:29 2013 +0200drm/i915: remove
QUIRK_NO_PCH_PWM_ENABLErestoring
QUIRK_NO_PCH_PWM_ENABLEfor a couple of Dell XPS models which broke in 3.14.There is no such revert upstream. We have root caused and fixed the issue upstream, without the quirk, with:
commit
39fbc9c8f6765959b55e0b127dd5c57df5a47d67Author: Jani Nikula <[email protected]> Date: Wed Apr 9 11:22:06 2014 +0300drm/i915: check VBT for supported backlight type
and
commit
c675949ec58ca50d5a3ae3c757892f1560f6e896Author: Jani Nikula <[email protected]> Date: Wed Apr 9 11:31:37 2014 +0300drm/i915: do not setup backlight if not available according to VBT
While the commits are within the stable rules otherwise, and fix more machines than just the regressed Dell XPS models, we feel backporting them to stable may be too risky. The revert is limited to the broken machines, and the impact should be effectively the same as what the upstream commits do more generally.
Quoted 6 lines
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76276
Reported-by Romain Francoise <[email protected]>CC Kamal Mostafa <[email protected]>CC Daniel Vetter <[email protected]>CC [email protected] (3.14 only)Signed-off-by Jani Nikula <[email protected]>Ack from my side since the VBT-based fix we have in 3.15 really is a bit too risky for backporting and should get the full -rc cycle for testing. But we just can't let existing users on affected hw hang in there for 2 months.
-DanielQuoted 70 lines
--- drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_display.c | 16 ++++++++++++++++ drivers/gpu/drm/i915/intel_panel.c | 4 ++++ 3 files changed, 21 insertions(+)drivers/gpu/drm/i915/i915_drv.h +1
-0@@ -734,6 +734,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_NO_PCH_PWM_ENABLE (1<<3)struct intel_fbdev ;struct intel_fbc_work ;drivers/gpu/drm/i915/intel_display.c +16
-0@@ -10771,6 +10771,17 @@ static void quirk_invert_brightness(struct drm_device *dev)DRM_INFO ("applying inverted panel brightness quirk\n" ); } +/* +* Some machines (Dell XPS13) suffer broken backlight controls if +* BLM_PCH_PWM_ENABLE is set. +*/ +static void quirk_no_pcm_pwm_enable (struct drm_device *dev) +{ +struct drm_i915_private *dev_priv = dev->dev_private; + dev_priv->quirks |=QUIRK_NO_PCH_PWM_ENABLE ; +DRM_INFO ("applying no-PCH_PWM_ENABLE quirk\n" ); +} +struct intel_quirk {int device;int subsystem_vendor;@@ -10839,6 +10850,11 @@ static struct intel_quirk intel_quirks[] = {/* Acer Aspire 4736Z */ { 0x2a42, 0x1025, 0x0260, quirk_invert_brightness }, + +/* Dell XPS13 HD Sandy Bridge */ + { 0x0116, 0x1028, 0x052e, quirk_no_pcm_pwm_enable }, +/* Dell XPS13 HD and XPS13 FHD Ivy Bridge */ + { 0x0166, 0x1028, 0x058b, quirk_no_pcm_pwm_enable }, };static void intel_init_quirks (struct drm_device *dev)drivers/gpu/drm/i915/intel_panel.c +4
-0@@ -671,6 +671,10 @@ static void pch_enable_backlight(struct intel_connector *connector) pch_ctl2 = panel->backlight.max <<16 ;I915_WRITE (BLC_PWM_PCH_CTL2 , pch_ctl2); +/* XXX: transitional */ +if (dev_priv->quirks &QUIRK_NO_PCH_PWM_ENABLE ) +return ; + pch_ctl1 =0 ;if (panel->backlight.active_low_pwm) pch_ctl1 |=BLM_PCH_POLARITY ;Signature · 1 line
1.9.1Signature · 7 lines
Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Signature · 1 line
Jani Nikula, Intel Open Source Technology Center
Quoted 2 lines · Jani Nikula
Greg, ping? Can we go with this?
I still have over 700 emails pending for the stable releases, I'm working my way through the patches that were sent to me the "simple" way (i.e. through the cc: tag on them), before I get to the rest. And at the same time, traveling a ton. So give me a chance to catch up.
Don't worry, it's not lost, just behind a bunch of other stuff.
greg k-h
Quoted 10 lines · Jani Nikula
This reverts the bisected regressing
commit
bc0bb9fd1c7810407ab810d204bbaecb255fdddeAuthor: Jani Nikula <[email protected]> Date: Thu Nov 14 12:14:29 2013 +0200drm/i915: remove
QUIRK_NO_PCH_PWM_ENABLErestoring
QUIRK_NO_PCH_PWM_ENABLEfor a couple of Dell XPS models which broke in 3.14.
Confirmed: This patch (restore QUIRK_NO_PCH_PWM_ENABLE) on top of 3.14.2 does fix it again for the two affected models.
Thanks, Jani!
-Kamal
Quoted 96 lines
There is no such revert upstream. We have root caused and fixed the issue upstream, without the quirk, with:
commit
39fbc9c8f6765959b55e0b127dd5c57df5a47d67Author: Jani Nikula <[email protected]> Date: Wed Apr 9 11:22:06 2014 +0300drm/i915: check VBT for supported backlight type
and
commit
c675949ec58ca50d5a3ae3c757892f1560f6e896Author: Jani Nikula <[email protected]> Date: Wed Apr 9 11:31:37 2014 +0300drm/i915: do not setup backlight if not available according to VBT
While the commits are within the stable rules otherwise, and fix more machines than just the regressed Dell XPS models, we feel backporting them to stable may be too risky. The revert is limited to the broken machines, and the impact should be effectively the same as what the upstream commits do more generally.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76276
Reported-by Romain Francoise <[email protected]>CC Kamal Mostafa <[email protected]>CC Daniel Vetter <[email protected]>CC [email protected] (3.14 only)Signed-off-by Jani Nikula <[email protected]>--- drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_display.c | 16 ++++++++++++++++ drivers/gpu/drm/i915/intel_panel.c | 4 ++++ 3 files changed, 21 insertions(+)drivers/gpu/drm/i915/i915_drv.h +1
-0@@ -734,6 +734,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_NO_PCH_PWM_ENABLE (1<<3)struct intel_fbdev ;struct intel_fbc_work ;drivers/gpu/drm/i915/intel_display.c +16
-0@@ -10771,6 +10771,17 @@ static void quirk_invert_brightness(struct drm_device *dev)DRM_INFO ("applying inverted panel brightness quirk\n" ); } +/* +* Some machines (Dell XPS13) suffer broken backlight controls if +* BLM_PCH_PWM_ENABLE is set. +*/ +static void quirk_no_pcm_pwm_enable (struct drm_device *dev) +{ +struct drm_i915_private *dev_priv = dev->dev_private; + dev_priv->quirks |=QUIRK_NO_PCH_PWM_ENABLE ; +DRM_INFO ("applying no-PCH_PWM_ENABLE quirk\n" ); +} +struct intel_quirk {int device;int subsystem_vendor;@@ -10839,6 +10850,11 @@ static struct intel_quirk intel_quirks[] = {/* Acer Aspire 4736Z */ { 0x2a42, 0x1025, 0x0260, quirk_invert_brightness }, + +/* Dell XPS13 HD Sandy Bridge */ + { 0x0116, 0x1028, 0x052e, quirk_no_pcm_pwm_enable }, +/* Dell XPS13 HD and XPS13 FHD Ivy Bridge */ + { 0x0166, 0x1028, 0x058b, quirk_no_pcm_pwm_enable }, };static void intel_init_quirks (struct drm_device *dev)drivers/gpu/drm/i915/intel_panel.c +4
-0@@ -671,6 +671,10 @@ static void pch_enable_backlight(struct intel_connector *connector) pch_ctl2 = panel->backlight.max <<16 ;I915_WRITE (BLC_PWM_PCH_CTL2 , pch_ctl2); +/* XXX: transitional */ +if (dev_priv->quirks &QUIRK_NO_PCH_PWM_ENABLE ) +return ; + pch_ctl1 =0 ;if (panel->backlight.active_low_pwm) pch_ctl1 |=BLM_PCH_POLARITY ;