From e7f3146191b4a5c4e160ae1b585ec4fd8f99e6b0 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Fri, 7 Sep 2012 18:25:31 -0300 Subject: linux-imx (2.6.35.3): mx5: Fix IPU hang when framebuffer is enabled in U-boot If bootloader enableds framebuffer, it is necessary to turn off IPU early in the boot process to avoid kernel hang. Signed-off-by: Fabio Estevam Signed-off-by: Otavio Salvador --- .../mx5-fix-hang-with-framebuffer.patch | 59 ++++++++++++++++++++++ recipes-kernel/linux/linux-imx_2.6.35.3.bb | 3 +- 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 recipes-kernel/linux/linux-imx-2.6.35.3/mx5-fix-hang-with-framebuffer.patch (limited to 'recipes-kernel') diff --git a/recipes-kernel/linux/linux-imx-2.6.35.3/mx5-fix-hang-with-framebuffer.patch b/recipes-kernel/linux/linux-imx-2.6.35.3/mx5-fix-hang-with-framebuffer.patch new file mode 100644 index 0000000..fa94faf --- /dev/null +++ b/recipes-kernel/linux/linux-imx-2.6.35.3/mx5-fix-hang-with-framebuffer.patch @@ -0,0 +1,59 @@ +From 3bd0148cfe28a9908ff4cbb7b542d309107591a4 Mon Sep 17 00:00:00 2001 +From: Fabio Estevam +Date: Wed, 5 Sep 2012 19:54:54 -0300 +Subject: [PATCH 1/2] ARM: mach-mx5: Fix IPU hang when framebuffer is enabled + in U-boot + +If bootloader enableds framebuffer, it is necessary to turn off IPU early in +the boot process to avoid kernel hang. + +Suggested-by: Troy Kisky +Signed-off-by: Fabio Estevam +--- + arch/arm/mach-mx5/clock.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/arch/arm/mach-mx5/clock.c b/arch/arm/mach-mx5/clock.c +index 4559876..4d5a2cc 100644 +--- a/arch/arm/mach-mx5/clock.c ++++ b/arch/arm/mach-mx5/clock.c +@@ -4453,6 +4453,20 @@ static void clk_tree_init(void) + } + } + ++#define IPU_CONF 0x000 ++#define IPU_DISP_GEN 0x0C4 ++ ++void turn_off_display(int physical_base) ++{ ++ void __iomem *ipuc = ioremap(physical_base, SZ_4K); ++ if (ipuc) { ++ /* clear DI0/DI1 counter release */ ++ unsigned reg = __raw_readl(ipuc + IPU_DISP_GEN); ++ __raw_writel(reg & ~(3 << 24), ipuc + IPU_DISP_GEN); ++ __raw_writel(0, ipuc + IPU_CONF); ++ iounmap(ipuc); ++ } ++} + + int __init mx51_clocks_init(unsigned long ckil, unsigned long osc, unsigned long ckih1, unsigned long ckih2) + { +@@ -4462,6 +4476,7 @@ int __init mx51_clocks_init(unsigned long ckil, unsigned long osc, unsigned long + int wp_cnt = 0; + u32 pll1_rate; + ++ turn_off_display(MX51_IPU_CTRL_BASE_ADDR + ((512 - 32) << 20)); + pll1_base = ioremap(PLL1_BASE_ADDR, SZ_4K); + pll2_base = ioremap(PLL2_BASE_ADDR, SZ_4K); + pll3_base = ioremap(PLL3_BASE_ADDR, SZ_4K); +@@ -4782,6 +4797,7 @@ int __init mx53_clocks_init(unsigned long ckil, unsigned long osc, unsigned long + int i = 0, j = 0, reg; + u32 pll1_rate; + ++ turn_off_display(MX53_IPU_CTRL_BASE_ADDR + ((128 - 32) << 20)); + pll1_base = ioremap(MX53_BASE_ADDR(PLL1_BASE_ADDR), SZ_4K); + pll2_base = ioremap(MX53_BASE_ADDR(PLL2_BASE_ADDR), SZ_4K); + pll3_base = ioremap(MX53_BASE_ADDR(PLL3_BASE_ADDR), SZ_4K); +-- +1.7.10.4 + diff --git a/recipes-kernel/linux/linux-imx_2.6.35.3.bb b/recipes-kernel/linux/linux-imx_2.6.35.3.bb index 439033d..a02a69d 100644 --- a/recipes-kernel/linux/linux-imx_2.6.35.3.bb +++ b/recipes-kernel/linux/linux-imx_2.6.35.3.bb @@ -1,7 +1,7 @@ # Copyright (C) 2011-2012 Freescale Semiconductor # Released under the MIT license (see COPYING.MIT for the terms) -PR = "${INC_PR}.4" +PR = "${INC_PR}.5" include linux-imx.inc @@ -29,6 +29,7 @@ SRC_URI_append_mxs = " \ " SRC_URI_append_mx5 = " \ + file://mx5-fix-hang-with-framebuffer.patch \ file://egalax_ts-enable-single-event-support.patch \ file://0001-mx53_loco-add-USR-led-support.patch \ file://002_Return_ERESTARTSYS_from_IPU_GET_EVENT.patch \ -- cgit v1.2.3-54-g00ecf From 961b6eb9d8638b26242348c6a5bdc8dc52e9e8ab Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Fri, 7 Sep 2012 18:51:33 -0300 Subject: linux-imx (2.6.35.3): perf tools: Fix build against newer glibc Upstream glibc commit 295e904 added a definition for __attribute_const__ to cdefs.h. This causes the following error when building perf: util/include/linux/compiler.h:8:0: error: "__attribute_const__" redefined [-Werror] /usr/include/sys/cdefs.h:226:0: note: this is the location of the previous definition Wrap __attribute_const__ in #ifndef as done for __always_inline. Signed-off-by: Otavio Salvador --- .../perf-tools-Fix-build-against-newer-glibc.patch | 40 ++++++++++++++++++++++ recipes-kernel/linux/linux-imx_2.6.35.3.bb | 3 +- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 recipes-kernel/linux/linux-imx-2.6.35.3/perf-tools-Fix-build-against-newer-glibc.patch (limited to 'recipes-kernel') diff --git a/recipes-kernel/linux/linux-imx-2.6.35.3/perf-tools-Fix-build-against-newer-glibc.patch b/recipes-kernel/linux/linux-imx-2.6.35.3/perf-tools-Fix-build-against-newer-glibc.patch new file mode 100644 index 0000000..b90dfda --- /dev/null +++ b/recipes-kernel/linux/linux-imx-2.6.35.3/perf-tools-Fix-build-against-newer-glibc.patch @@ -0,0 +1,40 @@ +From ee7517dc33cd8c1d10bc504faef8a085694eebe2 Mon Sep 17 00:00:00 2001 +From: Josh Boyer +Date: Thu, 18 Aug 2011 07:37:21 -0400 +Subject: [PATCH 2/2] perf tools: Fix build against newer glibc + +Upstream glibc commit 295e904 added a definition for __attribute_const__ +to cdefs.h. This causes the following error when building perf: + +util/include/linux/compiler.h:8:0: error: "__attribute_const__" +redefined [-Werror] /usr/include/sys/cdefs.h:226:0: note: this is the +location of the previous definition + +Wrap __attribute_const__ in #ifndef as we do for __always_inline. + +Cc: Ingo Molnar +Cc: Peter Zijlstra +Link: http://lkml.kernel.org/r/20110818113720.GL2227@zod.bos.redhat.com +Signed-off-by: Josh Boyer +Signed-off-by: Arnaldo Carvalho de Melo +--- + tools/perf/util/include/linux/compiler.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/tools/perf/util/include/linux/compiler.h b/tools/perf/util/include/linux/compiler.h +index 791f9dd..547628e 100644 +--- a/tools/perf/util/include/linux/compiler.h ++++ b/tools/perf/util/include/linux/compiler.h +@@ -5,7 +5,9 @@ + #define __always_inline inline + #endif + #define __user ++#ifndef __attribute_const__ + #define __attribute_const__ ++#endif + + #define __used __attribute__((__unused__)) + +-- +1.7.10.4 + diff --git a/recipes-kernel/linux/linux-imx_2.6.35.3.bb b/recipes-kernel/linux/linux-imx_2.6.35.3.bb index a02a69d..df11935 100644 --- a/recipes-kernel/linux/linux-imx_2.6.35.3.bb +++ b/recipes-kernel/linux/linux-imx_2.6.35.3.bb @@ -1,7 +1,7 @@ # Copyright (C) 2011-2012 Freescale Semiconductor # Released under the MIT license (see COPYING.MIT for the terms) -PR = "${INC_PR}.5" +PR = "${INC_PR}.6" include linux-imx.inc @@ -17,6 +17,7 @@ LOCALVERSION = "-11.09.01+yocto-${DATE}" SRC_URI += "file://NFS-Fix-nfsroot-support.patch \ file://NFS-allow-nfs-root-mount-to-use-alternate-rpc-ports.patch \ + file://perf-tools-Fix-build-against-newer-glibc.patch \ file://no-unaligned-access.patch \ file://dm9601-support-for-usb-ethernet-0x0fe6-0x9700.patch \ " -- cgit v1.2.3-54-g00ecf From 07b2445d0ab036b7c63702d2527c51f1333c4de6 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Sun, 9 Sep 2012 21:42:08 -0300 Subject: linux-imx (2.6.35.3): perf tools: Do not treat warnings as errors Newer GCC detect more warnings and this makes building of perf not possible in the upcoming release of Yocto (1.3). We deal with that making the warnings not fatal instead of changing perf code. Signed-off-by: Otavio Salvador --- ...erf-tools-Do-not-treat-warnings-as-errors.patch | 30 ++++++++++++++++++++++ recipes-kernel/linux/linux-imx_2.6.35.3.bb | 3 ++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 recipes-kernel/linux/linux-imx-2.6.35.3/perf-tools-Do-not-treat-warnings-as-errors.patch (limited to 'recipes-kernel') diff --git a/recipes-kernel/linux/linux-imx-2.6.35.3/perf-tools-Do-not-treat-warnings-as-errors.patch b/recipes-kernel/linux/linux-imx-2.6.35.3/perf-tools-Do-not-treat-warnings-as-errors.patch new file mode 100644 index 0000000..a22e45b --- /dev/null +++ b/recipes-kernel/linux/linux-imx-2.6.35.3/perf-tools-Do-not-treat-warnings-as-errors.patch @@ -0,0 +1,30 @@ +From b4084d9ae7d8ac3d7fe01cc745836313ae73afb6 Mon Sep 17 00:00:00 2001 +From: Otavio Salvador +Date: Fri, 7 Sep 2012 20:22:47 -0300 +Subject: [PATCH] perf tools: Do not treat warnings as errors + +Newer GCC detect more warnings and this makes building of perf not +possible in the upcoming release of Yocto (1.3). We deal with that +making the warnings not fatal instead of changing perf code. + +Signed-off-by: Otavio Salvador +--- + tools/perf/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/perf/Makefile b/tools/perf/Makefile +index d75c28a..854652a 100644 +--- a/tools/perf/Makefile ++++ b/tools/perf/Makefile +@@ -225,7 +225,7 @@ ifndef PERF_DEBUG + CFLAGS_OPTIMIZE = -O6 + endif + +-CFLAGS = -ggdb3 -Wall -Wextra -std=gnu99 -Werror $(CFLAGS_OPTIMIZE) -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) ++CFLAGS = -ggdb3 -Wall -Wextra -std=gnu99 $(CFLAGS_OPTIMIZE) -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) + EXTLIBS = -lpthread -lrt -lelf -lm + ALL_CFLAGS = $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 + ALL_LDFLAGS = $(LDFLAGS) +-- +1.7.10.4 + diff --git a/recipes-kernel/linux/linux-imx_2.6.35.3.bb b/recipes-kernel/linux/linux-imx_2.6.35.3.bb index df11935..4878259 100644 --- a/recipes-kernel/linux/linux-imx_2.6.35.3.bb +++ b/recipes-kernel/linux/linux-imx_2.6.35.3.bb @@ -1,7 +1,7 @@ # Copyright (C) 2011-2012 Freescale Semiconductor # Released under the MIT license (see COPYING.MIT for the terms) -PR = "${INC_PR}.6" +PR = "${INC_PR}.7" include linux-imx.inc @@ -18,6 +18,7 @@ LOCALVERSION = "-11.09.01+yocto-${DATE}" SRC_URI += "file://NFS-Fix-nfsroot-support.patch \ file://NFS-allow-nfs-root-mount-to-use-alternate-rpc-ports.patch \ file://perf-tools-Fix-build-against-newer-glibc.patch \ + file://perf-tools-Do-not-treat-warnings-as-errors.patch \ file://no-unaligned-access.patch \ file://dm9601-support-for-usb-ethernet-0x0fe6-0x9700.patch \ " -- cgit v1.2.3-54-g00ecf