From: Peter Ujfalusi <peter.ujfalusi@ti.com>
To: hl <hl@rock-chips.com>, Thierry Reding <thierry.reding@gmail.com>,
Jingoo Han <jg1.han@samsung.com>, Bryan Wu <cooloney@gmail.com>,
Lee Jones <lee.jones@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>, <devicetree@vger.kernel.org>,
<linux-fbdev@vger.kernel.org>,
Russell King <linux@arm.linux.org.uk>,
Brian Norris <briannorris@google.com>,
Pawel Moll <pawel.moll@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
<linux-kernel@vger.kernel.org>, Rob Herring <robh+dt@kernel.org>,
Doug Anderson <dianders@google.com>,
Matthias Kaehlcke <mka@google.com>,
Tomi Valkeinen <tomi.valkeinen@ti.com>,
Kumar Gala <galak@codeaurora.org>,
Eric Miao <eric.y.miao@gmail.com>,
Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [RFC] pwm-backlight: Allow backlight to remain disabled on boot
Date: Thu, 4 Jan 2018 10:22:10 +0200 [thread overview]
Message-ID: <6a77b1bc-29fa-2bc5-baeb-0cba8747137a@ti.com> (raw)
In-Reply-To: <6b14a283-0ded-e22c-8f81-5c241ad57463@rock-chips.com>
Hi,
On 2018-01-04 04:18, hl wrote:
> Hi All,
>
> Since many panel power sequence request backlight stay disable
>
> before panel power ready, but with now pwm-backlight drvier, it default to
>
> enable backlight when pwm-backlight probe, it mess up the panel power
> sequence.
>
> So we need this patch. This patch have been fly for a long time, does
> anyone have plan
>
> to merge it?
you should not need this anymore since we have:
892c7788c724backlight: pwm_bl: Fix GPIO out for unimplemented
.get_direction()
d1b812945750 backlight: pwm_bl: Check the PWM state for initial
backlight power state
7613c922315e backlight: pwm_bl: Move the checks for initial power state
to a separate function
With these in place the backlight will be kept disabled if it was
disabled during boot _if_ you have booted via DT _and_ you have a
phandle pointing to the backlight node (implying that the backlight is
managed by the display driver).
>
>
> On Thursday, July 31, 2014 07:42 PM, Thierry Reding wrote:
>> From: Thierry Reding <treding@nvidia.com>
>>
>> The default for backlight devices is to be enabled immediately when
>> registering with the backlight core. This can be useful for setups that
>> use a simple framebuffer device and where the backlight cannot otherwise
>> be hooked up to the panel.
>>
>> However, when dealing with more complex setups, such as those of recent
>> ARM SoCs, this can be problematic. Since the backlight is usually setup
>> separately from the display controller, the probe order is not usually
>> deterministic. That can lead to situations where the backlight will be
>> powered up and the panel will show an uninitialized framebuffer.
>>
>> Furthermore, subsystems such as DRM have advanced functionality to set
>> the power mode of a panel. In order to allow such setups to power up the
>> panel at exactly the right moment, a way is needed to prevent the
>> backlight core from powering the backlight up automatically when it is
>> registered.
>>
>> This commit introduces a new boot_off field in the platform data (and
>> also implements getting the same information from device tree). When set
>> the initial backlight power mode will be set to "off".
>>
>> Signed-off-by: Thierry Reding <treding@nvidia.com>
>> ---
>> I've been meaning to send this for a while but was always holding back
>> because of the indoctrination that this type of configuration shouldn't
>> be part of device tree. However this issue was recently raised again in
>> the context of power up sequences for display panels. As described above
>> the issue is that panel datasheets recommend that the backlight attached
>> to a panel be turned on at the very last step to avoid visual glitches
>> during the panel's power up sequence. With the current implementation it
>> is typical for the backlight to be probed before the display panel. That
>> has, in many cases, the side-effect of enabling the backlight, therefore
>> making the screen content visible before it's actually initialized.
>>
>> Some panels come up with random garbage when uninitialized, others show
>> all white. With some luck the panel will be all black and users won't
>> really notice.
>>
>> This patch is an attempt to enable boards to override the default of
>> turning on the backlight for the pwm-backlight driver. I'm not sure if
>> there was a specific reason to turn on the backlight by default when
>> this driver was initially written, but the fact is that since it has
>> pretty much always been like this we can't really go and change the
>> default, otherwise a lot of people may end up with no backlight and no
>> clue as to how to enable it. So the only reasonable thing we can do is
>> to keep the old behaviour and give new boards a way to override it if
>> they know that some other part of the stack will enable it at the right
>> moment.
>>
>> .../devicetree/bindings/video/backlight/pwm-backlight.txt | 1 +
>> drivers/video/backlight/pwm_bl.c |
>> 8 ++++++++
>> include/linux/pwm_backlight.h |
>> 2 ++
>> 3 files changed, 11 insertions(+)
>>
>> diff --git
>> a/Documentation/devicetree/bindings/video/backlight/pwm-backlight.txt
>> b/Documentation/devicetree/bindings/video/backlight/pwm-backlight.txt
>> index 764db86d441a..65e001a1733d 100644
>> --- a/Documentation/devicetree/bindings/video/backlight/pwm-backlight.txt
>> +++ b/Documentation/devicetree/bindings/video/backlight/pwm-backlight.txt
>> @@ -17,6 +17,7 @@ Optional properties:
>> "pwms" property (see PWM binding[0])
>> - enable-gpios: contains a single GPIO specifier for the GPIO
>> which enables
>> and disables the backlight (see GPIO binding[1])
>> + - backlight-boot-off: keep the backlight disabled on boot
>> [0]: Documentation/devicetree/bindings/pwm/pwm.txt
>> [1]: Documentation/devicetree/bindings/gpio/gpio.txt
>> diff --git a/drivers/video/backlight/pwm_bl.c
>> b/drivers/video/backlight/pwm_bl.c
>> index d7a3d13e72ec..62adfc9d37a7 100644
>> --- a/drivers/video/backlight/pwm_bl.c
>> +++ b/drivers/video/backlight/pwm_bl.c
>> @@ -173,6 +173,8 @@ static int pwm_backlight_parse_dt(struct device *dev,
>> data->max_brightness--;
>> }
>> + data->boot_off = of_property_read_bool(node,
>> "backlight-boot-off");
>> +
>> return 0;
>> }
>> @@ -317,6 +319,12 @@ static int pwm_backlight_probe(struct
>> platform_device *pdev)
>> }
>> bl->props.brightness = data->dft_brightness;
>> +
>> + if (data->boot_off)
>> + bl->props.power = FB_BLANK_POWERDOWN;
>> + else
>> + bl->props.power = FB_BLANK_UNBLANK;
>> +
>> backlight_update_status(bl);
>> platform_set_drvdata(pdev, bl);
>> diff --git a/include/linux/pwm_backlight.h
>> b/include/linux/pwm_backlight.h
>> index efdd9227a49c..1fc14989da4a 100644
>> --- a/include/linux/pwm_backlight.h
>> +++ b/include/linux/pwm_backlight.h
>> @@ -15,6 +15,8 @@ struct platform_pwm_backlight_data {
>> unsigned int *levels;
>> /* TODO remove once all users are switched to gpiod_* API */
>> int enable_gpio;
>> + bool boot_off;
>> +
>> int (*init)(struct device *dev);
>> int (*notify)(struct device *dev, int brightness);
>> void (*notify_after)(struct device *dev, int brightness);
>
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
- Péter
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
next prev parent reply other threads:[~2018-01-04 8:23 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-31 11:42 Thierry Reding
2014-07-31 11:54 ` Thierry Reding
2014-08-07 9:30 ` Jingoo Han
2014-07-31 11:56 ` Thierry Reding
2014-08-07 9:54 ` Ajay kumar
2015-02-26 11:06 ` Lee Jones
2018-01-04 2:18 ` hl
2018-01-04 8:22 ` Peter Ujfalusi [this message]
2018-01-04 9:33 ` hl
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6a77b1bc-29fa-2bc5-baeb-0cba8747137a@ti.com \
--to=peter.ujfalusi@ti.com \
--cc=briannorris@google.com \
--cc=cooloney@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=dianders@google.com \
--cc=eric.y.miao@gmail.com \
--cc=galak@codeaurora.org \
--cc=hl@rock-chips.com \
--cc=ijc+devicetree@hellion.org.uk \
--cc=jg1.han@samsung.com \
--cc=lee.jones@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=mark.rutland@arm.com \
--cc=mka@google.com \
--cc=pawel.moll@arm.com \
--cc=plagnioj@jcrosoft.com \
--cc=robh+dt@kernel.org \
--cc=thierry.reding@gmail.com \
--cc=tomi.valkeinen@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®