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"