From patchwork Tue May 10 11:50:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 15841 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 5A117C3256 for ; Tue, 10 May 2022 11:52:00 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id C1D1665646; Tue, 10 May 2022 13:51:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1652183519; bh=ID7KsvsOkIXuQ4cSOB4gIYwOWmaaua/BqNjfCaF7y3I=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=rfF+V1Aab6QK8RSk7QlXZkNjZLaIcjMxSmpiIVluMZsXLK4AK09/V0yd077I+iftU 9rSlecTLkXnPCV3zbNIhB4ZEm8f4p+6qvFTzYn2+nC8Y0ehGAV1FXggctTWq5kvTgz 2zp0rGpS/3iv/Ro19I/vZejXHrqCeJblXUTCtMck1yDReS5ORNVfNx3e4nCyl7Nt8C vRRk/1EvPLb4PFK5DaJbFreTDmQt/vfQflx2QgXkrRZGSpigOFF9f9qo4y11OTumvL 0NpypI1HMH7xCZDcEL54bkf+LQCuI9aRuCtQcrFzK4FaSrjPRuyZ/qFx61MK8SHWwz mXHCFtbEmwuxQ== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id A7C3F65643 for ; Tue, 10 May 2022 13:51:57 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="JF8zwD2G"; dkim-atps=neutral Received: from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id B4EABB60; Tue, 10 May 2022 13:51:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1652183517; bh=ID7KsvsOkIXuQ4cSOB4gIYwOWmaaua/BqNjfCaF7y3I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JF8zwD2G6PQYjAGifRPKTNZqP2K7//gyJOVepUnbUt/9sZDDMSlr2ybLbqQBcKWVG HSMAJW8aLmCmFyzaK4hbOrr5VPxH1vrmukrKWZC44ufGg/947utzRzokxC4iuZpnHJ FeSvSbDhGmUi+TCmSXKiQQx3blxb1pKXUGT6ETjY= To: libcamera-devel@lists.libcamera.org Date: Tue, 10 May 2022 14:50:58 +0300 Message-Id: <20220510115147.19360-2-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220510115147.19360-1-laurent.pinchart@ideasonboard.com> References: <20220510115147.19360-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 01/50] staging: media: imx: imx7-media-csi: Initialize locks early on X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Laurent Pinchart via libcamera-devel From: Laurent Pinchart Reply-To: Laurent Pinchart Cc: Martin Kepplinger , kernel@pengutronix.de, Dorota Czaplejewicz , Alexander Stein , Rui Miguel Silva , Philipp Zabel , Steve Longerbeam Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Group all the direct initialization of imx7_csi fields at the beginning of the imx7_csi_probe() function instead of spreading them around. Signed-off-by: Laurent Pinchart --- drivers/staging/media/imx/imx7-media-csi.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/drivers/staging/media/imx/imx7-media-csi.c b/drivers/staging/media/imx/imx7-media-csi.c index 8467a1491048..893620e8fc03 100644 --- a/drivers/staging/media/imx/imx7-media-csi.c +++ b/drivers/staging/media/imx/imx7-media-csi.c @@ -1188,27 +1188,32 @@ static int imx7_csi_probe(struct platform_device *pdev) return -ENOMEM; csi->dev = dev; + platform_set_drvdata(pdev, &csi->sd); + + spin_lock_init(&csi->irqlock); + mutex_init(&csi->lock); csi->mclk = devm_clk_get(&pdev->dev, "mclk"); if (IS_ERR(csi->mclk)) { ret = PTR_ERR(csi->mclk); dev_err(dev, "Failed to get mclk: %d", ret); - return ret; + goto destroy_mutex; } csi->irq = platform_get_irq(pdev, 0); - if (csi->irq < 0) - return csi->irq; + if (csi->irq < 0) { + ret = csi->irq; + goto destroy_mutex; + } csi->regbase = devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(csi->regbase)) - return PTR_ERR(csi->regbase); + if (IS_ERR(csi->regbase)) { + ret = PTR_ERR(csi->regbase); + goto destroy_mutex; + } csi->model = (enum imx_csi_model)(uintptr_t)of_device_get_match_data(&pdev->dev); - spin_lock_init(&csi->irqlock); - mutex_init(&csi->lock); - /* install interrupt handler */ ret = devm_request_irq(dev, csi->irq, imx7_csi_irq_handler, 0, "csi", (void *)csi); @@ -1223,7 +1228,6 @@ static int imx7_csi_probe(struct platform_device *pdev) ret = PTR_ERR(imxmd); goto destroy_mutex; } - platform_set_drvdata(pdev, &csi->sd); ret = imx_media_of_add_csi(imxmd, node); if (ret < 0 && ret != -ENODEV && ret != -EEXIST)