Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp410723pxb; Wed, 15 Sep 2021 05:05:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyYgTNU/5tmpdiVjWOLrUIwoVjx3mQP+02q1qgktmZV4ikW0NvozWqV4XT/WHCqLazKYYky X-Received: by 2002:a05:6512:3096:: with SMTP id z22mr17253064lfd.475.1631707532341; Wed, 15 Sep 2021 05:05:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631707532; cv=none; d=google.com; s=arc-20160816; b=qeDRdBb3thjX20YNNvIieIMULoPR2lnAI1lwqPjGgBVPdMFiTdyWvasS0uEnZ4Xsur /NGJGxFURwrHe16tG/Bt7w8qgApZEkd21uWwaLEc6PfPUqMx+qGW1XbCStD9Zma0fBqk IGYA7/L/pFvHxeARw/63T+2wM2dmb+gt2Sr9hCeqHZe7EljPXpYpbYLVgvHjGjaufu+k CIhJwBXIphTOIZYzKGtzAYQ06mV8X0Kebim1f1/mPVkLLyoonx79a8ZoAj0PfpHbSILU IKEoZFZEnnxXgyJdkrn+MI4IJ1SdKOr9GGoXdokS1ppF2zVmzoJlqnowfUHOBLH533Vp wnug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Rcjrh9xOmMchJURusioQgCOfJy0HVk9mnr1C8fCqldI=; b=b7hw5h1CeRu3oeyEB2cSEV3KdtntEK5mDbySV/gvzGQ+Jw34YZfLNAqqZNTL9x374i KxpZ4ZayW6vrHgCIyPf5sja6Cl65rE8uBEnQhDLeDFUsJMX8MZuefH4ICI8+1xqqkNRX VOpb61WmrgUFgYfGLI02+X3hTjJVs7Gg+NP/xmCs1l0mG+cret2NPYpFEp5YSpMIGDXM m0QyIVEVadgHrWUpIVRGzKNNeJ5rpTAkwU8iAbRN7gyVcPGU9OPQ+/h78p9vzBPvrphX NgtLDmIlFgwZjiLYoJhpfDrTPRonwGD60bSki7IyHgoGPpgLMx5Jjm/qSc8r9L7f4xM+ LfSg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=razq60Fe; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z12si18387062ljj.274.2021.09.15.05.05.03; Wed, 15 Sep 2021 05:05:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=razq60Fe; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237769AbhIOMEc (ORCPT + 99 others); Wed, 15 Sep 2021 08:04:32 -0400 Received: from fllv0015.ext.ti.com ([198.47.19.141]:46670 "EHLO fllv0015.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237623AbhIOMEZ (ORCPT ); Wed, 15 Sep 2021 08:04:25 -0400 Received: from fllv0035.itg.ti.com ([10.64.41.0]) by fllv0015.ext.ti.com (8.15.2/8.15.2) with ESMTP id 18FC33AP066401; Wed, 15 Sep 2021 07:03:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1631707383; bh=Rcjrh9xOmMchJURusioQgCOfJy0HVk9mnr1C8fCqldI=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=razq60FeYEqOworD9v6UQ8H/kzFqnwHtUFuITKdxy9tQcvoj4lkIFufutXLLxgn7S C0hY5iY1eGU43KZ325HysQZTewnjUO2vhlzoWEHb3VGGqauHeJ1vrL6tqwa0JSyNoS H4EmGp/mVA37DOamchTiRx7dtP4ueseWKm1AwlYY= Received: from DFLE113.ent.ti.com (dfle113.ent.ti.com [10.64.6.34]) by fllv0035.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 18FC32BZ120210 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 15 Sep 2021 07:03:03 -0500 Received: from DFLE101.ent.ti.com (10.64.6.22) by DFLE113.ent.ti.com (10.64.6.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.14; Wed, 15 Sep 2021 07:03:02 -0500 Received: from lelv0326.itg.ti.com (10.180.67.84) by DFLE101.ent.ti.com (10.64.6.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.14 via Frontend Transport; Wed, 15 Sep 2021 07:03:01 -0500 Received: from pratyush-OptiPlex-790.dhcp.ti.com (ileax41-snat.itg.ti.com [10.172.224.153]) by lelv0326.itg.ti.com (8.15.2/8.15.2) with ESMTP id 18FC2fD5019246; Wed, 15 Sep 2021 07:02:58 -0500 From: Pratyush Yadav To: Mauro Carvalho Chehab CC: Pratyush Yadav , Laurent Pinchart , Nikhil Devshatwar , Tomi Valkeinen , Vignesh Raghavendra , Benoit Parrot , Maxime Ripard , Rob Herring , Sakari Ailus , =?UTF-8?q?Niklas=20S=C3=B6derlund?= , , , Subject: [PATCH v4 04/11] media: cadence: csi2rx: Set the STOP bit when stopping a stream Date: Wed, 15 Sep 2021 17:32:33 +0530 Message-ID: <20210915120240.21572-5-p.yadav@ti.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210915120240.21572-1-p.yadav@ti.com> References: <20210915120240.21572-1-p.yadav@ti.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The stream stop procedure says that the STOP bit should be set when the stream is to be stopped, and then the ready bit in stream status register polled to make sure the STOP operation is finished. Signed-off-by: Pratyush Yadav --- (no changes since v1) drivers/media/platform/cadence/cdns-csi2rx.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/cadence/cdns-csi2rx.c b/drivers/media/platform/cadence/cdns-csi2rx.c index e05d76394cd6..3730e8beee48 100644 --- a/drivers/media/platform/cadence/cdns-csi2rx.c +++ b/drivers/media/platform/cadence/cdns-csi2rx.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -40,8 +41,12 @@ #define CSI2RX_STREAM_CTRL_REG(n) (CSI2RX_STREAM_BASE(n) + 0x000) #define CSI2RX_STREAM_CTRL_SOFT_RST BIT(4) +#define CSI2RX_STREAM_CTRL_STOP BIT(1) #define CSI2RX_STREAM_CTRL_START BIT(0) +#define CSI2RX_STREAM_STATUS_REG(n) (CSI2RX_STREAM_BASE(n) + 0x004) +#define CSI2RX_STREAM_STATUS_RDY BIT(31) + #define CSI2RX_STREAM_DATA_CFG_REG(n) (CSI2RX_STREAM_BASE(n) + 0x008) #define CSI2RX_STREAM_DATA_CFG_EN_VC_SELECT BIT(31) #define CSI2RX_STREAM_DATA_CFG_VC_SELECT(n) BIT((n) + 16) @@ -321,12 +326,23 @@ static int csi2rx_start(struct csi2rx_priv *csi2rx) static void csi2rx_stop(struct csi2rx_priv *csi2rx) { unsigned int i; + u32 val; + int ret; clk_prepare_enable(csi2rx->p_clk); clk_disable_unprepare(csi2rx->sys_clk); for (i = 0; i < csi2rx->max_streams; i++) { - writel(0, csi2rx->base + CSI2RX_STREAM_CTRL_REG(i)); + writel(CSI2RX_STREAM_CTRL_STOP, + csi2rx->base + CSI2RX_STREAM_CTRL_REG(i)); + + ret = readl_relaxed_poll_timeout(csi2rx->base + + CSI2RX_STREAM_STATUS_REG(i), + val, + (val & CSI2RX_STREAM_STATUS_RDY), + 10, 10000); + if (ret) + dev_warn(csi2rx->dev, "Failed to stop stream%d\n", i); clk_disable_unprepare(csi2rx->pixel_clk[i]); } -- 2.33.0