omap24xx: Fix n810 LCD initialization
authorMichael Büsch <mb@bu3sch.de>
Sun, 30 Oct 2011 20:31:45 +0000 (20:31 +0000)
committerMichael Büsch <mb@bu3sch.de>
Sun, 30 Oct 2011 20:31:45 +0000 (20:31 +0000)
SVN-Revision: 28685

target/linux/omap24xx/patches-3.1/300-cbus-platform.patch
target/linux/omap24xx/patches-3.1/310-n810-lcd.patch
target/linux/omap24xx/patches-3.1/311-omapfb-clock-fixes.patch [new file with mode: 0644]
target/linux/omap24xx/patches-3.1/312-no-hwmod-reset.patch [new file with mode: 0644]

index dc381049da44c6753e67fd2c1731441986859862..abc724359a0d3d5022f137ffab97e392debf43cc 100644 (file)
@@ -1,7 +1,7 @@
 Index: linux-3.1/arch/arm/mach-omap2/board-n8x0.c
 ===================================================================
---- linux-3.1.orig/arch/arm/mach-omap2/board-n8x0.c    2011-10-30 19:31:54.096705150 +0100
-+++ linux-3.1/arch/arm/mach-omap2/board-n8x0.c 2011-10-30 19:34:46.537525210 +0100
+--- linux-3.1.orig/arch/arm/mach-omap2/board-n8x0.c    2011-10-30 21:04:56.008818251 +0100
++++ linux-3.1/arch/arm/mach-omap2/board-n8x0.c 2011-10-30 21:14:31.600257909 +0100
 @@ -15,8 +15,11 @@
  #include <linux/delay.h>
  #include <linux/gpio.h>
@@ -137,7 +137,7 @@ Index: linux-3.1/arch/arm/mach-omap2/board-n8x0.c
 Index: linux-3.1/include/linux/platform_data/cbus.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.1/include/linux/platform_data/cbus.h       2011-10-30 19:31:55.452679772 +0100
