r1222 - trunk/src/target/kernel/patches
werner at sita.openmoko.org
werner at sita.openmoko.org
Fri Mar 2 20:32:32 CET 2007
Author: werner
Date: 2007-03-02 20:32:29 +0100 (Fri, 02 Mar 2007)
New Revision: 1222
Modified:
trunk/src/target/kernel/patches/gta01-backlight.patch
Log:
drivers/video/backlight/gta01_bl.c (gta01bl_probe): moved hardware
initialization to new function gta01bl_init_hw
drivers/video/backlight/gta01_bl.c (gta01bl_init_hw): added #if 1 ... #endif
around mysterious initialization code
drivers/video/backlight/gta01_bl.c (gta01bl_resume): call gta01bl_init_hw
Modified: trunk/src/target/kernel/patches/gta01-backlight.patch
===================================================================
--- trunk/src/target/kernel/patches/gta01-backlight.patch 2007-03-02 17:47:53 UTC (rev 1221)
+++ trunk/src/target/kernel/patches/gta01-backlight.patch 2007-03-02 19:32:29 UTC (rev 1222)
@@ -1,10 +1,10 @@
This is a backlight driver for FIC's Neo1973 Phone (codename GTA01)
-Index: linux-2.6.20/drivers/video/backlight/Kconfig
+Index: linux-2.6.20.1/drivers/video/backlight/Kconfig
===================================================================
---- linux-2.6.20.orig/drivers/video/backlight/Kconfig 2007-02-15 16:26:53.000000000 +0100
-+++ linux-2.6.20/drivers/video/backlight/Kconfig 2007-02-15 16:28:11.000000000 +0100
-@@ -58,6 +58,14 @@
+--- linux-2.6.20.1.orig/drivers/video/backlight/Kconfig
++++ linux-2.6.20.1/drivers/video/backlight/Kconfig
+@@ -58,6 +58,14 @@ config BACKLIGHT_LOCOMO
If you have a Sharp Zaurus SL-5500 (Collie) or SL-5600 (Poodle) say y to
enable the LCD/backlight driver.
@@ -19,10 +19,10 @@
config BACKLIGHT_HP680
tristate "HP Jornada 680 Backlight Driver"
depends on BACKLIGHT_DEVICE && SH_HP6XX
-Index: linux-2.6.20/drivers/video/backlight/Makefile
+Index: linux-2.6.20.1/drivers/video/backlight/Makefile
===================================================================
---- linux-2.6.20.orig/drivers/video/backlight/Makefile 2007-02-15 16:26:53.000000000 +0100
-+++ linux-2.6.20/drivers/video/backlight/Makefile 2007-02-15 16:28:11.000000000 +0100
+--- linux-2.6.20.1.orig/drivers/video/backlight/Makefile
++++ linux-2.6.20.1/drivers/video/backlight/Makefile
@@ -3,5 +3,6 @@
obj-$(CONFIG_LCD_CLASS_DEVICE) += lcd.o
obj-$(CONFIG_BACKLIGHT_CLASS_DEVICE) += backlight.o
@@ -30,11 +30,11 @@
+obj-$(CONFIG_BACKLIGHT_GTA01) += gta01_bl.o
obj-$(CONFIG_BACKLIGHT_HP680) += hp680_bl.o
obj-$(CONFIG_BACKLIGHT_LOCOMO) += locomolcd.o
-Index: linux-2.6.20/drivers/video/backlight/gta01_bl.c
+Index: linux-2.6.20.1/drivers/video/backlight/gta01_bl.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.20/drivers/video/backlight/gta01_bl.c 2007-02-15 17:02:00.000000000 +0100
-@@ -0,0 +1,276 @@
+--- /dev/null
++++ linux-2.6.20.1/drivers/video/backlight/gta01_bl.c
+@@ -0,0 +1,287 @@
+/*
+ * Backlight Driver for FIC GTA01 (Neo1973) GSM Phone
+ *
@@ -136,6 +136,52 @@
+ return 0;
+}
+
++static void gta01bl_init_hw(void)
++{
++ unsigned long tcon, tcfg0, tcfg1, tcnt, pclk;
++
++ pclk = clk_get_rate(gta01bl.clk);
++
++ tcon = __raw_readl(S3C2410_TCON);
++ tcfg1 = __raw_readl(S3C2410_TCFG1);
++ tcfg0 = __raw_readl(S3C2410_TCFG0);
++
++ tcfg1 &= ~S3C2410_TCFG1_MUX0_MASK;
++ tcfg1 |= S3C2410_TCFG1_MUX0_DIV8;
++
++ tcfg0 &= ~S3C2410_TCFG_PRESCALER0_MASK;
++ tcfg0 |= (4 - 1);
++
++ tcnt = (pclk / 32) / GTA01BL_FREQ;
++ tcnt--;
++
++ __raw_writel(tcfg1, S3C2410_TCFG1);
++ __raw_writel(tcfg0, S3C2410_TCFG0);
++
++#if 1
++ __raw_writel(tcnt, S3C2410_TCNTB(0));
++ __raw_writel(tcon, S3C2410_TCON);
++ __raw_writel(tcnt, S3C2410_TCNTB(0));
++#endif
++
++ /* ensure timer is stopped */
++
++ tcon &= 0xffffff00;
++ tcon |= S3C2410_TCON_T0RELOAD;
++ tcon |= S3C2410_TCON_T0MANUALUPD;
++
++ __raw_writel(tcon, S3C2410_TCON);
++ __raw_writel(tcnt, S3C2410_TCNTB(0));
++ __raw_writel(tcnt, S3C2410_TCMPB(0));
++
++ /* start the timer */
++ tcon |= S3C2410_TCON_T0START;
++ tcon &= ~S3C2410_TCON_T0MANUALUPD;
++ __raw_writel(tcon, S3C2410_TCON);
++
++ gta01bl_prop.max_brightness = tcnt;
++}
++
+#ifdef CONFIG_PM
+static int gta01bl_suspend(struct platform_device *dev, pm_message_t state)
+{
@@ -146,6 +192,10 @@
+
+static int gta01bl_resume(struct platform_device *dev)
+{
++ mutex_lock(>a01bl.mutex);
++ gta01bl_init_hw();
++ mutex_unlock(>a01bl.mutex);
++
+ gta01bl_flags &= ~GTA01BL_SUSPENDED;
+ gta01bl_send_intensity(gta01_backlight_device);
+ return 0;
@@ -195,8 +245,6 @@
+ s3c2410_gpio_cfgpin(GTA01_GPIO_BACKLIGHT, S3C2410_GPIO_OUTPUT);
+ gta01bl_prop.max_brightness = 1;
+#else
-+ unsigned long tcon, tcfg0, tcfg1, tcnt, pclk;
-+
+ /* use s3c_device_timer0 for PWM */
+ gta01bl.clk = clk_get(NULL, "timers");
+ if (IS_ERR(gta01bl.clk))
@@ -204,44 +252,7 @@
+
+ clk_enable(gta01bl.clk);
+
-+ pclk = clk_get_rate(gta01bl.clk);
-+
-+ tcon = __raw_readl(S3C2410_TCON);
-+ tcfg1 = __raw_readl(S3C2410_TCFG1);
-+ tcfg0 = __raw_readl(S3C2410_TCFG0);
-+
-+ tcfg1 &= ~S3C2410_TCFG1_MUX0_MASK;
-+ tcfg1 |= S3C2410_TCFG1_MUX0_DIV8;
-+
-+ tcfg0 &= ~S3C2410_TCFG_PRESCALER0_MASK;
-+ tcfg0 |= (4 - 1);
-+
-+ tcnt = (pclk / 32) / GTA01BL_FREQ;
-+ tcnt--;
-+
-+ __raw_writel(tcfg1, S3C2410_TCFG1);
-+ __raw_writel(tcfg0, S3C2410_TCFG0);
-+
-+ __raw_writel(tcnt, S3C2410_TCNTB(0));
-+ __raw_writel(tcon, S3C2410_TCON);
-+ __raw_writel(tcnt, S3C2410_TCNTB(0));
-+
-+ /* ensure timer is stopped */
-+
-+ tcon &= 0xffffff00;
-+ tcon |= S3C2410_TCON_T0RELOAD;
-+ tcon |= S3C2410_TCON_T0MANUALUPD;
-+
-+ __raw_writel(tcon, S3C2410_TCON);
-+ __raw_writel(tcnt, S3C2410_TCNTB(0));
-+ __raw_writel(tcnt, S3C2410_TCMPB(0));
-+
-+ /* start the timer */
-+ tcon |= S3C2410_TCON_T0START;
-+ tcon &= ~S3C2410_TCON_T0MANUALUPD;
-+ __raw_writel(tcon, S3C2410_TCON);
-+
-+ gta01bl_prop.max_brightness = tcnt;
++ gta01bl_init_hw();
+#endif
+ mutex_init(>a01bl.mutex);
+
More information about the commitlog
mailing list