[oe-commits] Koen Kooi : linux-omap 2.6.29: add more dss2 patches

GIT User account git at amethyst.openembedded.net
Sat Apr 18 16:41:21 UTC 2009


Module: openembedded.git
Branch: org.openembedded.dev
Commit: 7361f1735d212b6be9e92d3015f843cf09fae653
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=7361f1735d212b6be9e92d3015f843cf09fae653

Author: Koen Kooi <koen at openembedded.org>
Date:   Sat Apr 18 18:36:42 2009 +0200

linux-omap 2.6.29: add more dss2 patches

---

 conf/machine/include/omap3.inc                     |    2 +-
 ...2-do-bootmem-reserve-for-exclusive-access.patch |   33 ++++++++
 ...DSS2-Fix-DISPC_VID_FIR-value-for-omap34xx.patch |   35 ++++++++
 .../dss2/0033-DSS2-Prefer-3-tap-filter.patch       |   82 ++++++++++++++++++++
 recipes/linux/linux-omap_2.6.29.bb                 |    3 +
 5 files changed, 154 insertions(+), 1 deletions(-)

diff --git a/conf/machine/include/omap3.inc b/conf/machine/include/omap3.inc
index f4c0d37..f4fb534 100644
--- a/conf/machine/include/omap3.inc
+++ b/conf/machine/include/omap3.inc
@@ -1,7 +1,7 @@
 require conf/machine/include/tune-cortexa8.inc
 PREFERRED_PROVIDER_virtual/kernel = "linux-omap"
 # Increase this everytime you change something in the kernel
-MACHINE_KERNEL_PR = "r27" 
+MACHINE_KERNEL_PR = "r28" 
 
 KERNEL_IMAGETYPE = "uImage"
 
