[<prev] [next>] [day] [month] [year] [list]
Message-Id: <1329957361-8010-1-git-send-email-chris.diamand@gmail.com>
Date: Thu, 23 Feb 2012 00:36:01 +0000
From: Chris Diamand <chris.diamand@...il.com>
To: kristoffer.ericson@...il.com
Cc: linux-kernel@...r.kernel.org, torvalds@...ux-foundation.org,
Chris Diamand <chris.diamand@...il.com>
Subject: [PATCH] Jornada 720: Fixes "Invalid argument" when changing backlight brightness.
On jornada 720. Running:
echo n > /sys/class/backlight/s1d13806fb/brightness
would give a "write error: Invalid argument" as the max_brightness
was not set, so any value other that 0 exceeds it. Now sets
max_brightness to 255 when the module is loaded.
Backlight can also be turned on and off using
echo 0-4 > /sys/class/backlight/s1d13806fb/bl_power
Also added some extra braces so jornada720_ssp.c.
Signed-off-by: Chris Diamand <chris.diamand@...il.com>
---
arch/arm/mach-sa1100/jornada720_ssp.c | 3 ++-
drivers/video/backlight/jornada720_bllcd.c | 12 +++++-------
2 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/arch/arm/mach-sa1100/jornada720_ssp.c b/arch/arm/mach-sa1100/jornada720_ssp.c
index 7ab256a..289ae0f 100644
--- a/arch/arm/mach-sa1100/jornada720_ssp.c
+++ b/arch/arm/mach-sa1100/jornada720_ssp.c
@@ -95,9 +95,10 @@ int jornada_ssp_inout(u8 byte)
ret = jornada_ssp_byte(byte);
/* Proper return to commands is TxDummy */
if (ret != TXDUMMY) {
- for (i = 0; i < 256; i++)/* flushing bus */
+ for (i = 0; i < 256; i++) { /* flushing bus */
if (jornada_ssp_byte(TXDUMMY) == -1)
break;
+ }
return -ETIMEDOUT;
}
} else /* Exchange TxDummy for data */
diff --git a/drivers/video/backlight/jornada720_bllcd.c b/drivers/video/backlight/jornada720_bllcd.c
index 645f9ba..bc30faa 100644
--- a/drivers/video/backlight/jornada720_bllcd.c
+++ b/drivers/video/backlight/jornada720_bllcd.c
@@ -71,12 +71,11 @@ static int jornada_bl_update_status(struct backlight_device *dev)
if (dev->props.power != FB_BLANK_UNBLANK ||
dev->props.fb_blank != FB_BLANK_UNBLANK) {
ret = jornada_ssp_inout(BRIGHTNESSOFF);
- if (ret == -ETIMEDOUT) {
- printk(KERN_ERR "bl : brightness off timeout\n");
+ if (ret == -ETIMEDOUT)
+ printk(KERN_ERR "bl :brightness off timeout\n");
/* backlight off */
- PPSR &= ~PPC_LDD1;
- PPDR |= PPC_LDD1;
- }
+ PPSR &= ~PPC_LDD1;
+ PPDR |= PPC_LDD1;
} else { /* backlight on */
PPSR |= PPC_LDD1;
/* send setbrightness cmd */
@@ -233,6 +232,7 @@ static int jornada_bl_probe(struct platform_device *pdev)
bllcd->bl_device->props.power = FB_BLANK_UNBLANK;
bllcd->bl_device->props.brightness = BL_DEF_BRIGHT;
+ bllcd->bl_device->props.max_brightness = BL_MAX_BRIGHT;
jornada_bl_update_status(bllcd->bl_device);
platform_set_drvdata(pdev, bllcd);
@@ -261,7 +261,6 @@ static int jornada_bl_suspend(struct platform_device *pdev, pm_message_t state)
bllcd->bl_device->props.power = FB_BLANK_POWERDOWN;
bllcd->bl_device->props.brightness = 0;
- bllcd->bl_device->props.max_brightness = 0;
jornada_bl_update_status(bllcd->bl_device);
jornada_lcd_set_power(bllcd->lcd_device, FB_BLANK_POWERDOWN);
@@ -275,7 +274,6 @@ static int jornada_bl_resume(struct platform_device *pdev)
bllcd->bl_device->props.power = FB_BLANK_UNBLANK;
bllcd->bl_device->props.brightness = BL_DEF_BRIGHT;
- bllcd->bl_device->props.max_brightness = BL_MAX_BRIGHT;
jornada_bl_update_status(bllcd->bl_device);
jornada_lcd_set_power(bllcd->lcd_device, FB_BLANK_UNBLANK);
--
1.7.9
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists