From patchwork Mon May 21 17:27:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 10416023 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 A784F600CC for ; Mon, 21 May 2018 17:29:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9A67228911 for ; Mon, 21 May 2018 17:29:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8DFF528988; Mon, 21 May 2018 17:29:27 +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.9 required=2.0 tests=BAYES_00, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI 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 1646928911 for ; Mon, 21 May 2018 17:29:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753418AbeEUR2C (ORCPT ); Mon, 21 May 2018 13:28:02 -0400 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:40223 "EHLO relay4-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753415AbeEUR2A (ORCPT ); Mon, 21 May 2018 13:28:00 -0400 X-Originating-IP: 2.224.242.101 Received: from w540.lan (2-224-242-101.ip172.fastwebnet.it [2.224.242.101]) (Authenticated sender: jacopo@jmondi.org) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 8157DE000C; Mon, 21 May 2018 19:27:59 +0200 (CEST) From: Jacopo Mondi To: niklas.soderlund@ragnatech.se, laurent.pinchart@ideasonboard.com, horms@verge.net.au, geert@glider.be Cc: Jacopo Mondi , linux-media@vger.kernel.org, linux-renesas-soc@vger.kernel.org Subject: [PATCH v2 3/4] media: rcar-vin: Handle CLOCKENB pin polarity Date: Mon, 21 May 2018 19:27:42 +0200 Message-Id: <1526923663-8179-4-git-send-email-jacopo+renesas@jmondi.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1526923663-8179-1-git-send-email-jacopo+renesas@jmondi.org> References: <1526923663-8179-1-git-send-email-jacopo+renesas@jmondi.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 Handle CLOCKENB pin polarity, or use HSYNC in its place if polarity is not specified and we're running on parallel data bus with explicit synchronism signals. While at there, simplify the media bus handling flags logic, inspecting flags only if the system is running on parallel media bus type and ignore flags when on CSI-2. Also change comments style to remove un-necessary camel case and add a full stop at the end of sentences. Signed-off-by: Jacopo Mondi --- drivers/media/platform/rcar-vin/rcar-dma.c | 34 ++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c index 17f291f..ffd3d62 100644 --- a/drivers/media/platform/rcar-vin/rcar-dma.c +++ b/drivers/media/platform/rcar-vin/rcar-dma.c @@ -123,6 +123,8 @@ /* Video n Data Mode Register 2 bits */ #define VNDMR2_VPS (1 << 30) #define VNDMR2_HPS (1 << 29) +#define VNDMR2_CES (1 << 28) +#define VNDMR2_CHS (1 << 23) #define VNDMR2_FTEV (1 << 17) #define VNDMR2_VLV(n) ((n & 0xf) << 12) @@ -684,21 +686,35 @@ static int rvin_setup(struct rvin_dev *vin) break; } - /* Enable VSYNC Field Toogle mode after one VSYNC input */ + /* Enable VSYNC field toggle mode after one VSYNC input. */ if (vin->info->model == RCAR_GEN3) dmr2 = VNDMR2_FTEV; else dmr2 = VNDMR2_FTEV | VNDMR2_VLV(1); - /* Hsync Signal Polarity Select */ - if (!vin->is_csi && - !(vin->parallel->mbus_flags & V4L2_MBUS_HSYNC_ACTIVE_LOW)) - dmr2 |= VNDMR2_HPS; + /* Synchronism signal polarities: only for parallel data bus. */ + if (!vin->is_csi) { + /* Hsync signal polarity select. */ + if (!(vin->parallel->mbus_flags & V4L2_MBUS_HSYNC_ACTIVE_LOW)) + dmr2 |= VNDMR2_HPS; - /* Vsync Signal Polarity Select */ - if (!vin->is_csi && - !(vin->parallel->mbus_flags & V4L2_MBUS_VSYNC_ACTIVE_LOW)) - dmr2 |= VNDMR2_VPS; + /* Vsync signal polarity select. */ + if (!(vin->parallel->mbus_flags & V4L2_MBUS_VSYNC_ACTIVE_LOW)) + dmr2 |= VNDMR2_VPS; + + /* + * Data enable signal polarity select. + * Use HSYNC as data-enable if not specified and running + * with explicit synchronizations; otherwise default 'high' + * is selected. + */ + if (vin->parallel->mbus_flags & V4L2_MBUS_DATA_ACTIVE_LOW) + dmr2 |= VNDMR2_CES; + else if (!(vin->parallel->mbus_flags & + V4L2_MBUS_DATA_ACTIVE_HIGH) && + vin->parallel->mbus_type == V4L2_MBUS_PARALLEL) + dmr2 |= VNDMR2_CHS; + } /* * Output format