From e77f6c670dc6407be41ab8e890381c355b291c10 Mon Sep 17 00:00:00 2001 From: mb Date: Sun, 30 Oct 2011 20:31:45 +0000 Subject: [PATCH] omap24xx: Fix n810 LCD initialization git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28685 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../patches-3.1/300-cbus-platform.patch | 6 ++-- .../omap24xx/patches-3.1/310-n810-lcd.patch | 26 +++++--------- .../patches-3.1/311-omapfb-clock-fixes.patch | 34 +++++++++++++++++++ .../patches-3.1/312-no-hwmod-reset.patch | 30 ++++++++++++++++ 4 files changed, 75 insertions(+), 21 deletions(-) create mode 100644 target/linux/omap24xx/patches-3.1/311-omapfb-clock-fixes.patch create mode 100644 target/linux/omap24xx/patches-3.1/312-no-hwmod-reset.patch diff --git a/target/linux/omap24xx/patches-3.1/300-cbus-platform.patch b/target/linux/omap24xx/patches-3.1/300-cbus-platform.patch index dc381049d..abc724359 100644 --- a/target/linux/omap24xx/patches-3.1/300-cbus-platform.patch +++ b/target/linux/omap24xx/patches-3.1/300-cbus-platform.patch @@ -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 #include @@ -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 diff --git a/target/linux/omap24xx/patches-3.1/310-n810-lcd.patch b/target/linux/omap24xx/patches-3.1/310-n810-lcd.patch index 614a76fa4..5ac1360e0 100644 --- a/target/linux/omap24xx/patches-3.1/310-n810-lcd.patch +++ b/target/linux/omap24xx/patches-3.1/310-n810-lcd.patch @@ -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 #include @@ -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 index 000000000..668828ad8 --- /dev/null +++ b/target/linux/omap24xx/patches-3.1/311-omapfb-clock-fixes.patch @@ -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 index 000000000..f0fe02753 --- /dev/null +++ b/target/linux/omap24xx/patches-3.1/312-no-hwmod-reset.patch @@ -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 + #include + ++#include ++ + #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 -- 2.20.1