From patchwork Fri May 25 09:08:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ondrej Zary X-Patchwork-Id: 10426659 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id C9F32602D8 for ; Fri, 25 May 2018 09:09:30 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C3E09294EC for ; Fri, 25 May 2018 09:09:30 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B717A294F2; Fri, 25 May 2018 09:09:30 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 58550294EC for ; Fri, 25 May 2018 09:09:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965332AbeEYJIt (ORCPT ); Fri, 25 May 2018 05:08:49 -0400 Received: from smtp-1b.atlantis.sk ([80.94.52.26]:48602 "EHLO smtp-1b.atlantis.sk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964917AbeEYJIr (ORCPT ); Fri, 25 May 2018 05:08:47 -0400 Received: from gsql.ggedos.sk (off-7.infotel.telecom.sk [212.5.213.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp-1b.atlantis.sk (Postfix) with ESMTPSA id E178C8346C56; Fri, 25 May 2018 11:08:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rainbow-software.org; s=atlsmtp; t=1527239325; bh=+U4HBBii/1sjrMM2xKPv4CG0pg0aCHcZndvzkRmAq9U=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=ckP6ExFIhafOFDYu0uJt2mpIJVDY+Vq+1U43lpilD1oFkISyPIZE8S4zKMmnw6UT5 HR6K8cX/waC5NXoO+QwcfBFK+eCcwZ+IGrKwTl/S7pD+/ZtLVDzZd8aydo/R08+tVe kNv8ZsQu9kuQKUU1iAZXVAFpJixUeeyDdd7aDPMk= From: Ondrej Zary To: Hans Verkuil Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/3 v2] gspca_zc3xx: Enable short exposure times for OV7648 Date: Fri, 25 May 2018 11:08:43 +0200 Message-Id: <20180525090843.31735-3-linux@rainbow-software.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180525090843.31735-1-linux@rainbow-software.org> References: <20180525090843.31735-1-linux@rainbow-software.org> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The 50Hz and 60Hz power line frequency settings disable short (1/120s and 1/100s) exposure times for banding filter (causing overexposed image near lamps). No flicker setting enables them (when banding filter is disabled and they're not used). Seems that the logic is just the wrong way around. (This bug came from the Windows driver.) Signed-off-by: Ondrej Zary --- drivers/media/usb/gspca/zc3xx.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/media/usb/gspca/zc3xx.c b/drivers/media/usb/gspca/zc3xx.c index c72f2d9167d9..cf21991e3d99 100644 --- a/drivers/media/usb/gspca/zc3xx.c +++ b/drivers/media/usb/gspca/zc3xx.c @@ -3186,7 +3186,8 @@ static const struct usb_action ov7620_InitialScale[] = { /* 320x240 */ static const struct usb_action ov7620_50HZ[] = { {0xdd, 0x00, 0x0100}, /* 00,01,00,dd */ {0xaa, 0x2b, 0x0096}, /* 00,2b,96,aa */ - {0xaa, 0x75, 0x008a}, /* 00,75,8a,aa */ + /* enable 1/120s & 1/100s exposures for banding filter */ + {0xaa, 0x75, 0x008e}, {0xaa, 0x2d, 0x0005}, /* 00,2d,05,aa */ {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */ {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,04,cc */ @@ -3202,7 +3203,8 @@ static const struct usb_action ov7620_50HZ[] = { static const struct usb_action ov7620_60HZ[] = { {0xdd, 0x00, 0x0100}, /* 00,01,00,dd */ {0xaa, 0x2b, 0x0000}, /* 00,2b,00,aa */ - {0xaa, 0x75, 0x008a}, /* 00,75,8a,aa */ + /* enable 1/120s & 1/100s exposures for banding filter */ + {0xaa, 0x75, 0x008e}, {0xaa, 0x2d, 0x0005}, /* 00,2d,05,aa */ {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */ {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,04,cc */ @@ -3221,7 +3223,8 @@ static const struct usb_action ov7620_60HZ[] = { static const struct usb_action ov7620_NoFliker[] = { {0xdd, 0x00, 0x0100}, /* 00,01,00,dd */ {0xaa, 0x2b, 0x0000}, /* 00,2b,00,aa */ - {0xaa, 0x75, 0x008e}, /* 00,75,8e,aa */ + /* disable 1/120s & 1/100s exposures for banding filter */ + {0xaa, 0x75, 0x008a}, {0xaa, 0x2d, 0x0001}, /* 00,2d,01,aa */ {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */ {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,04,cc */