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

Mark Zhang
2013-10-22T02:41:51Z

Ping Thierry...

Mark
On 10/18/2013 12:48 PM, Mark Zhang wrote:
> On 10/17/2013 03:14 PM, Thierry Reding wrote:
>> On Thu, Oct 17, 2013 at 02:49:57PM +0800, Mark Zhang wrote:
>>> Hi,
>>>
>>> This is the first time I send mail to linux-pwm, I didn't read through
>>> the mails in this list, so if somebody already asked this question, I'm
>>> sorry about that.
>>>
>>> I wanna set some fops in "struct platform_pwm_backlight_data". But the
>>> currrent probe function in pwm_bl.c says:
>>>
>>> -------
>>> if (!data) {
>>> ret = pwm_backlight_parse_dt(&pdev->dev, &defdata);
>>> if (ret < 0) {
>>> dev_err(&pdev->dev, "failed to find platform data\n");
>>> return ret;
>>> }
>>>
>>> data = &defdata;
>>> }
>>> -------
>>>
>>> This looks like if we set the platform data for pwm backlight device,
>>> "pwm_backlight_parse_dt" will never have a chance to be called, which
>>> means the stuffs I defined in backlight DT node will be ignored.
>>>
>>> If I don't set the platform data for pwm backlight device, according to
>>> the pwm_backlight_probe, I will never have a chance to set some fops
>>> which I need(like "notify", "check_fb"...).
>>>
>>> So, what I suppose to do now? Maybe there is a way to set function
>>> pointers in DT?
>>
>> Perhaps you could describe in more detail what you need the functions
>> for.
>>
>
> 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.
>
> Mark
>> Generally you're not supposed to mix DT and platform data. Without more
>> info that's about all I can say.
>>
>> Thierry
>>