From: Mauro Carvalho Chehab Date: Wed, 30 Aug 2006 22:52:14 +0000 (-0300) Subject: V4L/DVB (4565): Fix scaling calculus X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=66440ccbf2f4077ce59c9692a2c7288201ea0171;p=deliverable%2Flinux.git V4L/DVB (4565): Fix scaling calculus Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/video/saa7115.c b/drivers/media/video/saa7115.c index 08a324f9a48d..987f540bc161 100644 --- a/drivers/media/video/saa7115.c +++ b/drivers/media/video/saa7115.c @@ -1053,7 +1053,7 @@ static int saa711x_set_size(struct i2c_client *client, int width, int height) int VSCY; int res; int is_50hz = state->std & V4L2_STD_625_50; - int Vsrc = is_50hz ? 576 : 480; + int Vsrc = is_50hz ? 576 : 480+16; v4l_dbg(1, debug, client, "decoder set size to %ix%i\n",width,height); @@ -1082,22 +1082,14 @@ static int saa711x_set_size(struct i2c_client *client, int width, int height) saa711x_write(client, R_CD_B_HORIZ_OUTPUT_WINDOW_LENGTH_MSB, (u8) ((width >> 8) & 0xff)); - if (height == Vsrc) { - /*FIXME: This code seems weird, however, this is how it is - working right now. - */ - res=height/2; - if (!is_50hz) - res+=8; - } else - res=height; + /* Vertical Scaling uses height/2 */ + res=height/2; /* height */ saa711x_write(client, R_CE_B_VERT_OUTPUT_WINDOW_LENGTH, (u8) (res & 0xff)); saa711x_write(client, R_CF_B_VERT_OUTPUT_WINDOW_LENGTH_MSB, - (u8) (res & 0xff)); - + (u8) ((res >> 8) & 0xff)); /* Scaling settings */ /* Hprescaler is floor(inres/outres) */