From patchwork Wed May 18 11:12:33 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Guennadi Liakhovetski X-Patchwork-Id: 793482 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter2.kernel.org (8.14.4/8.14.3) with ESMTP id p4IBDGCh012239 for ; Wed, 18 May 2011 11:13:19 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932907Ab1ERLMi (ORCPT ); Wed, 18 May 2011 07:12:38 -0400 Received: from moutng.kundenserver.de ([212.227.17.8]:58250 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932270Ab1ERLMi convert rfc822-to-8bit (ORCPT ); Wed, 18 May 2011 07:12:38 -0400 Received: from axis700.grange (dslb-178-001-149-207.pools.arcor-ip.net [178.1.149.207]) by mrelayeu.kundenserver.de (node=mreu0) with ESMTP (Nemesis) id 0Mcixh-1Q4qiB0XRp-00Hm1p; Wed, 18 May 2011 13:12:34 +0200 Received: by axis700.grange (Postfix, from userid 1000) id 75E52E6AB4; Wed, 18 May 2011 13:12:33 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by axis700.grange (Postfix) with ESMTP id 732D6106755; Wed, 18 May 2011 13:12:33 +0200 (CEST) Date: Wed, 18 May 2011 13:12:33 +0200 (CEST) From: Guennadi Liakhovetski X-X-Sender: lyakh@axis700.grange To: =?UTF-8?q?Teresa=20G=C3=A1mez?= cc: linux-media@vger.kernel.org Subject: Re: [PATCH 2/2] mt9m111: fix pixel clock In-Reply-To: <1302098515-12176-2-git-send-email-t.gamez@phytec.de> Message-ID: References: <1302098515-12176-1-git-send-email-t.gamez@phytec.de> <1302098515-12176-2-git-send-email-t.gamez@phytec.de> MIME-Version: 1.0 X-Provags-ID: V02:K0:sw1z3lLkniR0HrNivUCUXKIdeMANvbTS7vHozVFqSRh EGr9USl0aDe/9kY9MpVblt/gBgmaA7aC7hM+CNTHHhP5cgrTzV VmVCcvidXchlOo79XnVMd+2qMRfKWhFCbNsVNU6ndyaz31mTUU LHTREGp0fFwFDme0w23+V5412qf1QUjGYhITrlkPiDvowObyWW QdcXAm8W9bzEnFgzEYYTjK1Zl9MBcVTTP0AXFLWhNY= Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter2.kernel.org [140.211.167.43]); Wed, 18 May 2011 11:13:19 +0000 (UTC) Hi Teresa I've verified the mt9v022 patch - finally I have noticed the difference, it does look correct! As for this one, how about this version of your patch: It reduces the number of I2C accesses and avoids writing some not necessarily desired value to the register. Does this look ok to you? Could you maybe test - I've got no mt9m111 cameras. Thanks Guennadi On Wed, 6 Apr 2011, Teresa Gámez wrote: > This camera driver supports only rising edge, which is the default > setting of the device. The function mt9m111_setup_pixfmt() overwrites > this setting. So the driver actually uses falling edge. > This patch corrects that. > > Signed-off-by: Teresa Gámez > --- > drivers/media/video/mt9m111.c | 14 ++++++++++++-- > 1 files changed, 12 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/video/mt9m111.c b/drivers/media/video/mt9m111.c > index 53fa2a7..4040a96 100644 > --- a/drivers/media/video/mt9m111.c > +++ b/drivers/media/video/mt9m111.c > @@ -315,10 +315,20 @@ static int mt9m111_setup_rect(struct i2c_client *client, > static int mt9m111_setup_pixfmt(struct i2c_client *client, u16 outfmt) > { > int ret; > + u16 mask = MT9M111_OUTFMT_PROCESSED_BAYER | MT9M111_OUTFMT_RGB | > + MT9M111_OUTFMT_BYPASS_IFP | MT9M111_OUTFMT_SWAP_RGB_EVEN | > + MT9M111_OUTFMT_RGB565 | MT9M111_OUTFMT_RGB555 | > + MT9M111_OUTFMT_SWAP_YCbCr_Cb_Cr | > + MT9M111_OUTFMT_SWAP_YCbCr_C_Y; > > - ret = reg_write(OUTPUT_FORMAT_CTRL2_A, outfmt); > + ret = reg_clear(OUTPUT_FORMAT_CTRL2_A, mask); > if (!ret) > - ret = reg_write(OUTPUT_FORMAT_CTRL2_B, outfmt); > + ret = reg_set(OUTPUT_FORMAT_CTRL2_A, outfmt); > + if (!ret) > + ret = reg_clear(OUTPUT_FORMAT_CTRL2_B, mask); > + if (!ret) > + ret = reg_set(OUTPUT_FORMAT_CTRL2_B, outfmt); > + > return ret; > } > > -- > 1.7.0.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Tested-by: Teresa Gámez --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/media/video/mt9m111.c b/drivers/media/video/mt9m111.c index 53fa2a7..ebebed9 100644 --- a/drivers/media/video/mt9m111.c +++ b/drivers/media/video/mt9m111.c @@ -315,10 +315,20 @@ static int mt9m111_setup_rect(struct i2c_client *client, static int mt9m111_setup_pixfmt(struct i2c_client *client, u16 outfmt) { int ret; + u16 mask = MT9M111_OUTFMT_PROCESSED_BAYER | MT9M111_OUTFMT_RGB | + MT9M111_OUTFMT_BYPASS_IFP | MT9M111_OUTFMT_SWAP_RGB_EVEN | + MT9M111_OUTFMT_RGB565 | MT9M111_OUTFMT_RGB555 | + MT9M111_OUTFMT_SWAP_YCbCr_Cb_Cr | + MT9M111_OUTFMT_SWAP_YCbCr_C_Y; - ret = reg_write(OUTPUT_FORMAT_CTRL2_A, outfmt); + ret = reg_read(OUTPUT_FORMAT_CTRL2_A); + if (ret >= 0) + ret = reg_write(OUTPUT_FORMAT_CTRL2_A, (ret & ~mask) | outfmt); if (!ret) - ret = reg_write(OUTPUT_FORMAT_CTRL2_B, outfmt); + ret = reg_read(OUTPUT_FORMAT_CTRL2_B); + if (ret >= 0) + ret = reg_write(OUTPUT_FORMAT_CTRL2_B, (ret & ~mask) | outfmt); + return ret; }