From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jingoo Han" Date: Tue, 25 Oct 2016 22:47:00 +0000 Subject: Re: [PATCH] video: backlight: pwm_bl: Initialize fb_bl_on[x] and use_count during pwm_backlight_prob Message-Id: <000d01d22f11$b333ed80$199bc880$@gmail.com> List-Id: References: <1477169904-14997-1-git-send-email-l.majewski@majess.pl> <000201d22d9f$22acb6c0$68062440$@gmail.com> <20161024230041.41959e5e@jawa> In-Reply-To: <20161024230041.41959e5e@jawa> MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1254" Content-Transfer-Encoding: base64 To: 'Lukasz Majewski' Cc: 'Thierry Reding' , 'Lee Jones' , 'Jean-Christophe Plagniol-Villard' , 'Tomi Valkeinen' , linux-pwm@vger.kernel.org, linux-fbdev@vger.kernel.org, linux-kernel@vger.kernel.org, 'Fabio Estevam' , 'Fabio Estevam' , 'Liu Ying' T24gTW9uZGF5LCBPY3RvYmVyIDI0LCAyMDE2LCBMdWthc3ogTWFqZXdza2kgd3JvdGU6Cj4gCj4g SGkgSmluZ29vLAo+IAo+ID4gT24gU2F0dXJkYXksIE9jdG9iZXIgMjIsIDIwMTYsIEx1a2FzeiBN YWpld3NraSB3cm90ZToKPiA+ID4KPiA+ID4gVGhlIGNvbW1pdDogYTU1OTQ0Y2E4MmQyODdjYTA5 OWNhOTA0MTNhZjg1N2FmOTA4Njc3MyBoYXMgcG9zZWQgc29tZQo+ID4gPiBleHRyYQoKUGxlYXNl IGFkZCB0aGUgJ3N1YmplY3QnIG9mIHBhdGNoIGFzIGJlbG93LgoKVGhlIGNvbW1pdCBhNTU5NDRj YTgyZDIgKCJiYWNrbGlnaHQ6IHVwZGF0ZSBiZCBzdGF0ZSAmIGZiX2JsYW5rIHByb3BlcnRpZXMg d2hlbiBuZWNlc3NhcnkgIikKaGFzIHBvc3RlZCBzb21lIGV4dHJhLgoKQmVzdCByZWdhcmRzLApK aW5nb28gSGFuCgoKPiA+Cj4gPiBQbGVhc2UgYWRkIHRoZSBzdWJqZWN0IG9mIHRoZSBwYXRjaCwg aW4gb3JkZXIgdG8gbGV0IHBlb3BsZSBrbm93Cj4gPiB3aGljaCBwYXRjaCB5b3UgbWVudGlvbiBl eGFjdGx5LiBQbGVhc2UgbG9vdCBhdCBvdGhlciBjb21taXRzIHRoYXQKPiA+IGZpeGVkIGJ1Z3Mg b3IgYmVoYXZpb3IKPiA+IG9mIG90aGVyIHBhdGNoZXMuCj4gCj4gVGhhbmtzIGZvciB0aGUgdGlw Lgo+IAo+IFRoZSBtZW50aW9uZWQgcGF0Y2g6Cj4gCj4gY29tbWl0IGE1NTk0NGNhODJkMjg3Y2Ew OTljYTkwNDEzYWY4NTdhZjkwODY3NzMKPiBBdXRob3I6IExpdSBZaW5nIDxZaW5nLkxpdUBmcmVl c2NhbGUuY29tPgo+IERhdGU6ICAgVGh1IEFwciAzIDE0OjQ4OjU0IDIwMTQgLTA3MDAKPiAKPiAg ICAgYmFja2xpZ2h0OiB1cGRhdGUgYmQgc3RhdGUgJiBmYl9ibGFuayBwcm9wZXJ0aWVzIHdoZW4g bmVjZXNzYXJ5Cj4gCj4gICAgIFdlIGRvbid0IGhhdmUgdG8gdXBkYXRlIHRoZSBzdGF0ZSBhbmQg ZmJfYmxhbmsgcHJvcGVydGllcyBvZiBhCj4gYmFja2xpZ2h0Cj4gICAgIGRldmljZSBldmVyeSB0 aW1lIGEgYmxhbmtpbmcgb3IgdW5ibGFua2luZyBldmVudCBjb21lcyBiZWNhdXNlIHRoZXkKPiBt YXkKPiAgICAgaGF2ZSBhbHJlYWR5IGJlZW4gd2hhdCB3ZSB3YW50LiAgQW5vdGhlciB0aG91Z2h0 IGlzIHRoYXQgb25lIGJhY2tsaWdodAo+ICAgICBkZXZpY2UgbWF5IGJlIHNoYXJlZCBieSBtdWx0 aXBsZSBmcmFtZWJ1ZmZlcnMuICBUaGUgYmFja2xpZ2h0IGRyaXZlcgo+ICAgICBzaG91bGQgdGFr ZSB0aGUgYmFja2xpZ2h0IGRldmljZSBhcyBhIHJlc291cmNlIHNoYXJlZCBieSBhbGwgdGhlCj4g ICAgIGFzc29jaWF0ZWQgZnJhbWVidWZmZXJzLgo+IAo+ICAgICBUaGlzIHBhdGNoIGFkZHMgc29t ZSBsb2dpYyB0byByZWNvcmQgZWFjaCBmcmFtZWJ1ZmZlcidzIGJhY2tsaWdodAo+IHVzYWdlCj4g ICAgIHRvIGRldGVybWluZSB0aGUgYmFja2xpZ2h0IGRldmljZSB1c2UgY291bnQgYW5kIHdoZXRo ZXIgdGhlIHR3bwo+ICAgICBwcm9wZXJ0aWVzIHNob3VsZCBiZSB1cGRhdGVkIG9yIG5vdC4gIFRv IGJlIG1vcmUgc3BlY2lmaWMsIG9ubHkgb25lCj4gICAgIHVuYmxhbmsgb3BlcmF0aW9uIG9uIGEg Y2VydGFpbiBibGFua2VkIGZyYW1lYnVmZmVyIG1heSBpbmNyZWFzZSB0aGUKPiAgICAgYmFja2xp Z2h0IGRldmljZSdzIHVzZSBjb3VudCBieSBvbmUsIHdoaWxlIG9uZSBibGFuayBvcGVyYXRpb24g b24gYQo+ICAgICBjZXJ0YWluIHVuYmxhbmtlZCBmcmFtZWJ1ZmZlciBtYXkgZGVjcmVhc2UgdGhl IHVzZSBjb3VudCBieSBvbmUsCj4gYmVjYXVzZQo+ICAgICB0aGUgdXNlcnNwYWNlIGlzIGxpa2Vs eSB0byB1bmJsYW5rIGFuIHVuYmxhbmtlZCBmcmFtZWJ1ZmZlciBvciBibGFuayBhCj4gICAgIGJs YW5rZWQgZnJhbWVidWZmZXIuCj4gCj4gCj4gQ291bGQgeW91IHByb3ZpZGUgbW9yZSBmZWVkYmFj ayByZWdhcmRpbmcgcHJvdmlkZWQgZml4Pwo+IAo+IFRoYW5rcyBpbiBhZHZhbmNlLAo+IAo+IMWB dWthc3ogTWFqZXdza2kKPiAKPiA+Cj4gPiA+IHJlc3RyaWN0aW9ucyBvbiBibGFua2luZyBhbmQg dW5ibGFua2luZyBmcmFtZSBidWZmZXIgZGV2aWNlLgo+ID4gPgo+ID4gPiBVbmZvcnR1bmF0ZWx5 LCBwd21fYmwgZHJpdmVyJ3MgcHJvYmUgZGlkIG5vdCBpbml0aWFsaXplIG1lbWJlcnMgb2YKPiA+ ID4gc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgbmVjZXNzYXJ5IGZvciBmdXJ0aGVyIGJsYW5rL3Vu YmxhbmsKPiA+ID4gb3BlcmF0aW9uLgo+ID4gPgo+ID4gPiBUaGlzIGNvZGUgaW4gY2FzZSBvZiBp bml0aWFsIHVuYmxhbmsgb2YgYmFja2xpZ2h0IGRldmljZSAoZGVmYXVsdAo+ID4gPiBiZWhhdmlv dXIpIHNldHMgdXNlX2NvdW50IHRvIDEgYW5kIG1hcmtzIHRoaXMgcGFydGljdWxhciBiYWNrbGln aHQKPiA+ID4gZGV2aWNlIGFzIHVzZWQgYnkgYWxsIGF2YWlsYWJsZSBmYiBkZXZpY2VzIChzaW5j ZSBpdCBpcyBub3Qga25vd24KPiA+ID4gZHVyaW5nIHByb2JlIGhvdyBtdWNoIGFuZCB3aGljaCBm YiBkZXZpY2VzIHdpbGwgYmUgYXNzaWduZWQpLgo+ID4gPgo+ID4gPiBXaXRob3V0IHRoaXMgY29k ZSwgdGhlIGJhY2tsaWdodCB3b3JrcyBwcm9wZXJseSB1bnRpbCBvbmUgdHJpZXMgdG8KPiA+ID4g YmxhbmsgaXQgbWFudWFsbHkgZnJvbSBzeXNmcyB3aXRoICJlY2hvIDEKPiA+ID4gPiAvc3lzL2Ns YXNzL2dyYXBoaWNzL2ZiMC9ibGFuayIuIFNpbmNlIGZiX2JsX29uWzBdIGFuZCB1c2VfY291bnQK PiA+ID4gPiB3ZXJlIGJvdGggc2V0IHRvIDAsIHRoZSBsb2dpYyBhdAo+ID4gPiBmYl9ub3RpZmll cl9jYWxsYmFjayAoQGJhY2tsaWdodC5jKSB0aG91Z2h0IHRoYXQgd2UgZGlkbid0IHR1cm4gb24K PiA+ID4gKHVuYmxhbmtlZCkgdGhlIGJhY2tsaWdodCBkZXZpY2UgYW5kIHJlZnVzZXMgdG8gZGlz YWJsZSAoYmxhbmspIGl0Lgo+ID4gPiBBcyBhIHJlc3VsdCB3ZSBzZWUgZ2FyYmFnZSBmcm9tIGZi IGRpc3BsYXllZC4KPiA+ID4KPiA+ID4KPiA+ID4gU2lnbmVkLW9mZi1ieTogTHVrYXN6IE1hamV3 c2tpIDxsLm1hamV3c2tpQG1hamVzcy5wbD4KPiA+ID4gLS0tCj4gPiA+IFRoZSBwYXRjaCBoYXMg YmVlbiB0ZXN0ZWQgb24gaS5NWDZxIHdpdGggdmFuaWxsYSA0LjcgYW5kIDQuOAo+ID4gPiBrZXJu ZWxzLiBJdCBhcHBsaWVzIG9uIDQuOS1yY1ggU0hBMToKPiA+ID4gZGNkNDY5M2NmNDc4MDFiN2Q5 ODhlYTg5NzUxOWRlOTBkZmQyNWQxNy4KPiA+ID4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL3Zp ZGVvL2JhY2tsaWdodC9wd21fYmwuYyB8IDEwICsrKysrKysrKy0KPiA+ID4gIDEgZmlsZSBjaGFu Z2VkLCA5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiA+ID4KPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L3B3bV9ibC5jCj4gPiA+IGIvZHJpdmVycy92aWRl by9iYWNrbGlnaHQvcHdtX2JsLmMKPiA+ID4gaW5kZXggODA0MGZkNi4uZGVmMzllOCAxMDA2NDQK PiA+ID4gLS0tIGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvcHdtX2JsLmMKPiA+ID4gKysrIGIv ZHJpdmVycy92aWRlby9iYWNrbGlnaHQvcHdtX2JsLmMKPiA+ID4gQEAgLTIwMyw3ICsyMDMsNyBA QCBzdGF0aWMgaW50IHB3bV9iYWNrbGlnaHRfcHJvYmUoc3RydWN0Cj4gPiA+IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKPiA+ID4gIAlzdHJ1Y3QgcHdtX2JsX2RhdGEgKnBiOwo+ID4gPiAgCWludCBp bml0aWFsX2JsYW5rID0gRkJfQkxBTktfVU5CTEFOSzsKPiA+ID4gIAlzdHJ1Y3QgcHdtX2FyZ3Mg cGFyZ3M7Cj4gPiA+IC0JaW50IHJldDsKPiA+ID4gKwlpbnQgcmV0LCBpOwo+ID4gPgo+ID4gPiAg CWlmICghZGF0YSkgewo+ID4gPiAgCQlyZXQgPSBwd21fYmFja2xpZ2h0X3BhcnNlX2R0KCZwZGV2 LT5kZXYsCj4gPiA+ICZkZWZkYXRhKTsgQEAgLSAzNDksNiArMzQ5LDE0IEBAIHN0YXRpYyBpbnQK PiA+ID4gcHdtX2JhY2tsaWdodF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ ID4gPgo+ID4gPiAgCWJsLT5wcm9wcy5icmlnaHRuZXNzID0gZGF0YS0+ZGZ0X2JyaWdodG5lc3M7 Cj4gPiA+ICAJYmwtPnByb3BzLnBvd2VyID0gaW5pdGlhbF9ibGFuazsKPiA+ID4gKwo+ID4gPiAr CWlmIChpbml0aWFsX2JsYW5rID09IEZCX0JMQU5LX1VOQkxBTkspIHsKPiA+ID4gKwkJZm9yIChp ID0gMDsgaSA8IEZCX01BWDsgaSsrKQo+ID4gPiArCQkJYmwtPmZiX2JsX29uW2ldID0gdHJ1ZTsK PiA+ID4gKwo+ID4gPiArCQlibC0+dXNlX2NvdW50ID0gMTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ ID4gIAliYWNrbGlnaHRfdXBkYXRlX3N0YXR1cyhibCk7Cj4gPiA+Cj4gPiA+ICAJcGxhdGZvcm1f c2V0X2RydmRhdGEocGRldiwgYmwpOwo+ID4gPiAtLQo+ID4gPiAyLjEuNAo+ID4KPiA+CgoKLS0K VG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJl IGxpbnV4LWZiZGV2IiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIu a2VybmVsLm9yZwpNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3Jn L21ham9yZG9tby1pbmZvLmh0bWw= From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jingoo Han" Subject: Re: [PATCH] video: backlight: pwm_bl: Initialize fb_bl_on[x] and use_count during pwm_backlight_probe() Date: Tue, 25 Oct 2016 18:47:00 -0400 Message-ID: <000d01d22f11$b333ed80$199bc880$@gmail.com> References: <1477169904-14997-1-git-send-email-l.majewski@majess.pl> <000201d22d9f$22acb6c0$68062440$@gmail.com> <20161024230041.41959e5e@jawa> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mail-qk0-f193.google.com ([209.85.220.193]:35311 "EHLO mail-qk0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751576AbcJYWrD (ORCPT ); Tue, 25 Oct 2016 18:47:03 -0400 In-Reply-To: <20161024230041.41959e5e@jawa> Content-Language: ko Sender: linux-pwm-owner@vger.kernel.org List-Id: linux-pwm@vger.kernel.org To: 'Lukasz Majewski' Cc: 'Thierry Reding' , 'Lee Jones' , 'Jean-Christophe Plagniol-Villard' , 'Tomi Valkeinen' , linux-pwm@vger.kernel.org, linux-fbdev@vger.kernel.org, linux-kernel@vger.kernel.org, 'Fabio Estevam' , 'Fabio Estevam' , 'Liu Ying' On Monday, October 24, 2016, Lukasz Majewski wrote: >=20 > Hi Jingoo, >=20 > > On Saturday, October 22, 2016, Lukasz Majewski wrote: > > > > > > The commit: a55944ca82d287ca099ca90413af857af9086773 has posed = some > > > extra Please add the 'subject' of patch as below. The commit a55944ca82d2 ("backlight: update bd state & fb_blank = properties when necessary ") has posted some extra. Best regards, Jingoo Han > > > > Please add the subject of the patch, in order to let people know > > which patch you mention exactly. Please loot at other commits that > > fixed bugs or behavior > > of other patches. >=20 > Thanks for the tip. >=20 > The mentioned patch: >=20 > commit a55944ca82d287ca099ca90413af857af9086773 > Author: Liu Ying > Date: Thu Apr 3 14:48:54 2014 -0700 >=20 > backlight: update bd state & fb_blank properties when necessary >=20 > We don't have to update the state and fb_blank properties of a > backlight > device every time a blanking or unblanking event comes because = they > may > have already been what we want. Another thought is that one = backlight > device may be shared by multiple framebuffers. The backlight = driver > should take the backlight device as a resource shared by all the > associated framebuffers. >=20 > This patch adds some logic to record each framebuffer's backlight > usage > to determine the backlight device use count and whether the two > properties should be updated or not. To be more specific, only = one > unblank operation on a certain blanked framebuffer may increase = the > backlight device's use count by one, while one blank operation on = a > certain unblanked framebuffer may decrease the use count by one, > because > the userspace is likely to unblank an unblanked framebuffer or = blank a > blanked framebuffer. >=20 >=20 > Could you provide more feedback regarding provided fix? >=20 > Thanks in advance, >=20 > =C5=81ukasz Majewski >=20 > > > > > restrictions on blanking and unblanking frame buffer device. > > > > > > Unfortunately, pwm_bl driver's probe did not initialize members of > > > struct backlight_device necessary for further blank/unblank > > > operation. > > > > > > This code in case of initial unblank of backlight device (default > > > behaviour) sets use_count to 1 and marks this particular backlight > > > device as used by all available fb devices (since it is not known > > > during probe how much and which fb devices will be assigned). > > > > > > Without this code, the backlight works properly until one tries to > > > blank it manually from sysfs with "echo 1 > > > > /sys/class/graphics/fb0/blank". Since fb_bl_on[0] and use_count > > > > were both set to 0, the logic at > > > fb_notifier_callback (@backlight.c) thought that we didn't turn on > > > (unblanked) the backlight device and refuses to disable (blank) = it. > > > As a result we see garbage from fb displayed. > > > > > > > > > Signed-off-by: Lukasz Majewski > > > --- > > > The patch has been tested on i.MX6q with vanilla 4.7 and 4.8 > > > kernels. It applies on 4.9-rcX SHA1: > > > dcd4693cf47801b7d988ea897519de90dfd25d17. > > > > > > --- > > > drivers/video/backlight/pwm_bl.c | 10 +++++++++- > > > 1 file changed, 9 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/video/backlight/pwm_bl.c > > > b/drivers/video/backlight/pwm_bl.c > > > index 8040fd6..def39e8 100644 > > > --- a/drivers/video/backlight/pwm_bl.c > > > +++ b/drivers/video/backlight/pwm_bl.c > > > @@ -203,7 +203,7 @@ static int pwm_backlight_probe(struct > > > platform_device *pdev) > > > struct pwm_bl_data *pb; > > > int initial_blank =3D FB_BLANK_UNBLANK; > > > struct pwm_args pargs; > > > - int ret; > > > + int ret, i; > > > > > > if (!data) { > > > ret =3D pwm_backlight_parse_dt(&pdev->dev, > > > &defdata); @@ - 349,6 +349,14 @@ static int > > > pwm_backlight_probe(struct platform_device *pdev) > > > > > > bl->props.brightness =3D data->dft_brightness; > > > bl->props.power =3D initial_blank; > > > + > > > + if (initial_blank =3D=3D FB_BLANK_UNBLANK) { > > > + for (i =3D 0; i < FB_MAX; i++) > > > + bl->fb_bl_on[i] =3D true; > > > + > > > + bl->use_count =3D 1; > > > + } > > > + > > > backlight_update_status(bl); > > > > > > platform_set_drvdata(pdev, bl); > > > -- > > > 2.1.4 > > > > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755398AbcJYWrG (ORCPT ); Tue, 25 Oct 2016 18:47:06 -0400 Received: from mail-qk0-f193.google.com ([209.85.220.193]:35311 "EHLO mail-qk0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751576AbcJYWrD (ORCPT ); Tue, 25 Oct 2016 18:47:03 -0400 From: "Jingoo Han" To: "'Lukasz Majewski'" Cc: "'Thierry Reding'" , "'Lee Jones'" , "'Jean-Christophe Plagniol-Villard'" , "'Tomi Valkeinen'" , , , , "'Fabio Estevam'" , "'Fabio Estevam'" , "'Liu Ying'" References: <1477169904-14997-1-git-send-email-l.majewski@majess.pl> <000201d22d9f$22acb6c0$68062440$@gmail.com> <20161024230041.41959e5e@jawa> In-Reply-To: <20161024230041.41959e5e@jawa> Subject: Re: [PATCH] video: backlight: pwm_bl: Initialize fb_bl_on[x] and use_count during pwm_backlight_probe() Date: Tue, 25 Oct 2016 18:47:00 -0400 Message-ID: <000d01d22f11$b333ed80$199bc880$@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQFuVu1LFZrUmS0lbSNwmb65HVLaMQGkNKeGAdndrZShZYQi0A== Content-Language: ko Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id u9PMlEch025866 On Monday, October 24, 2016, Lukasz Majewski wrote: > > Hi Jingoo, > > > On Saturday, October 22, 2016, Lukasz Majewski wrote: > > > > > > The commit: a55944ca82d287ca099ca90413af857af9086773 has posed some > > > extra Please add the 'subject' of patch as below. The commit a55944ca82d2 ("backlight: update bd state & fb_blank properties when necessary ") has posted some extra. Best regards, Jingoo Han > > > > Please add the subject of the patch, in order to let people know > > which patch you mention exactly. Please loot at other commits that > > fixed bugs or behavior > > of other patches. > > Thanks for the tip. > > The mentioned patch: > > commit a55944ca82d287ca099ca90413af857af9086773 > Author: Liu Ying > Date: Thu Apr 3 14:48:54 2014 -0700 > > backlight: update bd state & fb_blank properties when necessary > > We don't have to update the state and fb_blank properties of a > backlight > device every time a blanking or unblanking event comes because they > may > have already been what we want. Another thought is that one backlight > device may be shared by multiple framebuffers. The backlight driver > should take the backlight device as a resource shared by all the > associated framebuffers. > > This patch adds some logic to record each framebuffer's backlight > usage > to determine the backlight device use count and whether the two > properties should be updated or not. To be more specific, only one > unblank operation on a certain blanked framebuffer may increase the > backlight device's use count by one, while one blank operation on a > certain unblanked framebuffer may decrease the use count by one, > because > the userspace is likely to unblank an unblanked framebuffer or blank a > blanked framebuffer. > > > Could you provide more feedback regarding provided fix? > > Thanks in advance, > > Ɓukasz Majewski > > > > > > restrictions on blanking and unblanking frame buffer device. > > > > > > Unfortunately, pwm_bl driver's probe did not initialize members of > > > struct backlight_device necessary for further blank/unblank > > > operation. > > > > > > This code in case of initial unblank of backlight device (default > > > behaviour) sets use_count to 1 and marks this particular backlight > > > device as used by all available fb devices (since it is not known > > > during probe how much and which fb devices will be assigned). > > > > > > Without this code, the backlight works properly until one tries to > > > blank it manually from sysfs with "echo 1 > > > > /sys/class/graphics/fb0/blank". Since fb_bl_on[0] and use_count > > > > were both set to 0, the logic at > > > fb_notifier_callback (@backlight.c) thought that we didn't turn on > > > (unblanked) the backlight device and refuses to disable (blank) it. > > > As a result we see garbage from fb displayed. > > > > > > > > > Signed-off-by: Lukasz Majewski > > > --- > > > The patch has been tested on i.MX6q with vanilla 4.7 and 4.8 > > > kernels. It applies on 4.9-rcX SHA1: > > > dcd4693cf47801b7d988ea897519de90dfd25d17. > > > > > > --- > > > drivers/video/backlight/pwm_bl.c | 10 +++++++++- > > > 1 file changed, 9 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/video/backlight/pwm_bl.c > > > b/drivers/video/backlight/pwm_bl.c > > > index 8040fd6..def39e8 100644 > > > --- a/drivers/video/backlight/pwm_bl.c > > > +++ b/drivers/video/backlight/pwm_bl.c > > > @@ -203,7 +203,7 @@ static int pwm_backlight_probe(struct > > > platform_device *pdev) > > > struct pwm_bl_data *pb; > > > int initial_blank = FB_BLANK_UNBLANK; > > > struct pwm_args pargs; > > > - int ret; > > > + int ret, i; > > > > > > if (!data) { > > > ret = pwm_backlight_parse_dt(&pdev->dev, > > > &defdata); @@ - 349,6 +349,14 @@ static int > > > pwm_backlight_probe(struct platform_device *pdev) > > > > > > bl->props.brightness = data->dft_brightness; > > > bl->props.power = initial_blank; > > > + > > > + if (initial_blank == FB_BLANK_UNBLANK) { > > > + for (i = 0; i < FB_MAX; i++) > > > + bl->fb_bl_on[i] = true; > > > + > > > + bl->use_count = 1; > > > + } > > > + > > > backlight_update_status(bl); > > > > > > platform_set_drvdata(pdev, bl); > > > -- > > > 2.1.4 > > > >