Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp214399pxf; Wed, 10 Mar 2021 04:48:46 -0800 (PST) X-Google-Smtp-Source: ABdhPJwW+I+eKVwH6q0ZHcWBn5P8xFGPNd9fx4vASRAmA4fYySb05YOZvZRyNvEqW7/8WACFCkA5 X-Received: by 2002:a17:907:98f5:: with SMTP id ke21mr3478867ejc.552.1615380526487; Wed, 10 Mar 2021 04:48:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1615380526; cv=none; d=google.com; s=arc-20160816; b=IydVxulM8Vl4bjFp+cSpNDX0VbATeU6PzUcPwMfypKAjbaN3+5zFlmCL5UlugOVlOJ GKgWlh78So6z9PhyLMI/Vca0i4kA8S9tgfaxlVclQlVjxY2sG7MZjn06llLKG40XOk+x L03unGK4qX1kzoAgndYhKhoNCujqueNnkDxI7neDXac2IED2VRHCLF4GjSpBWEUGCuMt SR8rTVOistUvxrsghtVSWeX416nyzKnGLomEw8oLh2a6XY7pgSersDX/DpHxDyRlA4u3 NZ77W7cqnkrnST+7ucHlOmzrttj+QrPvnlJLpBmEfYcPtsMVOJm1wygK22bgT1ZLE7eA AVcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=PNzo7/za+7Ji2NXrydXkGbcYF4yb4UI6vFbARFR5yJw=; b=O2ngbgQLqAFUrTsGtwluYRAlYhRJ3pwLzdDS04rVjaeQNviVi0Gvc8xUEDBNDeEPeh bGHnWZfwg45+oy6Q1JVSsSBigFwVcW7IlTyjBhVQdPGquM7FtMhdUF/WSKXcTT3bmXt2 CkCaQkHxtsYNorUNl2R7jP+bt0jnolZGFuK+eiCi4xfdzYr5waw2DAB1NLbpYL563kXN o29R6onOGJ6dQUJXNjlP7JIHn8GWFQaWpVA7/xN7hQdhrrwJp9KXMoRgV6W67Z9/I8ed Qw7VLnkp5PlT6N97sbgKGWMmKVVl4/q/hz1am1ckP02cD8xKahlfLuACQouf0IlJ1iId Tl0A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=O8cuTDdR; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q5si11733058edg.176.2021.03.10.04.48.24; Wed, 10 Mar 2021 04:48:46 -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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=O8cuTDdR; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231847AbhCJMrU (ORCPT + 99 others); Wed, 10 Mar 2021 07:47:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37594 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231922AbhCJMrG (ORCPT ); Wed, 10 Mar 2021 07:47:06 -0500 Received: from mail-yb1-xb30.google.com (mail-yb1-xb30.google.com [IPv6:2607:f8b0:4864:20::b30]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E8F0CC061760; Wed, 10 Mar 2021 04:47:05 -0800 (PST) Received: by mail-yb1-xb30.google.com with SMTP id m9so17703942ybk.8; Wed, 10 Mar 2021 04:47:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=PNzo7/za+7Ji2NXrydXkGbcYF4yb4UI6vFbARFR5yJw=; b=O8cuTDdRfZbiEcuzkumf8xI1xSM9i1M65gHKEvhVuHqMfms7EfYDqO5WnDX67dqPx0 /SqKq0U2tUDmOXJLOnWdbWklvQpiSFq8Y1cPbLeOEp7ImTx7oCE9ELHw/APMVi/kFP3d IhDGX53iFRT/XrqLkMYgidkSIjxPLfzZPhIeGUHZS00URhs81NjCsn5kC9jTXdR6olmc herIR/XMM+2CJYmvGaHL0bdXVTUiR4lAWmOTxrMn/jgsmV+TkvPuZXzYSJiMBvYq/5in n6QZ9hzA416rHUDifs+ObU1BhR7Q/KCTqb4wanrfEYJ6G3+mpOEwwsys5qHJsjSX1caB 7d1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=PNzo7/za+7Ji2NXrydXkGbcYF4yb4UI6vFbARFR5yJw=; b=Ut/FIOICUnoIlqeBv2SXFaEaiA1/xcV0X13V+Mq1jd03ccoDlb+hmx2LNxdl8CpMXu cGnNeuE23fQ6WvK2rT7RJCyfooCbAXYUasb2XyEHdzbRkIaLgko7rQ6V2SvMcqxo6Ut1 sxua2RUuov+CTS5vAxla4bCsqjXvo9hl5DtVrZYPEk6Fpm6TH3q1Z3TJbhxLt3HmuowW VJb+LVoJnZpkcPOCdWHjW0qtH0YqScTuoyb/fMHgV1fhenO1Z5FVEHZ7K2dapmg+nKit b08tU/altHkP3daQreunUipYYevqbt73Prs0wRVydGNoFCbLgZcr3vvO92hZArUEtZjj zhBA== X-Gm-Message-State: AOAM531dy+oJTU3BEXoSvP8Jh8ncw5PAgSOs2Q74pY05t7FlO48OLkW1 ygpsnebIgVkoSr3Dt//Aa0UhopKCVdnSFZb5zH4= X-Received: by 2002:a25:4204:: with SMTP id p4mr3791705yba.76.1615380425254; Wed, 10 Mar 2021 04:47:05 -0800 (PST) MIME-Version: 1.0 References: <20210310122014.28353-1-prabhakar.mahadev-lad.rj@bp.renesas.com> <20210310122014.28353-3-prabhakar.mahadev-lad.rj@bp.renesas.com> In-Reply-To: From: "Lad, Prabhakar" Date: Wed, 10 Mar 2021 12:46:39 +0000 Message-ID: Subject: Re: [PATCH 2/3] media: i2c: imx219: Serialize during stream start/stop To: Laurent Pinchart Cc: Lad Prabhakar , Dave Stevenson , Mauro Carvalho Chehab , Pavel Machek , Andrey Konovalov , Sakari Ailus , Jacopo Mondi , Hans Verkuil , linux-media , LKML , Linux-Renesas , Biju Das Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Laurent, Thank you for the review. On Wed, Mar 10, 2021 at 12:40 PM Laurent Pinchart wrote: > > Hi Prabhakar, > > Thank you for the patch. > > On Wed, Mar 10, 2021 at 12:20:13PM +0000, Lad Prabhakar wrote: > > Serialize during stream start/stop in suspend/resume callbacks. > > Could you please explain why this is needed ? > The streaming variable in this driver has serialized access, but this wasn't taken care during suspend/resume callbacks. Cheers, Prabhakar > > 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; > > } > > -- > Regards, > > Laurent Pinchart