From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v2 2/2] drm/i915/backlight: setup backlight pwm alternate increment on backlight enable Date: Mon, 19 Sep 2016 11:32:17 +0300 Message-ID: <87mvj4nvce.fsf@intel.com> References: <1474273390-31621-1-git-send-email-jani.nikula@intel.com> <1474273457-31680-1-git-send-email-jani.nikula@intel.com> <1474273457-31680-2-git-send-email-jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id EB07B6E2D2 for ; Mon, 19 Sep 2016 08:32:20 +0000 (UTC) In-Reply-To: <1474273457-31680-2-git-send-email-jani.nikula@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Cooper Chiou , stable@vger.kernel.org, Wei Shun Chen List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAxOSBTZXAgMjAxNiwgSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4g d3JvdGU6Cj4gRnJvbTogU2hhd24gTGVlIDxzaGF3bi5jLmxlZUBpbnRlbC5jb20+Cj4KPiBCYWNr bGlnaHQgZW5hYmxlIGlzIHN1cHBvc2VkIHRvIGRvIGEgZnVsbCBzZXR1cCBvZiB0aGUgYmFja2xp Z2h0LiBXZQo+IHdlcmUgbWlzc2luZyB0aGUgUFdNIGFsdGVybmF0ZSBpbmNyZW1lbnQgYml0IGlu IHRoZSBzb3V0aCBjaGlja2VuCj4gcmVnaXN0ZXJzIG9uIGxwdCsgcGNoLiBUaGlzIHBvdGVudGlh bGx5IGNhdXNlZCBhIFBXTSBmcmVxdWVuY3kgY2hhbmdlCj4gd2hlbiB0aGUgY2hpY2tlbiByZWdp c3RlciB2YWx1ZSB3YXMgbG9zdCBlLmcuIG9uIHN1c3BlbmQuCj4KPiB2MiBieSBKYW5pLCByZWJh c2Ugb24gdGhlIHBhdGNoIGNhY2hpbmcgYWx0IGluY3JlbWVudAo+Cj4gQnVnemlsbGE6IGh0dHBz Oi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDg2CgpUaGVyZSdzIGEg Z29vZCBjaGFuY2UgdGhpcydsbCBhbHNvIGZpeCBhIGJ1ZyBsb25nIGFnbyBkZWVtZWQKTk9UT1VS QlVHLi4uCgpCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5j Z2k/aWQ9Njc0NTQKCj4gQ2M6IENvb3BlciBDaGlvdSA8Y29vcGVyLmNoaW91QGludGVsLmNvbT4K PiBDYzogV2VpIFNodW4gQ2hlbiA8d2VpLnNodW4uY2hhbmdAaW50ZWwuY29tPgo+IENjOiBHYXJ5 IEMgV2FuZyA8Z2FyeS5jLndhbmdAaW50ZWwuY29tPgo+IENjOiBzdGFibGVAdmdlci5rZXJuZWwu b3JnCj4gU2lnbmVkLW9mZi1ieTogU2hhd24gTGVlIDxzaGF3bi5jLmxlZUBpbnRlbC5jb20+Cj4g U2lnbmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPiAtLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyB8IDE4ICsrKysrKysrKysrKysr KysrLQo+ICAxIGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gaW5kZXggOGJjNDMyMDVkNmEwLi5iZTRi NGQ1NDZmZDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPiBAQCAtODQxLDcg Kzg0MSw3IEBAIHN0YXRpYyB2b2lkIGxwdF9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9w YW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKPiAtCXUzMiBwY2hfY3RsMSwgcGNoX2N0 bDI7Cj4gKwl1MzIgcGNoX2N0bDEsIHBjaF9jdGwyLCBzY2hpY2tlbjsKPiAgCj4gIAlwY2hfY3Rs MSA9IEk5MTVfUkVBRChCTENfUFdNX1BDSF9DVEwxKTsKPiAgCWlmIChwY2hfY3RsMSAmIEJMTV9Q Q0hfUFdNX0VOQUJMRSkgewo+IEBAIC04NTAsNiArODUwLDIyIEBAIHN0YXRpYyB2b2lkIGxwdF9l bmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCQlJ OTE1X1dSSVRFKEJMQ19QV01fUENIX0NUTDEsIHBjaF9jdGwxKTsKPiAgCX0KPiAgCj4gKwlpZiAo SEFTX1BDSF9MUFQoZGV2X3ByaXYpKSB7Cj4gKwkJc2NoaWNrZW4gPSBJOTE1X1JFQUQoU09VVEhf Q0hJQ0tFTjIpOwo+ICsJCWlmIChwYW5lbC0+YmFja2xpZ2h0LmFsdGVybmF0ZV9wd21faW5jcmVt ZW50KQo+ICsJCQlzY2hpY2tlbiB8PSBMUFRfUFdNX0dSQU5VTEFSSVRZOwo+ICsJCWVsc2UKPiAr CQkJc2NoaWNrZW4gJj0gfkxQVF9QV01fR1JBTlVMQVJJVFk7Cj4gKwkJSTkxNV9XUklURShTT1VU SF9DSElDS0VOMiwgc2NoaWNrZW4pOwo+ICsJfSBlbHNlIHsKPiArCQlzY2hpY2tlbiA9IEk5MTVf UkVBRChTT1VUSF9DSElDS0VOMSk7Cj4gKwkJaWYgKHBhbmVsLT5iYWNrbGlnaHQuYWx0ZXJuYXRl X3B3bV9pbmNyZW1lbnQpCj4gKwkJCXNjaGlja2VuIHw9IFNQVF9QV01fR1JBTlVMQVJJVFk7Cj4g KwkJZWxzZQo+ICsJCQlzY2hpY2tlbiAmPSB+U1BUX1BXTV9HUkFOVUxBUklUWTsKPiArCQlJOTE1 X1dSSVRFKFNPVVRIX0NISUNLRU4xLCBzY2hpY2tlbik7Cj4gKwl9Cj4gKwo+ICAJcGNoX2N0bDIg PSBwYW5lbC0+YmFja2xpZ2h0Lm1heCA8PCAxNjsKPiAgCUk5MTVfV1JJVEUoQkxDX1BXTV9QQ0hf Q1RMMiwgcGNoX2N0bDIpOwoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNo bm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com ([134.134.136.20]:38892 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754805AbcISIcb (ORCPT ); Mon, 19 Sep 2016 04:32:31 -0400 From: Jani Nikula To: intel-gfx@lists.freedesktop.org Cc: Shawn Lee , Cooper Chiou , Wei Shun Chen , Gary C Wang , stable@vger.kernel.org Subject: Re: [PATCH v2 2/2] drm/i915/backlight: setup backlight pwm alternate increment on backlight enable In-Reply-To: <1474273457-31680-2-git-send-email-jani.nikula@intel.com> References: <1474273390-31621-1-git-send-email-jani.nikula@intel.com> <1474273457-31680-1-git-send-email-jani.nikula@intel.com> <1474273457-31680-2-git-send-email-jani.nikula@intel.com> Date: Mon, 19 Sep 2016 11:32:17 +0300 Message-ID: <87mvj4nvce.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain Sender: stable-owner@vger.kernel.org List-ID: On Mon, 19 Sep 2016, Jani Nikula wrote: > From: Shawn Lee > > Backlight enable is supposed to do a full setup of the backlight. We > were missing the PWM alternate increment bit in the south chicken > registers on lpt+ pch. This potentially caused a PWM frequency change > when the chicken register value was lost e.g. on suspend. > > v2 by Jani, rebase on the patch caching alt increment > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97486 There's a good chance this'll also fix a bug long ago deemed NOTOURBUG... Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67454 > Cc: Cooper Chiou > Cc: Wei Shun Chen > Cc: Gary C Wang > Cc: stable@vger.kernel.org > Signed-off-by: Shawn Lee > Signed-off-by: Jani Nikula > --- > drivers/gpu/drm/i915/intel_panel.c | 18 +++++++++++++++++- > 1 file changed, 17 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c > index 8bc43205d6a0..be4b4d546fd9 100644 > --- a/drivers/gpu/drm/i915/intel_panel.c > +++ b/drivers/gpu/drm/i915/intel_panel.c > @@ -841,7 +841,7 @@ static void lpt_enable_backlight(struct intel_connector *connector) > { > struct drm_i915_private *dev_priv = to_i915(connector->base.dev); > struct intel_panel *panel = &connector->panel; > - u32 pch_ctl1, pch_ctl2; > + u32 pch_ctl1, pch_ctl2, schicken; > > pch_ctl1 = I915_READ(BLC_PWM_PCH_CTL1); > if (pch_ctl1 & BLM_PCH_PWM_ENABLE) { > @@ -850,6 +850,22 @@ static void lpt_enable_backlight(struct intel_connector *connector) > I915_WRITE(BLC_PWM_PCH_CTL1, pch_ctl1); > } > > + if (HAS_PCH_LPT(dev_priv)) { > + schicken = I915_READ(SOUTH_CHICKEN2); > + if (panel->backlight.alternate_pwm_increment) > + schicken |= LPT_PWM_GRANULARITY; > + else > + schicken &= ~LPT_PWM_GRANULARITY; > + I915_WRITE(SOUTH_CHICKEN2, schicken); > + } else { > + schicken = I915_READ(SOUTH_CHICKEN1); > + if (panel->backlight.alternate_pwm_increment) > + schicken |= SPT_PWM_GRANULARITY; > + else > + schicken &= ~SPT_PWM_GRANULARITY; > + I915_WRITE(SOUTH_CHICKEN1, schicken); > + } > + > pch_ctl2 = panel->backlight.max << 16; > I915_WRITE(BLC_PWM_PCH_CTL2, pch_ctl2); -- Jani Nikula, Intel Open Source Technology Center