80 lines
2.1 KiB
Diff
80 lines
2.1 KiB
Diff
From 9f8f1613253656f155b3844c8255a560f86e0acd Mon Sep 17 00:00:00 2001
|
|
From: =?utf-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@nokia.com>
|
|
Date: Mon, 6 Apr 2009 17:32:05 +0200
|
|
Subject: [PATCH] DSS2: Check scaling limits against proper values
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=utf-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Move the ilace and fieldmode related height adjustments to be performed
|
|
before checking the scaling limits.
|
|
|
|
Signed-off-by: Ville Syrjälä <ville.syrjala@nokia.com>
|
|
---
|
|
drivers/video/omap2/dss/dispc.c | 31 ++++++++++++++++---------------
|
|
1 files changed, 16 insertions(+), 15 deletions(-)
|
|
|
|
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
|
|
index 61861d8..ae7be3d 100644
|
|
--- a/drivers/video/omap2/dss/dispc.c
|
|
+++ b/drivers/video/omap2/dss/dispc.c
|
|
@@ -1366,10 +1366,25 @@ static int _dispc_setup_plane(enum omap_plane plane,
|
|
unsigned offset0, offset1;
|
|
s32 row_inc;
|
|
s32 pix_inc;
|
|
+ u16 frame_height = height;
|
|
|
|
if (paddr == 0)
|
|
return -EINVAL;
|
|
|
|
+ if (ilace && height >= out_height)
|
|
+ fieldmode = 1;
|
|
+
|
|
+ if (ilace) {
|
|
+ if (fieldmode)
|
|
+ height /= 2;
|
|
+ pos_y /= 2;
|
|
+ out_height /= 2;
|
|
+
|
|
+ DSSDBG("adjusting for ilace: height %d, pos_y %d, "
|
|
+ "out_height %d\n",
|
|
+ height, pos_y, out_height);
|
|
+ }
|
|
+
|
|
if (plane == OMAP_DSS_GFX) {
|
|
if (width != out_width || height != out_height)
|
|
return -EINVAL;
|
|
@@ -1448,28 +1463,14 @@ static int _dispc_setup_plane(enum omap_plane plane,
|
|
return -EINVAL;
|
|
}
|
|
|
|
- if (ilace && height >= out_height)
|
|
- fieldmode = 1;
|
|
-
|
|
calc_rotation_offset(rotation, mirror,
|
|
- screen_width, width, height, color_mode,
|
|
+ screen_width, width, frame_height, color_mode,
|
|
fieldmode,
|
|
&offset0, &offset1, &row_inc, &pix_inc);
|
|
|
|
DSSDBG("offset0 %u, offset1 %u, row_inc %d, pix_inc %d\n",
|
|
offset0, offset1, row_inc, pix_inc);
|
|
|
|
- if (ilace) {
|
|
- if (fieldmode)
|
|
- height /= 2;
|
|
- pos_y /= 2;
|
|
- out_height /= 2;
|
|
-
|
|
- DSSDBG("adjusting for ilace: height %d, pos_y %d, "
|
|
- "out_height %d\n",
|
|
- height, pos_y, out_height);
|
|
- }
|
|
-
|
|
_dispc_set_channel_out(plane, channel_out);
|
|
_dispc_set_color_mode(plane, color_mode);
|
|
|
|
--
|
|
1.5.6.5
|
|
|