++++ linux-3.1/include/linux/platform_data/cbus.h       2011-10-30 21:05:07.540709042 +0100
 @@ -0,0 +1,38 @@
 +/*
 + * cbus.h - CBUS platform_data definition
index 614a76fa47d3630006c9cf1589f8f18300816260..5ac1360e0bc7397898cefe149447360e94a35ae2 100644 (file)
@@ -1,7 +1,7 @@
 Index: linux-3.1/arch/arm/mach-omap2/board-n8x0.c
 ===================================================================
---- linux-3.1.orig/arch/arm/mach-omap2/board-n8x0.c    2011-10-30 19:31:22.825292085 +0100
-+++ linux-3.1/arch/arm/mach-omap2/board-n8x0.c 2011-10-30 19:31:25.817235793 +0100
+--- linux-3.1.orig/arch/arm/mach-omap2/board-n8x0.c    2011-10-30 21:14:31.600257909 +0100
++++ linux-3.1/arch/arm/mach-omap2/board-n8x0.c 2011-10-30 21:14:46.712140689 +0100
 @@ -24,6 +24,7 @@
  #include <linux/spi/spi.h>
  #include <linux/usb/musb.h>
@@ -127,8 +127,8 @@ Index: linux-3.1/arch/arm/mach-omap2/board-n8x0.c
 Index: linux-3.1/arch/arm/mach-omap2/board-n8x0-lcd.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.1/arch/arm/mach-omap2/board-n8x0-lcd.c     2011-10-30 19:31:25.817235793 +0100
-@@ -0,0 +1,229 @@
++++ linux-3.1/arch/arm/mach-omap2/board-n8x0-lcd.c     2011-10-30 21:14:46.712140689 +0100
+@@ -0,0 +1,231 @@
 +/*
 + * linux/arch/arm/mach-omap2/board-n8x0.c
 + *
@@ -208,6 +208,8 @@ Index: linux-3.1/arch/arm/mach-omap2/board-n8x0-lcd.c
 +
 +      dev_set_drvdata(pd->dev, pd);
 +      tahvo_pwm = pd;
++
++      return 0;
 +}
 +
 +static struct platform_driver n8x0_tahvo_pwm_driver = {
@@ -360,8 +362,8 @@ Index: linux-3.1/arch/arm/mach-omap2/board-n8x0-lcd.c
 +}
 Index: linux-3.1/arch/arm/mach-omap2/Makefile
 ===================================================================
---- linux-3.1.orig/arch/arm/mach-omap2/Makefile        2011-10-30 19:14:57.705562343 +0100
-+++ linux-3.1/arch/arm/mach-omap2/Makefile     2011-10-30 19:31:25.817235793 +0100
+--- linux-3.1.orig/arch/arm/mach-omap2/Makefile        2011-10-30 21:14:31.608257847 +0100
++++ linux-3.1/arch/arm/mach-omap2/Makefile     2011-10-30 21:14:46.712140689 +0100
 @@ -209,6 +209,7 @@ obj-$(CONFIG_MACH_OMAP_3430SDP)            += boar
                                           hsmmc.o \
                                           board-flash.o
@@ -370,15 +372,3 @@ Index: linux-3.1/arch/arm/mach-omap2/Makefile
  obj-$(CONFIG_MACH_NOKIA_RM680)                += board-rm680.o \
                                           sdram-nokia.o \
                                           hsmmc.o
-Index: linux-3.1/arch/arm/mach-omap2/omap_hwmod_2420_data.c
-===================================================================
---- linux-3.1.orig/arch/arm/mach-omap2/omap_hwmod_2420_data.c  2011-10-30 19:14:57.689562700 +0100
-+++ linux-3.1/arch/arm/mach-omap2/omap_hwmod_2420_data.c       2011-10-30 19:31:25.817235793 +0100
-@@ -1181,6 +1181,7 @@ static struct omap_hwmod_ocp_if *omap242
- static struct omap_hwmod omap2420_gpio1_hwmod = {
-       .name           = "gpio1",
-+      .flags          = HWMOD_INIT_NO_RESET, /* Workaround: Don't reset the n810 MIPID */
-       .flags          = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
-       .mpu_irqs       = omap2_gpio1_irqs,
-       .main_clk       = "gpios_fck",
diff --git a/target/linux/omap24xx/patches-3.1/311-omapfb-clock-fixes.patch b/target/linux/omap24xx/patches-3.1/311-omapfb-clock-fixes.patch
new file mode 100644 (file)
index 0000000..668828a
--- /dev/null
@@ -0,0 +1,34 @@
+Index: linux-3.1/drivers/video/omap/dispc.c
+===================================================================
+--- linux-3.1.orig/drivers/video/omap/dispc.c  2011-10-30 21:14:30.228268542 +0100
++++ linux-3.1/drivers/video/omap/dispc.c       2011-10-30 21:14:49.416119695 +0100
+@@ -922,14 +922,14 @@ static int get_dss_clocks(void)
+               return PTR_ERR(dispc.dss_ick);
+       }
+-      dispc.dss1_fck = clk_get(&dispc.fbdev->dssdev->dev, "fck");
++      dispc.dss1_fck = clk_get(&dispc.fbdev->dssdev->dev, "dss1_fck");
+       if (IS_ERR(dispc.dss1_fck)) {
+               dev_err(dispc.fbdev->dev, "can't get dss1_fck\n");
+               clk_put(dispc.dss_ick);
+               return PTR_ERR(dispc.dss1_fck);
+       }
+-      dispc.dss_54m_fck = clk_get(&dispc.fbdev->dssdev->dev, "tv_clk");
++      dispc.dss_54m_fck = clk_get(&dispc.fbdev->dssdev->dev, "dss_54m_fck");
+       if (IS_ERR(dispc.dss_54m_fck)) {
+               dev_err(dispc.fbdev->dev, "can't get tv_fck\n");
+               clk_put(dispc.dss_ick);
+Index: linux-3.1/drivers/video/omap/rfbi.c
+===================================================================
+--- linux-3.1.orig/drivers/video/omap/rfbi.c   2011-10-30 21:14:30.220268604 +0100
++++ linux-3.1/drivers/video/omap/rfbi.c        2011-10-30 21:14:49.416119695 +0100
+@@ -90,7 +90,7 @@ static int rfbi_get_clocks(void)
+               return PTR_ERR(rfbi.dss_ick);
+       }
+-      rfbi.dss1_fck = clk_get(&rfbi.fbdev->dssdev->dev, "fck");
++      rfbi.dss1_fck = clk_get(&rfbi.fbdev->dssdev->dev, "dss1_fck");
+       if (IS_ERR(rfbi.dss1_fck)) {
+               dev_err(rfbi.fbdev->dev, "can't get dss1_fck\n");
+               clk_put(rfbi.dss_ick);
diff --git a/target/linux/omap24xx/patches-3.1/312-no-hwmod-reset.patch b/target/linux/omap24xx/patches-3.1/312-no-hwmod-reset.patch
new file mode 100644 (file)
index 0000000..f0fe027
--- /dev/null
@@ -0,0 +1,30 @@
+Index: linux-3.1/arch/arm/mach-omap2/omap_hwmod.c
+===================================================================
+--- linux-3.1.orig/arch/arm/mach-omap2/omap_hwmod.c    2011-10-30 21:20:19.205515660 +0100
++++ linux-3.1/arch/arm/mach-omap2/omap_hwmod.c 2011-10-30 21:28:16.769945954 +0100
+@@ -145,6 +145,8 @@
+ #include <plat/omap_hwmod.h>
+ #include <plat/prcm.h>
++#include <asm/mach-types.h>
++
+ #include "cm2xxx_3xxx.h"
+ #include "cminst44xx.h"
+ #include "prm2xxx_3xxx.h"
+@@ -1704,6 +1706,16 @@ static int _setup(struct omap_hwmod *oh,
+       oh->_state = _HWMOD_STATE_INITIALIZED;
++      if (machine_is_nokia770() ||
++          machine_is_nokia_n800() ||
++          machine_is_nokia_n810() ||
++          machine_is_nokia_n810_wimax()) {
++              /* Nokia N-series workaround: Don't reset any hwmod. Some drivers expect
++               * the NOLO bootloader initializations to be effective. */
++              oh->flags |= HWMOD_INIT_NO_RESET;
++              printk_once(KERN_INFO "Nokia N-series HWMOD_INIT_NO_RESET workaround enabled\n");
++      }
++
+       /*
+        * In the case of hwmod with hardreset that should not be
+        * de-assert at boot time, we have to keep the module