* Re: How to set fops in "struct platform_pwm_backlight_data"?
From: Thierry Reding @ 2013-10-22 7:24 UTC (permalink / raw)
To: Mark Zhang
Cc: rpurdie, jg1.han, Jean-Christophe PLAGNIOL-VILLARD,
tomi.valkeinen, linux-pwm, linux-fbdev@vger.kernel.org,
linux-kernel@vger.kernel.org
In-Reply-To: <5260BD8C.7000200@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1799 bytes --]
On Fri, Oct 18, 2013 at 12:48:12PM +0800, 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.
Okay, my question should have been what you need the functions for and
why you think you need them.
Thierry
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* Re: How to set fops in "struct platform_pwm_backlight_data"?
From: Mark Zhang @ 2013-10-22 8:55 UTC (permalink / raw)
To: Thierry Reding
Cc: rpurdie, jg1.han, Jean-Christophe PLAGNIOL-VILLARD,
tomi.valkeinen, linux-pwm, linux-fbdev@vger.kernel.org,
linux-kernel@vger.kernel.org
In-Reply-To: <20131022072443.GB8681@ulmo.nvidia.com>
On 10/22/2013 03:24 PM, Thierry Reding wrote:
> On Fri, Oct 18, 2013 at 12:48:12PM +0800, Mark Zhang wrote:
[...]
>>>
>>
>> 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".
Mark
> Thierry
>
^ permalink raw reply
* Re: How to set fops in "struct platform_pwm_backlight_data"?
From: Thierry Reding @ 2013-10-22 12:49 UTC (permalink / raw)
To: Mark Zhang
Cc: rpurdie, jg1.han, Jean-Christophe PLAGNIOL-VILLARD,
tomi.valkeinen, linux-pwm, linux-fbdev@vger.kernel.org,
linux-kernel@vger.kernel.org
In-Reply-To: <52663D6D.5000806@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 873 bytes --]
On Tue, Oct 22, 2013 at 04:55:09PM +0800, Mark Zhang wrote:
> On 10/22/2013 03:24 PM, Thierry Reding wrote:
> > On Fri, Oct 18, 2013 at 12:48:12PM +0800, Mark Zhang wrote:
> [...]
> >>>
> >>
> >> 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?
Thierry
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* [PATCH] atmel_lcdfb: fix module autoload
From: Johan Hovold @ 2013-10-22 16:36 UTC (permalink / raw)
To: Nicolas Ferre; +Cc: linux-fbdev, linux-kernel, Johan Hovold
Add missing module device table which is needed for module autoloading.
Signed-off-by: Johan Hovold <jhovold@gmail.com>
---
drivers/video/atmel_lcdfb.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c
index 088511a..67b339c 100644
--- a/drivers/video/atmel_lcdfb.c
+++ b/drivers/video/atmel_lcdfb.c
@@ -94,6 +94,7 @@ static const struct platform_device_id atmel_lcdfb_devtypes[] = {
/* terminator */
}
};
+MODULE_DEVICE_TABLE(platform, atmel_lcdfb_devtypes);
static struct atmel_lcdfb_config *
atmel_lcdfb_get_config(struct platform_device *pdev)
--
1.8.4
^ permalink raw reply related
* [PATCH 0/9] backlight: atmel-pwm-bl: fixes and clean ups
From: Johan Hovold @ 2013-10-22 17:26 UTC (permalink / raw)
To: Richard Purdie, Jingoo Han
Cc: Nicolas Ferre, linux-fbdev, linux-kernel, Johan Hovold
These patches fix a few issues and clean up the atmel-pwm-bl driver
somewhat.
Johan
Johan Hovold (9):
backlight: atmel-pwm-bl: fix reported brightness
backlight: atmel-pwm-bl: fix gpio polarity in remove
backlight: atmel-pwm-bl: fix module autoload
backlight: atmel-pwm-bl: clean up probe error handling
backlight: atmel-pwm-bl: clean up get_intensity
backlight: atmel-pwm-bl: remove unused include
backlight: atmel-pwm-bl: use gpio_is_valid
backlight: atmel-pwm-bl: refactor gpio_on handling
backlight: atmel-pwm-bl: use gpio_request_one
drivers/video/backlight/atmel-pwm-bl.c | 86 ++++++++++++++++------------------
1 file changed, 40 insertions(+), 46 deletions(-)
--
1.8.4
^ permalink raw reply
* [PATCH 1/9] backlight: atmel-pwm-bl: fix reported brightness
From: Johan Hovold @ 2013-10-22 17:26 UTC (permalink / raw)
To: Richard Purdie, Jingoo Han
Cc: Nicolas Ferre, linux-fbdev, linux-kernel, Johan Hovold, stable
In-Reply-To: <1382462819-28576-1-git-send-email-jhovold@gmail.com>
The driver supports 16-bit brightness values, but the value returned
from get_brightness was truncated to eight bits.
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold <jhovold@gmail.com>
---
drivers/video/backlight/atmel-pwm-bl.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/video/backlight/atmel-pwm-bl.c b/drivers/video/backlight/atmel-pwm-bl.c
index 66885fb..8aac273 100644
--- a/drivers/video/backlight/atmel-pwm-bl.c
+++ b/drivers/video/backlight/atmel-pwm-bl.c
@@ -70,7 +70,7 @@ static int atmel_pwm_bl_set_intensity(struct backlight_device *bd)
static int atmel_pwm_bl_get_intensity(struct backlight_device *bd)
{
struct atmel_pwm_bl *pwmbl = bl_get_data(bd);
- u8 intensity;
+ u32 intensity;
if (pwmbl->pdata->pwm_active_low) {
intensity = pwm_channel_readl(&pwmbl->pwmc, PWM_CDTY) -
@@ -80,7 +80,7 @@ static int atmel_pwm_bl_get_intensity(struct backlight_device *bd)
pwm_channel_readl(&pwmbl->pwmc, PWM_CDTY);
}
- return intensity;
+ return (u16)intensity;
}
static int atmel_pwm_bl_init_pwm(struct atmel_pwm_bl *pwmbl)
--
1.8.4
^ permalink raw reply related
* [PATCH 2/9] backlight: atmel-pwm-bl: fix gpio polarity in remove
From: Johan Hovold @ 2013-10-22 17:26 UTC (permalink / raw)
To: Richard Purdie, Jingoo Han
Cc: Nicolas Ferre, linux-fbdev, linux-kernel, Johan Hovold, stable
In-Reply-To: <1382462819-28576-1-git-send-email-jhovold@gmail.com>
Make sure to honour gpio polarity also at remove so that the backlight
is actually disabled on boards with active-low enable pin.
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold <jhovold@gmail.com>
---
drivers/video/backlight/atmel-pwm-bl.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/video/backlight/atmel-pwm-bl.c b/drivers/video/backlight/atmel-pwm-bl.c
index 8aac273..3cb0094 100644
--- a/drivers/video/backlight/atmel-pwm-bl.c
+++ b/drivers/video/backlight/atmel-pwm-bl.c
@@ -205,8 +205,10 @@ static int atmel_pwm_bl_remove(struct platform_device *pdev)
{
struct atmel_pwm_bl *pwmbl = platform_get_drvdata(pdev);
- if (pwmbl->gpio_on != -1)
- gpio_set_value(pwmbl->gpio_on, 0);
+ if (pwmbl->gpio_on != -1) {
+ gpio_set_value(pwmbl->gpio_on,
+ 0 ^ pwmbl->pdata->on_active_low);
+ }
pwm_channel_disable(&pwmbl->pwmc);
pwm_channel_free(&pwmbl->pwmc);
--
1.8.4
^ permalink raw reply related
* [PATCH 3/9] backlight: atmel-pwm-bl: fix module autoload
From: Johan Hovold @ 2013-10-22 17:26 UTC (permalink / raw)
To: Richard Purdie, Jingoo Han
Cc: Nicolas Ferre, linux-fbdev, linux-kernel, Johan Hovold
In-Reply-To: <1382462819-28576-1-git-send-email-jhovold@gmail.com>
Add missing module alias which is needed for module autoloading.
Signed-off-by: Johan Hovold <jhovold@gmail.com>
---
drivers/video/backlight/atmel-pwm-bl.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/video/backlight/atmel-pwm-bl.c b/drivers/video/backlight/atmel-pwm-bl.c
index 3cb0094..cc5a5ed 100644
--- a/drivers/video/backlight/atmel-pwm-bl.c
+++ b/drivers/video/backlight/atmel-pwm-bl.c
@@ -229,3 +229,4 @@ module_platform_driver(atmel_pwm_bl_driver);
MODULE_AUTHOR("Hans-Christian egtvedt <hans-christian.egtvedt@atmel.com>");
MODULE_DESCRIPTION("Atmel PWM backlight driver");
MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:atmel-pwm-bl");
--
1.8.4
^ permalink raw reply related
* [PATCH 4/9] backlight: atmel-pwm-bl: clean up probe error handling
From: Johan Hovold @ 2013-10-22 17:26 UTC (permalink / raw)
To: Richard Purdie, Jingoo Han
Cc: Nicolas Ferre, linux-fbdev, linux-kernel, Johan Hovold
In-Reply-To: <1382462819-28576-1-git-send-email-jhovold@gmail.com>
Clean up probe error handling by checking parameters before any
allocations and removing an obsolete error label. Also remove
unnecessary reset of private gpio number.
Signed-off-by: Johan Hovold <jhovold@gmail.com>
---
drivers/video/backlight/atmel-pwm-bl.c | 31 ++++++++++++-------------------
1 file changed, 12 insertions(+), 19 deletions(-)
diff --git a/drivers/video/backlight/atmel-pwm-bl.c b/drivers/video/backlight/atmel-pwm-bl.c
index cc5a5ed..52a8134 100644
--- a/drivers/video/backlight/atmel-pwm-bl.c
+++ b/drivers/video/backlight/atmel-pwm-bl.c
@@ -126,40 +126,33 @@ static int atmel_pwm_bl_probe(struct platform_device *pdev)
struct atmel_pwm_bl *pwmbl;
int retval;
+ pdata = dev_get_platdata(&pdev->dev);
+ if (!pdata)
+ return -ENODEV;
+
+ if (pdata->pwm_compare_max < pdata->pwm_duty_max ||
+ pdata->pwm_duty_min > pdata->pwm_duty_max ||
+ pdata->pwm_frequency = 0)
+ return -EINVAL;
+
pwmbl = devm_kzalloc(&pdev->dev, sizeof(struct atmel_pwm_bl),
GFP_KERNEL);
if (!pwmbl)
return -ENOMEM;
pwmbl->pdev = pdev;
-
- pdata = dev_get_platdata(&pdev->dev);
- if (!pdata) {
- retval = -ENODEV;
- goto err_free_mem;
- }
-
- if (pdata->pwm_compare_max < pdata->pwm_duty_max ||
- pdata->pwm_duty_min > pdata->pwm_duty_max ||
- pdata->pwm_frequency = 0) {
- retval = -EINVAL;
- goto err_free_mem;
- }
-
pwmbl->pdata = pdata;
pwmbl->gpio_on = pdata->gpio_on;
retval = pwm_channel_alloc(pdata->pwm_channel, &pwmbl->pwmc);
if (retval)
- goto err_free_mem;
+ return retval;
if (pwmbl->gpio_on != -1) {
retval = devm_gpio_request(&pdev->dev, pwmbl->gpio_on,
"gpio_atmel_pwm_bl");
- if (retval) {
- pwmbl->gpio_on = -1;
+ if (retval)
goto err_free_pwm;
- }
/* Turn display off by default. */
retval = gpio_direction_output(pwmbl->gpio_on,
@@ -197,7 +190,7 @@ static int atmel_pwm_bl_probe(struct platform_device *pdev)
err_free_pwm:
pwm_channel_free(&pwmbl->pwmc);
-err_free_mem:
+
return retval;
}
--
1.8.4
^ permalink raw reply related
* [PATCH 5/9] backlight: atmel-pwm-bl: clean up get_intensity
From: Johan Hovold @ 2013-10-22 17:26 UTC (permalink / raw)
To: Richard Purdie, Jingoo Han
Cc: Nicolas Ferre, linux-fbdev, linux-kernel, Johan Hovold
In-Reply-To: <1382462819-28576-1-git-send-email-jhovold@gmail.com>
Clean up get_intensity to increase readability.
Signed-off-by: Johan Hovold <jhovold@gmail.com>
---
drivers/video/backlight/atmel-pwm-bl.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/drivers/video/backlight/atmel-pwm-bl.c b/drivers/video/backlight/atmel-pwm-bl.c
index 52a8134..504061c 100644
--- a/drivers/video/backlight/atmel-pwm-bl.c
+++ b/drivers/video/backlight/atmel-pwm-bl.c
@@ -70,15 +70,14 @@ static int atmel_pwm_bl_set_intensity(struct backlight_device *bd)
static int atmel_pwm_bl_get_intensity(struct backlight_device *bd)
{
struct atmel_pwm_bl *pwmbl = bl_get_data(bd);
+ u32 cdty;
u32 intensity;
- if (pwmbl->pdata->pwm_active_low) {
- intensity = pwm_channel_readl(&pwmbl->pwmc, PWM_CDTY) -
- pwmbl->pdata->pwm_duty_min;
- } else {
- intensity = pwmbl->pdata->pwm_duty_max -
- pwm_channel_readl(&pwmbl->pwmc, PWM_CDTY);
- }
+ cdty = pwm_channel_readl(&pwmbl->pwmc, PWM_CDTY);
+ if (pwmbl->pdata->pwm_active_low)
+ intensity = cdty - pwmbl->pdata->pwm_duty_min;
+ else
+ intensity = pwmbl->pdata->pwm_duty_max - cdty;
return (u16)intensity;
}
--
1.8.4
^ permalink raw reply related
* [PATCH 6/9] backlight: atmel-pwm-bl: remove unused include
From: Johan Hovold @ 2013-10-22 17:26 UTC (permalink / raw)
To: Richard Purdie, Jingoo Han
Cc: Nicolas Ferre, linux-fbdev, linux-kernel, Johan Hovold
In-Reply-To: <1382462819-28576-1-git-send-email-jhovold@gmail.com>
Remove unused include of clk.h.
Signed-off-by: Johan Hovold <jhovold@gmail.com>
---
drivers/video/backlight/atmel-pwm-bl.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/video/backlight/atmel-pwm-bl.c b/drivers/video/backlight/atmel-pwm-bl.c
index 504061c..db68cab 100644
--- a/drivers/video/backlight/atmel-pwm-bl.c
+++ b/drivers/video/backlight/atmel-pwm-bl.c
@@ -12,7 +12,6 @@
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/fb.h>
-#include <linux/clk.h>
#include <linux/gpio.h>
#include <linux/backlight.h>
#include <linux/atmel_pwm.h>
--
1.8.4
^ permalink raw reply related
* [PATCH 7/9] backlight: atmel-pwm-bl: use gpio_is_valid
From: Johan Hovold @ 2013-10-22 17:26 UTC (permalink / raw)
To: Richard Purdie, Jingoo Han
Cc: Nicolas Ferre, linux-fbdev, linux-kernel, Johan Hovold
In-Reply-To: <1382462819-28576-1-git-send-email-jhovold@gmail.com>
Use gpio_is_valid rather than open coding the more restrictive != -1
test.
Signed-off-by: Johan Hovold <jhovold@gmail.com>
---
drivers/video/backlight/atmel-pwm-bl.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/video/backlight/atmel-pwm-bl.c b/drivers/video/backlight/atmel-pwm-bl.c
index db68cab..ffc30d2 100644
--- a/drivers/video/backlight/atmel-pwm-bl.c
+++ b/drivers/video/backlight/atmel-pwm-bl.c
@@ -48,7 +48,7 @@ static int atmel_pwm_bl_set_intensity(struct backlight_device *bd)
pwm_duty = pwmbl->pdata->pwm_duty_min;
if (!intensity) {
- if (pwmbl->gpio_on != -1) {
+ if (gpio_is_valid(pwmbl->gpio_on)) {
gpio_set_value(pwmbl->gpio_on,
0 ^ pwmbl->pdata->on_active_low);
}
@@ -57,7 +57,7 @@ static int atmel_pwm_bl_set_intensity(struct backlight_device *bd)
} else {
pwm_channel_enable(&pwmbl->pwmc);
pwm_channel_writel(&pwmbl->pwmc, PWM_CUPD, pwm_duty);
- if (pwmbl->gpio_on != -1) {
+ if (gpio_is_valid(pwmbl->gpio_on)) {
gpio_set_value(pwmbl->gpio_on,
1 ^ pwmbl->pdata->on_active_low);
}
@@ -146,7 +146,7 @@ static int atmel_pwm_bl_probe(struct platform_device *pdev)
if (retval)
return retval;
- if (pwmbl->gpio_on != -1) {
+ if (gpio_is_valid(pwmbl->gpio_on)) {
retval = devm_gpio_request(&pdev->dev, pwmbl->gpio_on,
"gpio_atmel_pwm_bl");
if (retval)
@@ -196,7 +196,7 @@ static int atmel_pwm_bl_remove(struct platform_device *pdev)
{
struct atmel_pwm_bl *pwmbl = platform_get_drvdata(pdev);
- if (pwmbl->gpio_on != -1) {
+ if (gpio_is_valid(pwmbl->gpio_on)) {
gpio_set_value(pwmbl->gpio_on,
0 ^ pwmbl->pdata->on_active_low);
}
--
1.8.4
^ permalink raw reply related
* [PATCH 8/9] backlight: atmel-pwm-bl: refactor gpio_on handling
From: Johan Hovold @ 2013-10-22 17:26 UTC (permalink / raw)
To: Richard Purdie, Jingoo Han
Cc: Nicolas Ferre, linux-fbdev, linux-kernel, Johan Hovold
In-Reply-To: <1382462819-28576-1-git-send-email-jhovold@gmail.com>
Add helper function to control the gpio_on signal.
Signed-off-by: Johan Hovold <jhovold@gmail.com>
---
drivers/video/backlight/atmel-pwm-bl.c | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/drivers/video/backlight/atmel-pwm-bl.c b/drivers/video/backlight/atmel-pwm-bl.c
index ffc30d2..1277e0c 100644
--- a/drivers/video/backlight/atmel-pwm-bl.c
+++ b/drivers/video/backlight/atmel-pwm-bl.c
@@ -26,6 +26,14 @@ struct atmel_pwm_bl {
int gpio_on;
};
+static void atmel_pwm_bl_set_gpio_on(struct atmel_pwm_bl *pwmbl, int on)
+{
+ if (!gpio_is_valid(pwmbl->gpio_on))
+ return;
+
+ gpio_set_value(pwmbl->gpio_on, on ^ pwmbl->pdata->on_active_low);
+}
+
static int atmel_pwm_bl_set_intensity(struct backlight_device *bd)
{
struct atmel_pwm_bl *pwmbl = bl_get_data(bd);
@@ -48,19 +56,13 @@ static int atmel_pwm_bl_set_intensity(struct backlight_device *bd)
pwm_duty = pwmbl->pdata->pwm_duty_min;
if (!intensity) {
- if (gpio_is_valid(pwmbl->gpio_on)) {
- gpio_set_value(pwmbl->gpio_on,
- 0 ^ pwmbl->pdata->on_active_low);
- }
+ atmel_pwm_bl_set_gpio_on(pwmbl, 0);
pwm_channel_writel(&pwmbl->pwmc, PWM_CUPD, pwm_duty);
pwm_channel_disable(&pwmbl->pwmc);
} else {
pwm_channel_enable(&pwmbl->pwmc);
pwm_channel_writel(&pwmbl->pwmc, PWM_CUPD, pwm_duty);
- if (gpio_is_valid(pwmbl->gpio_on)) {
- gpio_set_value(pwmbl->gpio_on,
- 1 ^ pwmbl->pdata->on_active_low);
- }
+ atmel_pwm_bl_set_gpio_on(pwmbl, 1);
}
return 0;
@@ -196,10 +198,7 @@ static int atmel_pwm_bl_remove(struct platform_device *pdev)
{
struct atmel_pwm_bl *pwmbl = platform_get_drvdata(pdev);
- if (gpio_is_valid(pwmbl->gpio_on)) {
- gpio_set_value(pwmbl->gpio_on,
- 0 ^ pwmbl->pdata->on_active_low);
- }
+ atmel_pwm_bl_set_gpio_on(pwmbl, 0);
pwm_channel_disable(&pwmbl->pwmc);
pwm_channel_free(&pwmbl->pwmc);
--
1.8.4
^ permalink raw reply related
* [PATCH 9/9] backlight: atmel-pwm-bl: use gpio_request_one
From: Johan Hovold @ 2013-10-22 17:26 UTC (permalink / raw)
To: Richard Purdie, Jingoo Han
Cc: Nicolas Ferre, linux-fbdev, linux-kernel, Johan Hovold
In-Reply-To: <1382462819-28576-1-git-send-email-jhovold@gmail.com>
Use devm_gpio_request_one rather than requesting and setting direction
in two calls.
Signed-off-by: Johan Hovold <jhovold@gmail.com>
---
drivers/video/backlight/atmel-pwm-bl.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/drivers/video/backlight/atmel-pwm-bl.c b/drivers/video/backlight/atmel-pwm-bl.c
index 1277e0c..5ea2517 100644
--- a/drivers/video/backlight/atmel-pwm-bl.c
+++ b/drivers/video/backlight/atmel-pwm-bl.c
@@ -124,6 +124,7 @@ static int atmel_pwm_bl_probe(struct platform_device *pdev)
const struct atmel_pwm_bl_platform_data *pdata;
struct backlight_device *bldev;
struct atmel_pwm_bl *pwmbl;
+ int flags;
int retval;
pdata = dev_get_platdata(&pdev->dev);
@@ -149,14 +150,14 @@ static int atmel_pwm_bl_probe(struct platform_device *pdev)
return retval;
if (gpio_is_valid(pwmbl->gpio_on)) {
- retval = devm_gpio_request(&pdev->dev, pwmbl->gpio_on,
- "gpio_atmel_pwm_bl");
- if (retval)
- goto err_free_pwm;
-
/* Turn display off by default. */
- retval = gpio_direction_output(pwmbl->gpio_on,
- 0 ^ pdata->on_active_low);
+ if (pdata->on_active_low)
+ flags = GPIOF_OUT_INIT_HIGH;
+ else
+ flags = GPIOF_OUT_INIT_LOW;
+
+ retval = devm_gpio_request_one(&pdev->dev, pwmbl->gpio_on,
+ flags, "gpio_atmel_pwm_bl");
if (retval)
goto err_free_pwm;
}
--
1.8.4
^ permalink raw reply related
* Re: [PATCH 0/9] backlight: atmel-pwm-bl: fixes and clean ups
From: Jingoo Han @ 2013-10-23 1:19 UTC (permalink / raw)
To: 'Johan Hovold'
Cc: 'Andrew Morton', 'Tomi Valkeinen',
'Jean-Christophe Plagniol-Villard',
'Richard Purdie', 'Nicolas Ferre', linux-fbdev,
linux-kernel, 'Jingoo Han'
In-Reply-To: <1382462819-28576-1-git-send-email-jhovold@gmail.com>
On Wednesday, October 23, 2013 2:27 AM, Johan Hovold wrote:
>
> These patches fix a few issues and clean up the atmel-pwm-bl driver
> somewhat.
>
> Johan
>
> Johan Hovold (9):
> backlight: atmel-pwm-bl: fix reported brightness
> backlight: atmel-pwm-bl: fix gpio polarity in remove
> backlight: atmel-pwm-bl: fix module autoload
> backlight: atmel-pwm-bl: clean up probe error handling
> backlight: atmel-pwm-bl: clean up get_intensity
> backlight: atmel-pwm-bl: remove unused include
> backlight: atmel-pwm-bl: use gpio_is_valid
> backlight: atmel-pwm-bl: refactor gpio_on handling
> backlight: atmel-pwm-bl: use gpio_request_one
++cc Andrew Morton, Tomi Valkeinen, Jean-Christophe Plagniol-Villard
Hi Johan Hovold,
Currently, because there is no git tree for backlight,
backlight patches have been merged to mm-tree by Andrew Morton.
Please, add Andrew Morton to CC list.
Also, there is another way.
If Nicolas Ferre wants to merge these patches, the patches can be
merged through ATMEL-SoC tree with my Acked-by.
Best regards,
Jingoo Han
>
> drivers/video/backlight/atmel-pwm-bl.c | 86 ++++++++++++++++------------------
> 1 file changed, 40 insertions(+), 46 deletions(-)
^ permalink raw reply
* Re: [PATCH 1/9] backlight: atmel-pwm-bl: fix reported brightness
From: Jingoo Han @ 2013-10-23 1:20 UTC (permalink / raw)
To: 'Johan Hovold'
Cc: 'Richard Purdie', 'Nicolas Ferre', linux-fbdev,
linux-kernel, stable, 'Jingoo Han'
In-Reply-To: <1382462819-28576-2-git-send-email-jhovold@gmail.com>
On Wednesday, October 23, 2013 2:27 AM, Johan Hovold wrote:
>
> The driver supports 16-bit brightness values, but the value returned
> from get_brightness was truncated to eight bits.
>
> Cc: stable@vger.kernel.org
> Signed-off-by: Johan Hovold <jhovold@gmail.com>
> ---
> drivers/video/backlight/atmel-pwm-bl.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/video/backlight/atmel-pwm-bl.c b/drivers/video/backlight/atmel-pwm-bl.c
> index 66885fb..8aac273 100644
> --- a/drivers/video/backlight/atmel-pwm-bl.c
> +++ b/drivers/video/backlight/atmel-pwm-bl.c
> @@ -70,7 +70,7 @@ static int atmel_pwm_bl_set_intensity(struct backlight_device *bd)
> static int atmel_pwm_bl_get_intensity(struct backlight_device *bd)
> {
> struct atmel_pwm_bl *pwmbl = bl_get_data(bd);
> - u8 intensity;
> + u32 intensity;
>
> if (pwmbl->pdata->pwm_active_low) {
> intensity = pwm_channel_readl(&pwmbl->pwmc, PWM_CDTY) -
> @@ -80,7 +80,7 @@ static int atmel_pwm_bl_get_intensity(struct backlight_device *bd)
> pwm_channel_readl(&pwmbl->pwmc, PWM_CDTY);
> }
>
> - return intensity;
> + return (u16)intensity;
However, atmel_pwm_bl_get_intensity() should return 'int',
instead of 'u16'. Also, pwm_channel_readl() returns 'u32'.
Then, how about the following?
--- a/drivers/video/backlight/atmel-pwm-bl.c
+++ b/drivers/video/backlight/atmel-pwm-bl.c
@@ -70,17 +70,17 @@ static int atmel_pwm_bl_set_intensity(struct backlight_device *bd)
static int atmel_pwm_bl_get_intensity(struct backlight_device *bd)
{
struct atmel_pwm_bl *pwmbl = bl_get_data(bd);
- u8 intensity;
+ u16 intensity;
if (pwmbl->pdata->pwm_active_low) {
- intensity = pwm_channel_readl(&pwmbl->pwmc, PWM_CDTY) -
+ intensity = (u16) pwm_channel_readl(&pwmbl->pwmc, PWM_CDTY) -
pwmbl->pdata->pwm_duty_min;
} else {
- intensity = pwmbl->pdata->pwm_duty_max -
+ intensity = (u16) pwmbl->pdata->pwm_duty_max -
pwm_channel_readl(&pwmbl->pwmc, PWM_CDTY);
}
- return intensity;
+ return (int)intensity;
}
Best regards,
Jingoo Han
^ permalink raw reply
* Re: [PATCH 2/9] backlight: atmel-pwm-bl: fix gpio polarity in remove
From: Jingoo Han @ 2013-10-23 1:47 UTC (permalink / raw)
To: 'Johan Hovold'
Cc: 'Richard Purdie', 'Nicolas Ferre', linux-fbdev,
linux-kernel, stable, 'Jingoo Han'
In-Reply-To: <1382462819-28576-3-git-send-email-jhovold@gmail.com>
On Wednesday, October 23, 2013 2:27 AM, Johan Hovold wrote:
>
> Make sure to honour gpio polarity also at remove so that the backlight
> is actually disabled on boards with active-low enable pin.
>
> Cc: stable@vger.kernel.org
> Signed-off-by: Johan Hovold <jhovold@gmail.com>
Acked-by: Jingoo Han <jg1.han@samsung.com>
Best regards,
Jingoo Han
> ---
> drivers/video/backlight/atmel-pwm-bl.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
^ permalink raw reply
* Re: [PATCH 3/9] backlight: atmel-pwm-bl: fix module autoload
From: Jingoo Han @ 2013-10-23 1:48 UTC (permalink / raw)
To: 'Johan Hovold'
Cc: 'Richard Purdie', 'Nicolas Ferre', linux-fbdev,
linux-kernel, 'Jingoo Han'
In-Reply-To: <1382462819-28576-4-git-send-email-jhovold@gmail.com>
On Wednesday, October 23, 2013 2:27 AM, Johan Hovold wrote:
>
> Add missing module alias which is needed for module autoloading.
>
> Signed-off-by: Johan Hovold <jhovold@gmail.com>
Acked-by: Jingoo Han <jg1.han@samsung.com>
Best regards,
Jingoo Han
> ---
> drivers/video/backlight/atmel-pwm-bl.c | 1 +
> 1 file changed, 1 insertion(+)
^ permalink raw reply
* Re: [PATCH 4/9] backlight: atmel-pwm-bl: clean up probe error handling
From: Jingoo Han @ 2013-10-23 1:50 UTC (permalink / raw)
To: 'Johan Hovold'
Cc: 'Richard Purdie', 'Nicolas Ferre', linux-fbdev,
linux-kernel, 'Jingoo Han'
In-Reply-To: <1382462819-28576-5-git-send-email-jhovold@gmail.com>
On Wednesday, October 23, 2013 2:27 AM, Johan Hovold wrote:
>
> Clean up probe error handling by checking parameters before any
> allocations and removing an obsolete error label. Also remove
> unnecessary reset of private gpio number.
>
> Signed-off-by: Johan Hovold <jhovold@gmail.com>
Acked-by: Jingoo Han <jg1.han@samsung.com>
Best regards,
Jingoo Han
> ---
> drivers/video/backlight/atmel-pwm-bl.c | 31 ++++++++++++-------------------
> 1 file changed, 12 insertions(+), 19 deletions(-)
^ permalink raw reply
* Re: [PATCH 5/9] backlight: atmel-pwm-bl: clean up get_intensity
From: Jingoo Han @ 2013-10-23 1:51 UTC (permalink / raw)
To: 'Johan Hovold'
Cc: 'Richard Purdie', 'Nicolas Ferre', linux-fbdev,
linux-kernel, 'Jingoo Han'
In-Reply-To: <1382462819-28576-6-git-send-email-jhovold@gmail.com>
On Wednesday, October 23, 2013 2:27 AM, Johan Hovold wrote:
>
> Clean up get_intensity to increase readability.
>
> Signed-off-by: Johan Hovold <jhovold@gmail.com>
Acked-by: Jingoo Han <jg1.han@samsung.com>
Best regards,
Jingoo Han
> ---
> drivers/video/backlight/atmel-pwm-bl.c | 13 ++++++-------
> 1 file changed, 6 insertions(+), 7 deletions(-)
^ permalink raw reply
* Re: [PATCH 6/9] backlight: atmel-pwm-bl: remove unused include
From: Jingoo Han @ 2013-10-23 1:51 UTC (permalink / raw)
To: 'Johan Hovold'
Cc: 'Richard Purdie', 'Nicolas Ferre', linux-fbdev,
linux-kernel, 'Jingoo Han'
In-Reply-To: <1382462819-28576-7-git-send-email-jhovold@gmail.com>
On Wednesday, October 23, 2013 2:27 AM, Johan Hovold wrote:
>
> Remove unused include of clk.h.
>
> Signed-off-by: Johan Hovold <jhovold@gmail.com>
Acked-by: Jingoo Han <jg1.han@samsung.com>
Best regards,
Jingoo Han
> ---
> drivers/video/backlight/atmel-pwm-bl.c | 1 -
> 1 file changed, 1 deletion(-)
^ permalink raw reply
* Re: [PATCH 7/9] backlight: atmel-pwm-bl: use gpio_is_valid
From: Jingoo Han @ 2013-10-23 1:52 UTC (permalink / raw)
To: 'Johan Hovold'
Cc: 'Richard Purdie', 'Nicolas Ferre', linux-fbdev,
linux-kernel, 'Jingoo Han'
In-Reply-To: <1382462819-28576-8-git-send-email-jhovold@gmail.com>
On Wednesday, October 23, 2013 2:27 AM, Johan Hovold wrote:
>
> Use gpio_is_valid rather than open coding the more restrictive != -1
> test.
>
> Signed-off-by: Johan Hovold <jhovold@gmail.com>
Acked-by: Jingoo Han <jg1.han@samsung.com>
Best regards,
Jingoo Han
> ---
> drivers/video/backlight/atmel-pwm-bl.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
^ permalink raw reply
* Re: [PATCH 8/9] backlight: atmel-pwm-bl: refactor gpio_on handling
From: Jingoo Han @ 2013-10-23 1:53 UTC (permalink / raw)
To: 'Johan Hovold'
Cc: 'Richard Purdie', 'Nicolas Ferre', linux-fbdev,
linux-kernel, 'Jingoo Han'
In-Reply-To: <1382462819-28576-9-git-send-email-jhovold@gmail.com>
On Wednesday, October 23, 2013 2:27 AM, Johan Hovold wrote:
>
> Add helper function to control the gpio_on signal.
>
> Signed-off-by: Johan Hovold <jhovold@gmail.com>
Acked-by: Jingoo Han <jg1.han@samsung.com>
Best regards,
Jingoo Han
> ---
> drivers/video/backlight/atmel-pwm-bl.c | 23 +++++++++++------------
> 1 file changed, 11 insertions(+), 12 deletions(-)
^ permalink raw reply
* Re: [PATCH 9/9] backlight: atmel-pwm-bl: use gpio_request_one
From: Jingoo Han @ 2013-10-23 1:54 UTC (permalink / raw)
To: 'Johan Hovold'
Cc: 'Richard Purdie', 'Nicolas Ferre', linux-fbdev,
linux-kernel, 'Jingoo Han'
In-Reply-To: <1382462819-28576-10-git-send-email-jhovold@gmail.com>
On Wednesday, October 23, 2013 2:27 AM, Johan Hovold wrote:
>
> Use devm_gpio_request_one rather than requesting and setting direction
> in two calls.
>
> Signed-off-by: Johan Hovold <jhovold@gmail.com>
Acked-by: Jingoo Han <jg1.han@samsung.com>
Best regards,
Jingoo Han
> ---
> drivers/video/backlight/atmel-pwm-bl.c | 15 ++++++++-------
> 1 file changed, 8 insertions(+), 7 deletions(-)
^ permalink raw reply
* Re: How to set fops in "struct platform_pwm_backlight_data"?
From: Mark Zhang @ 2013-10-23 2:16 UTC (permalink / raw)
To: Thierry Reding
Cc: rpurdie, jg1.han, Jean-Christophe PLAGNIOL-VILLARD,
tomi.valkeinen, linux-pwm, linux-fbdev@vger.kernel.org,
linux-kernel@vger.kernel.org
In-Reply-To: <20131022124905.GA24255@ulmo.nvidia.com>
On 10/22/2013 08:49 PM, Thierry Reding wrote:
> On Tue, Oct 22, 2013 at 04:55:09PM +0800, Mark Zhang wrote:
>> On 10/22/2013 03:24 PM, Thierry Reding wrote:
>>> On Fri, Oct 18, 2013 at 12:48:12PM +0800, Mark Zhang wrote:
>> [...]
>>>>>
>>>>
>>>> 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.
Mark
> Thierry
>
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox