Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp200732pxf; Wed, 10 Mar 2021 04:24:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJx6x6MuhH9uO/plt0TP2aJynS/mhHVVWViTlSPIOf4P4I2ppOxwqGbsqX8l2oY1cnHsMnJO X-Received: by 2002:aa7:d954:: with SMTP id l20mr2933968eds.1.1615379095888; Wed, 10 Mar 2021 04:24:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1615379095; cv=none; d=google.com; s=arc-20160816; b=LkWL08x5ncRgXP6Q2dpdicgeRUDOw1O58oBmni937EZwVhSZHuW2IO6s5kRmAqCvZd PNEAmai54RLmDP/bn5t0gvhdeK7KALzSCxfhQMhywl16QwfZn+wEdYpgwioBIMeif2vt NwFNrUnixYkuHsIvVzSizjK4skONjn2Z0Dw1JKybNUfsmwr1ro0Ayc1Y6Vl/oqqYOphH KXP/ext9zV7ekd8lFfrbymZ6zC9K9kBlLsNTaimUy+AT2DnAAOoA/h2Rrwmeq4lweHCJ oIWZdQ3VWdix/dmZ0VHN7sCm92Ev+3g942TPHtlmTvMLhxutEeF26fppLOPeazmeTM2W 4MHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=q/J7E5lQEM3uvyKPTZuqQsJzfuV/kXxijPXejhTxoSk=; b=YLBmWNHZQ0l1YTBvv9fdeBcKOE6wtNYpkUAdTEffbtECnf4vnVyQG2MzWZOw1v4kOM G9Q+eDPopikCEgKLA+znaqmfsEzSODyufq+7MG9LcNW8WvijMJE/4jQHEVJW+j1qcSjr QWib5T4KPbBNfb1a11MEJQdyl1ZJgoL+jPpVMMW/XoxpRE5UgBTtyHTKmh77VEzrEphn fDvAVQogrKC+cCAyLWv0tb1VKVR5kN6sr9qjjd8QYXr0z60qOUdSZBijuDZVs8mLlwyv ljMT+fZ5G5lBrMw3AiFMOp9SfVADArwWudg3Ghq5wejomvMoWdbMHaj1L4AcGVU8hwmo PU/g== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d4si11461217ejb.594.2021.03.10.04.24.32; Wed, 10 Mar 2021 04:24:55 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232976AbhCJMV0 (ORCPT + 99 others); Wed, 10 Mar 2021 07:21:26 -0500 Received: from relmlor2.renesas.com ([210.160.252.172]:54059 "EHLO relmlie6.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S232621AbhCJMUy (ORCPT ); Wed, 10 Mar 2021 07:20:54 -0500 X-IronPort-AV: E=Sophos;i="5.81,237,1610377200"; d="scan'208";a="74452145" Received: from unknown (HELO relmlir5.idc.renesas.com) ([10.200.68.151]) by relmlie6.idc.renesas.com with ESMTP; 10 Mar 2021 21:20:53 +0900 Received: from localhost.localdomain (unknown [10.226.36.204]) by relmlir5.idc.renesas.com (Postfix) with ESMTP id 922AA40108E4; Wed, 10 Mar 2021 21:20:50 +0900 (JST) From: Lad Prabhakar To: Dave Stevenson , Mauro Carvalho Chehab Cc: Pavel Machek , Andrey Konovalov , Sakari Ailus , Laurent Pinchart , Jacopo Mondi , Hans Verkuil , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Prabhakar , Lad Prabhakar , Biju Das Subject: [PATCH 2/3] media: i2c: imx219: Serialize during stream start/stop Date: Wed, 10 Mar 2021 12:20:13 +0000 Message-Id: <20210310122014.28353-3-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210310122014.28353-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20210310122014.28353-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Serialize during stream start/stop in suspend/resume callbacks. Signed-off-by: Lad Prabhakar --- drivers/media/i2c/imx219.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c index f0cf1985a4dc..87c021de1460 100644 --- a/drivers/media/i2c/imx219.c +++ b/drivers/media/i2c/imx219.c @@ -1172,8 +1172,10 @@ static int __maybe_unused imx219_suspend(struct device *dev) struct v4l2_subdev *sd = dev_get_drvdata(dev); struct imx219 *imx219 = to_imx219(sd); + mutex_lock(&imx219->mutex); if (imx219->streaming) imx219_stop_streaming(imx219); + mutex_unlock(&imx219->mutex); return 0; } @@ -1184,11 +1186,13 @@ static int __maybe_unused imx219_resume(struct device *dev) struct imx219 *imx219 = to_imx219(sd); int ret; + mutex_lock(&imx219->mutex); if (imx219->streaming) { ret = imx219_start_streaming(imx219); if (ret) goto error; } + mutex_unlock(&imx219->mutex); return 0; @@ -1197,6 +1201,7 @@ static int __maybe_unused imx219_resume(struct device *dev) imx219->streaming = false; __v4l2_ctrl_grab(imx219->vflip, false); __v4l2_ctrl_grab(imx219->hflip, false); + mutex_unlock(&imx219->mutex); return ret; } -- 2.17.1