From e8aad52aa726f9adf105b42f9531cb45653d7be1 Mon Sep 17 00:00:00 2001 From: zyc Date: Sat, 2 Feb 2013 13:31:47 +0800 Subject: [PATCH] camera:arm_crop select wrong zone,fix it --- drivers/media/video/rk30_camera_oneframe.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/media/video/rk30_camera_oneframe.c b/drivers/media/video/rk30_camera_oneframe.c index 18a79c3e12e5..9e4f3fdb4089 100755 --- a/drivers/media/video/rk30_camera_oneframe.c +++ b/drivers/media/video/rk30_camera_oneframe.c @@ -1084,8 +1084,8 @@ static int rk_camera_scale_crop_arm(struct work_struct *work) cropW = pcdev->zoominfo.a.c.width; cropH = pcdev->zoominfo.a.c.height; - psY = psY + (srcW-cropW)/2; - psUV = psUV + (srcW-cropW)/2; + psY = psY + pcdev->zoominfo.a.c.top*pcdev->zoominfo.vir_width+pcdev->zoominfo.a.c.left; + psUV = psUV + pcdev->zoominfo.a.c.top*pcdev->zoominfo.vir_width/2+pcdev->zoominfo.a.c.left; vb_info = pcdev->vbinfo+vb->i; dst_phy = vb_info->phy_addr; @@ -1094,9 +1094,8 @@ static int rk_camera_scale_crop_arm(struct work_struct *work) dstW = pcdev->icd->user_width; dstH = pcdev->icd->user_height; - zoomindstxIntInv = ((unsigned long)cropW<<16)/dstW + 1; - zoomindstyIntInv = ((unsigned long)cropH<<16)/dstH + 1; - + zoomindstxIntInv = ((unsigned long)(cropW)<<16)/dstW + 1; + zoomindstyIntInv = ((unsigned long)(cropH)<<16)/dstH + 1; //y //for(y = 0; yhost_width = usr_w; pcdev->host_height = usr_h; } + #else //according to crop and scale capability to change , here just cropt to user needed if (unlikely((mf.width <16) || (mf.width > 8190) || (mf.height < 16) || (mf.height > 8190))) { -- 2.34.1