diff --git a/patch.sh b/patch.sh index 8e0a40e2a2dd87e4c8459b545c1940e0b0af437c..28f5eef220719e81cf0fd213af5b091929c323e1 100644 --- a/patch.sh +++ b/patch.sh @@ -135,6 +135,10 @@ mainline_fixes () { #DisplayLink fb driver (udlfb.ko) #Status: https://patchwork.kernel.org/patch/1361471/ # ${git} "${DIR}/patches/mainline-fixes/0003-ARM-export-read_current_timer.patch" + + ${git} "${DIR}/patches/mainline-fixes/0001-OMAPDSS-DSI-fix-dsi_get_dsidev_from_id.patch" + ${git} "${DIR}/patches/mainline-fixes/0002-omapdss-dss-Fix-clocks-on-OMAP363x.patch" + ${git} "${DIR}/patches/mainline-fixes/0003-OMAPDSS-HDMI-fix-missing-unlock-on-error-in-hdmi_dum.patch" } debug () { @@ -182,7 +186,7 @@ panda omap_fixes sgx mainline_fixes -omap_pm +#omap_pm #omap3isp diff --git a/patches/defconfig b/patches/defconfig index ba41bf2ed14890e61e978c73495dfd41e4256963..1407b23ace00054c019d6d5be122202d1b135189 100644 --- a/patches/defconfig +++ b/patches/defconfig @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 3.7.0-rc3 Kernel Configuration +# Linux/arm 3.7.0-rc4 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y diff --git a/patches/mainline-fixes/0001-OMAPDSS-DSI-fix-dsi_get_dsidev_from_id.patch b/patches/mainline-fixes/0001-OMAPDSS-DSI-fix-dsi_get_dsidev_from_id.patch new file mode 100644 index 0000000000000000000000000000000000000000..33fbaeb4e091e6df92c5f54651ba2db6096e5ef2 --- /dev/null +++ b/patches/mainline-fixes/0001-OMAPDSS-DSI-fix-dsi_get_dsidev_from_id.patch @@ -0,0 +1,52 @@ +From cf2fb25cd2711f854ba1c4d580376a71d83cccd5 Mon Sep 17 00:00:00 2001 +From: Tomi Valkeinen <tomi.valkeinen@ti.com> +Date: Mon, 15 Oct 2012 12:48:11 +0300 +Subject: [PATCH 1/3] OMAPDSS: DSI: fix dsi_get_dsidev_from_id() + +If dsi_get_dsidev_from_id() is called with a DSI module id that does not +exist on the board, the function will crash as omap_dss_get_output() +will return NULL. + +This happens on omap3 boards when dumping DSI clocks, as the dumping +code will try to get the dsidev for DSI modules 0 and 1, but omap3 only +has DSI module 0. + +Also clean up the id -> output mapping, so that if the function is +called with invalid module ID it will return NULL. + +Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> +Cc: Archit Taneja <archit@ti.com> +--- + drivers/video/omap2/dss/dsi.c | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c +index d64ac38..bee9284 100644 +--- a/drivers/video/omap2/dss/dsi.c ++++ b/drivers/video/omap2/dss/dsi.c +@@ -365,11 +365,20 @@ struct platform_device *dsi_get_dsidev_from_id(int module) + struct omap_dss_output *out; + enum omap_dss_output_id id; + +- id = module == 0 ? OMAP_DSS_OUTPUT_DSI1 : OMAP_DSS_OUTPUT_DSI2; ++ switch (module) { ++ case 0: ++ id = OMAP_DSS_OUTPUT_DSI1; ++ break; ++ case 1: ++ id = OMAP_DSS_OUTPUT_DSI2; ++ break; ++ default: ++ return NULL; ++ } + + out = omap_dss_get_output(id); + +- return out->pdev; ++ return out ? out->pdev : NULL; + } + + static inline void dsi_write_reg(struct platform_device *dsidev, +-- +1.7.10.4 + diff --git a/patches/mainline-fixes/0002-omapdss-dss-Fix-clocks-on-OMAP363x.patch b/patches/mainline-fixes/0002-omapdss-dss-Fix-clocks-on-OMAP363x.patch new file mode 100644 index 0000000000000000000000000000000000000000..78066fc21b65fa9302806fe8b0aeca8bb14a7368 --- /dev/null +++ b/patches/mainline-fixes/0002-omapdss-dss-Fix-clocks-on-OMAP363x.patch @@ -0,0 +1,40 @@ +From 36c07f829f53f04f9fe27f027df5719591d09e10 Mon Sep 17 00:00:00 2001 +From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> +Date: Thu, 25 Oct 2012 20:42:10 +0200 +Subject: [PATCH 2/3] omapdss: dss: Fix clocks on OMAP363x + +Commit 185bae1095188aa199c9be64d6030d8dbfc65e0a ("OMAPDSS: DSS: Cleanup +cpu_is_xxxx checks") broke the DSS clocks configuration by erroneously +using the clock parameters applicable to all other OMAP34xx SoCs for the +OMAP363x. This went unnoticed probably because the cpu_is_omap34xx() +class check wasn't seen as matching the OMAP363x subclass. + +Fix it by checking for the OMAP363x subclass before checking for the +OMAP34xx class. + +Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> +Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> +--- + drivers/video/omap2/dss/dss.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c +index 2ab1c3e..0bb7406 100644 +--- a/drivers/video/omap2/dss/dss.c ++++ b/drivers/video/omap2/dss/dss.c +@@ -805,10 +805,10 @@ static int __init dss_init_features(struct device *dev) + + if (cpu_is_omap24xx()) + src = &omap24xx_dss_feats; +- else if (cpu_is_omap34xx()) +- src = &omap34xx_dss_feats; + else if (cpu_is_omap3630()) + src = &omap3630_dss_feats; ++ else if (cpu_is_omap34xx()) ++ src = &omap34xx_dss_feats; + else if (cpu_is_omap44xx()) + src = &omap44xx_dss_feats; + else if (soc_is_omap54xx()) +-- +1.7.10.4 + diff --git a/patches/mainline-fixes/0003-OMAPDSS-HDMI-fix-missing-unlock-on-error-in-hdmi_dum.patch b/patches/mainline-fixes/0003-OMAPDSS-HDMI-fix-missing-unlock-on-error-in-hdmi_dum.patch new file mode 100644 index 0000000000000000000000000000000000000000..12348390f3a22eef055b82eae7b696d3732079b8 --- /dev/null +++ b/patches/mainline-fixes/0003-OMAPDSS-HDMI-fix-missing-unlock-on-error-in-hdmi_dum.patch @@ -0,0 +1,35 @@ +From beed8bd5227cdd9fb17c64faa78fe06160927c15 Mon Sep 17 00:00:00 2001 +From: Wei Yongjun <yongjun_wei@trendmicro.com.cn> +Date: Sun, 21 Oct 2012 20:54:26 +0800 +Subject: [PATCH 3/3] OMAPDSS: HDMI: fix missing unlock on error in + hdmi_dump_regs() + +Add the missing unlock on the error handling path in function +hdmi_dump_regs(). + +Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> +Reviewed-by: Sumit Semwal <sumit.semwal@ti.com> +Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> +--- + drivers/video/omap2/dss/hdmi.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c +index a48a7dd..8c9b8b3 100644 +--- a/drivers/video/omap2/dss/hdmi.c ++++ b/drivers/video/omap2/dss/hdmi.c +@@ -644,8 +644,10 @@ static void hdmi_dump_regs(struct seq_file *s) + { + mutex_lock(&hdmi.lock); + +- if (hdmi_runtime_get()) ++ if (hdmi_runtime_get()) { ++ mutex_unlock(&hdmi.lock); + return; ++ } + + hdmi.ip_data.ops->dump_wrapper(&hdmi.ip_data, s); + hdmi.ip_data.ops->dump_pll(&hdmi.ip_data, s); +-- +1.7.10.4 + diff --git a/version.sh b/version.sh index ff2075a1644e45b900ff163d3d8d4117daf65ce6..6f9659d0ae83815b238384fd62b7e75b0ab4e2a6 100644 --- a/version.sh +++ b/version.sh @@ -23,7 +23,7 @@ config="omap2plus_defconfig" #Kernel/Build KERNEL_REL=3.7 KERNEL_TAG=${KERNEL_REL}-rc4 -BUILD=d0 +BUILD=d0.1 #git branch #BRANCH="v3.7.x"