diff --git a/recipes/linux/linux-omap-2.6.29/dss2/0031-DSS2-do-bootmem-reserve-for-exclusive-access.patch b/recipes/linux/linux-omap-2.6.29/dss2/0031-DSS2-do-bootmem-reserve-for-exclusive-access.patch
new file mode 100644
index 0000000..ae777ed
--- /dev/null
+++ b/recipes/linux/linux-omap-2.6.29/dss2/0031-DSS2-do-bootmem-reserve-for-exclusive-access.patch
@@ -0,0 +1,33 @@
+From 30c40f5e6b1794430f678bf23d3319354321cab7 Mon Sep 17 00:00:00 2001
+From: Imre Deak <imre.deak at nokia.com>
+Date: Tue, 14 Apr 2009 14:50:11 +0200
+Subject: [PATCH] DSS2: do bootmem reserve for exclusive access
+
+BOOTMEM_DEFAULT would allow multiple reservations for the same location,
+we need to reserve the region for our exclusive use. Also check if the
+reserve succeeded.
+
+Signed-off-by: Imre Deak <imre.deak at nokia.com>
+---
+ arch/arm/plat-omap/vram.c |    5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/plat-omap/vram.c b/arch/arm/plat-omap/vram.c
+index f24a110..520f260 100644
+--- a/arch/arm/plat-omap/vram.c
++++ b/arch/arm/plat-omap/vram.c
+@@ -524,7 +524,10 @@ void __init omapfb_reserve_sdram(void)
+ 			return;
+ 		}
+ 
+-		reserve_bootmem(paddr, size, BOOTMEM_DEFAULT);
++		if (reserve_bootmem(paddr, size, BOOTMEM_EXCLUSIVE) < 0) {
++			pr_err("FB: failed to reserve VRAM\n");
++			return;
++		}
+ 	} else {
+ 		if (size > sdram_size) {
+ 			printk(KERN_ERR "Illegal SDRAM size for VRAM\n");
+-- 
+1.5.6.5
+
diff --git a/recipes/linux/linux-omap-2.6.29/dss2/0032-DSS2-Fix-DISPC_VID_FIR-value-for-omap34xx.patch b/recipes/linux/linux-omap-2.6.29/dss2/0032-DSS2-Fix-DISPC_VID_FIR-value-for-omap34xx.patch
new file mode 100644
index 0000000..4959a76
--- /dev/null
+++ b/recipes/linux/linux-omap-2.6.29/dss2/0032-DSS2-Fix-DISPC_VID_FIR-value-for-omap34xx.patch
@@ -0,0 +1,35 @@
+From ed7a9223f6785be03951c55f3b0695b0d5635c80 Mon Sep 17 00:00:00 2001
+From: =?utf-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala at nokia.com>
+Date: Thu, 9 Apr 2009 15:04:44 +0200
+Subject: [PATCH] DSS2: Fix DISPC_VID_FIR value for omap34xx
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf-8
+Content-Transfer-Encoding: 8bit
+
+The msbs of the DISPC_VID_FIR fields were incorrectly masked out on
+omap34xx and thus 4:1 downscale did not work correctly.
+
+Signed-off-by: Ville Syrjälä <ville.syrjala at nokia.com>
+---
+ drivers/video/omap2/dss/dispc.c |    5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
+index 076d3d4..b8a3329 100644
+--- a/drivers/video/omap2/dss/dispc.c
++++ b/drivers/video/omap2/dss/dispc.c
+@@ -994,7 +994,10 @@ static void _dispc_set_fir(enum omap_plane plane, int hinc, int vinc)
+ 
+ 	BUG_ON(plane == OMAP_DSS_GFX);
+ 
+-	val = FLD_VAL(vinc, 27, 16) | FLD_VAL(hinc, 11, 0);
++	if (cpu_is_omap24xx())
++		val = FLD_VAL(vinc, 27, 16) | FLD_VAL(hinc, 11, 0);
++	else
++		val = FLD_VAL(vinc, 28, 16) | FLD_VAL(hinc, 12, 0);
+ 	dispc_write_reg(fir_reg[plane-1], val);
+ }
+ 
+-- 
+1.5.6.5
+
diff --git a/recipes/linux/linux-omap-2.6.29/dss2/0033-DSS2-Prefer-3-tap-filter.patch b/recipes/linux/linux-omap-2.6.29/dss2/0033-DSS2-Prefer-3-tap-filter.patch
new file mode 100644
index 0000000..f643ca6
--- /dev/null
+++ b/recipes/linux/linux-omap-2.6.29/dss2/0033-DSS2-Prefer-3-tap-filter.patch
@@ -0,0 +1,82 @@
+From 5390230ed12585a79683733209db34e9130b8e3b Mon Sep 17 00:00:00 2001
+From: =?utf-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala at nokia.com>
+Date: Thu, 9 Apr 2009 15:04:43 +0200
+Subject: [PATCH] DSS2: Prefer 3-tap filter
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf-8
+Content-Transfer-Encoding: 8bit
+
+The 5-tap filter seems rather unstable. With some scaling settings it
+works and with some it doesn't even though the functional clock remains
+within the TRM limits. So prefer the 3-tap filter unless the functional
+clock required for it is too high.
+
+Signed-off-by: Ville Syrjälä <ville.syrjala at nokia.com>
+---
+ drivers/video/omap2/dss/dispc.c |   27 ++++++++++++---------------
+ 1 files changed, 12 insertions(+), 15 deletions(-)
+
+diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
+index b8a3329..b631dd8 100644
+--- a/drivers/video/omap2/dss/dispc.c
++++ b/drivers/video/omap2/dss/dispc.c
+@@ -1405,15 +1405,10 @@ static unsigned long calc_fclk_five_taps(u16 width, u16 height,
+ }
+ 
+ static unsigned long calc_fclk(u16 width, u16 height,
+-		u16 out_width, u16 out_height,
+-		enum omap_color_mode color_mode, bool five_taps)
++		u16 out_width, u16 out_height)
+ {
+ 	unsigned int hf, vf;
+ 
+-	if (five_taps)
+-		return calc_fclk_five_taps(width, height,
+-				out_width, out_height, color_mode);
+-
+ 	/*
+ 	 * FIXME how to determine the 'A' factor
+ 	 * for the no downscaling case ?
+@@ -1494,7 +1489,7 @@ static int _dispc_setup_plane(enum omap_plane plane,
+ 	} else {
+ 		/* video plane */
+ 
+-		unsigned long fclk;
++		unsigned long fclk = 0;
+ 
+ 		if (out_width < width / maxdownscale ||
+ 		   out_width > width * 8)
+@@ -1530,20 +1525,22 @@ static int _dispc_setup_plane(enum omap_plane plane,
+ 		/* Must use 5-tap filter? */
+ 		five_taps = height > out_height * 2;
+ 
+-		/* Try to use 5-tap filter whenever possible. */
+-		if (cpu_is_omap34xx() && !five_taps &&
+-		    height > out_height && width <= 1024) {
+-			fclk = calc_fclk_five_taps(width, height,
+-					out_width, out_height, color_mode);
+-			if (fclk <= dispc_fclk_rate())
++		if (!five_taps) {
++			fclk = calc_fclk(width, height,
++					out_width, out_height);
++
++			/* Try 5-tap filter if 3-tap fclk is too high */
++			if (cpu_is_omap34xx() && height > out_height &&
++					fclk > dispc_fclk_rate())
+ 				five_taps = true;
+ 		}
+ 
+ 		if (width > (2048 >> five_taps))
+ 			return -EINVAL;
+ 
+-		fclk = calc_fclk(width, height, out_width, out_height,
+-				color_mode, five_taps);
++		if (five_taps)
++			fclk = calc_fclk_five_taps(width, height,
++					out_width, out_height, color_mode);
+ 
+ 		DSSDBG("required fclk rate = %lu Hz\n", fclk);
+ 		DSSDBG("current fclk rate = %lu Hz\n", dispc_fclk_rate());
+-- 
+1.5.6.5
+
diff --git a/recipes/linux/linux-omap_2.6.29.bb b/recipes/linux/linux-omap_2.6.29.bb
index f70fc9b..da2ecbd 100644
--- a/recipes/linux/linux-omap_2.6.29.bb
+++ b/recipes/linux/linux-omap_2.6.29.bb
@@ -51,6 +51,9 @@ SRC_URI_append = " \
            file://dss2/0028-DSS2-OMAPFB-Added-support-for-the-YUV-VRFB-rotatio.patch;patch=1 \
            file://dss2/0029-DSS2-OMAPFB-Set-line_length-correctly-for-YUV-with.patch;patch=1 \
            file://dss2/0030-DSS2-dispc_get_trans_key-was-returning-wrong-key-ty.patch;patch=1 \
+           file://dss2/0031-DSS2-do-bootmem-reserve-for-exclusive-access.patch;patch=1 \
+           file://dss2/0032-DSS2-Fix-DISPC_VID_FIR-value-for-omap34xx.patch;patch=1 \
+           file://dss2/0033-DSS2-Prefer-3-tap-filter.patch;patch=1 \
            file://0001-board-ldp-add-regulator-info-to-get-the-microSD-slo.patch;patch=1 \
            file://fix-unaligned-access.diff;patch=1 \
            file://make-alignment-visible.diff;patch=1 \





More information about the Openembedded-commits mailing list