Thread (19 messages) 19 messages, 2 authors, 2013-10-23

Re: How to set fops in "struct platform_pwm_backlight_data"?

From: Thierry Reding <hidden>
Date: 2013-10-23 10:54:16
Also in: linux-pwm, lkml

On Wed, Oct 23, 2013 at 06:36:01PM +0800, Mark Zhang wrote:
On 10/23/2013 05:09 PM, Thierry Reding wrote:
quoted
On Wed, Oct 23, 2013 at 04:49:29PM +0800, Mark Zhang wrote:
quoted
On 10/23/2013 04:00 PM, Thierry Reding wrote:
quoted
On Wed, Oct 23, 2013 at 10:16:24AM +0800, Mark Zhang wrote:
quoted
On 10/22/2013 08:49 PM, Thierry Reding wrote:
quoted
On Tue, Oct 22, 2013 at 04:55:09PM +0800, Mark Zhang wrote:
quoted
On 10/22/2013 03:24 PM, Thierry Reding wrote:
quoted
On Fri, Oct 18, 2013 at 12:48:12PM +0800, Mark Zhang wrote:
[...]
quoted
quoted
quoted
Okay, I just want to set the "notify" function pointer in "struct
platform_pwm_backlight_data", because I want to tune the brightness
value before the pwm-bl sets the brightness to hardware. I don't know
how to do that, unless we define the platform data explicitly.
Okay, my question should have been what you need the functions for and
why you think you need them.
If I understanding you correctly, I suppose I've said that: "because I
want to tune the brightness value before the pwm-bl sets the brightness
to hardware".
Why do you want to tune the brightness value? What are you trying to
achieve?
Oh, Tegra has a feature named PRISM(aka SmartDimmer). It changes the
color value to make the display looks bright so that we can reduce the
backlight brightness to save power. So everytime PRISM is triggered, we
call "backlight_update_status", then in the "notify" callback, we change
the brightness value which pwm-bl provides by considering the PRISM
compensations.
If you automatically call backlight_update_status() everytime PRISM
gives you new data, can't you just pass the correct value in in the
first place so that you don't have to tweak it in the .notify()
callback?
OK, how to do that? -- "pass the correct value in in the first place"?
Well, if you call backlight_update_status(), then you can pass in a
brightness value, right? You usually do that by setting the backlight's
props.brightness field.

So when PRISM gives you new data, you could just read out the current
brightness, compute the new one based on the current one and the PRISM
data, set the props.brightness field to that value and then call
backlight_update_status().
Okay, anyway, I got the idea. Actually it's simpler. :)
I'm just curious that if we can do that in this way, why we need
"notify" anymore?
We don't need it any longer for DT, you've just proven that. =)

However we still need to support board files, and the .notify() callback
is the only way for board files to use board specific means to enable or
disable the backlight depending on the brightness value.

Thierry

Attachments

  • (unnamed) [application/pgp-signature] 836 bytes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help