From patchwork Mon Oct 26 13:36:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 11857261 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E234AC4363A for ; Mon, 26 Oct 2020 13:47:59 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 827922242C for ; Mon, 26 Oct 2020 13:47:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="aZqVLLob"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="ETNQ5C4O" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 827922242C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=DeghFafAITrCP4aXhN1tng6N7rUAuLdNFy5oMXK+jyY=; b=aZqVLLob1YUw31bmXs7+GLJ6J G+4J2pQvzpju8tHGC55Nb9OOD6+WDkw9OgkmXj2ynDMSgYYZIJs1cIiJmSy4TdyFNA4ZtWuSzBNtU McFSsqd0aTm8l30+kOu1pOXcVUh1lAF+x5gJWT49lNY5jhVW2T3f1RyhYqBz/mMU9Jb8T281dTPEJ eP2T3/GBOc7X5JXfur+YxV+EM6BVWnMskWIZRbfXryspjfsKib/2EE1xCu4Jjtgls5/396SUWR8X/ 8v8RniCwCet49qjdeerVx34Pd3jDV6ceG5uJn11wLbFL2z4HM1hMWqZN/GB6ZKdGMh6FXpVzecWQO bpNJzeFqg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kX2p0-0004Ny-Ou; Mon, 26 Oct 2020 13:46:02 +0000 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kX2fi-0008DY-Qx for linux-arm-kernel@lists.infradead.org; Mon, 26 Oct 2020 13:36:29 +0000 Received: by mail-wm1-x342.google.com with SMTP id a72so11681169wme.5 for ; Mon, 26 Oct 2020 06:36:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=oc+CRyq0MP1rGPx6qu4fJIiuXgNVzq5WpNvySKjLu6M=; b=ETNQ5C4O4Im+z0OFc2LmdOrgCbdwcTHV3i/sud6MR3r4APa/DibA2O/U7gKfdhQtcD GyAC8xb4Z1kpnIu1iiF7XUI3Brt3EafJsFgfgxnSrRFgXrBAJ/h35VjL/IZBqjBU36V9 7abLJobIJsHmrGESMQ9uBBYvHLfTAaxOU0L4xz+Iv3dR0QI48jjWKBNZv21Rnw3FnzPo BP1hBl+MYk949RWjY9XvWCr5WQM6IqnCuRTXiWPgJPZ4w7s1kozW/FJRw+iWdvYXMvBU mgsiWrgZfJOxqnfRlN96vgoRWjxogl/Ei1RrQe5WSMCzaID4NvAvXfnMMB35tqBNzrSn yE0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=oc+CRyq0MP1rGPx6qu4fJIiuXgNVzq5WpNvySKjLu6M=; b=uPJ53FMaL0f3Z6PwB93RvpFTzkb8AxC9NSw3NRPHw5pcIiu4REaT9iRvA4lnzl1En7 4iBoXQyrNVJbnpWwc3DvJDJgaplWJEgX5mZOfWnnkjqYxzSxC25e8viq2VS3Lf3Atapl suVyprMtp/N9W4lDenempbYtVypc99Ny6CEULDmaFOHH3BzahP+rcUd7GdgLfQWp7CSg hxiu9i7wIE9FMvtASC3f/9XAUBTjKokB4I0dbUJuYGaosN9aMDnqBss40fYobE1vNdNl 6IPE0zDW9SHhe2/nvYqx/JBKTJrRjsIJXAPfDFPzmuiC69fsmgk9XE5zEo1jze9CNtrL eqsg== X-Gm-Message-State: AOAM533Wc+9ZO2e3ab2SSJIMpRhGm6iBwlMxgdzGljUba4uy3CVXgBAk bpFFh83Y16TUWT5enaOqOzhPKA== X-Google-Smtp-Source: ABdhPJxRBZnwVrN5mfPlZqgpI52Qd3hNu9GOYY/E9bIWA0MosamJ/tI/ASBpOEiIxMQWYBucoMAVUA== X-Received: by 2002:a1c:2601:: with SMTP id m1mr15236488wmm.12.1603719381363; Mon, 26 Oct 2020 06:36:21 -0700 (PDT) Received: from localhost.localdomain (lfbn-nic-1-190-206.w2-15.abo.wanadoo.fr. [2.15.39.206]) by smtp.gmail.com with ESMTPSA id f7sm23688991wrx.64.2020.10.26.06.36.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Oct 2020 06:36:20 -0700 (PDT) From: Bartosz Golaszewski To: Jonathan Cameron , Lars-Peter Clausen , Peter Meerwald-Stadler , Michal Simek Subject: [PATCH 1/5] iio: adc: xilinx: use helper variable for &pdev->dev Date: Mon, 26 Oct 2020 14:36:05 +0100 Message-Id: <20201026133609.24262-2-brgl@bgdev.pl> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201026133609.24262-1-brgl@bgdev.pl> References: <20201026133609.24262-1-brgl@bgdev.pl> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201026_093627_431450_33950D4A X-CRM114-Status: GOOD ( 15.75 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-iio@vger.kernel.org, Bartosz Golaszewski , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Bartosz Golaszewski It's more elegant to use a helper local variable to store the address of the underlying struct device than to dereference pdev everywhere. Signed-off-by: Bartosz Golaszewski --- drivers/iio/adc/xilinx-xadc-core.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/iio/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c index f93c34fe5873..8494eb424b33 100644 --- a/drivers/iio/adc/xilinx-xadc-core.c +++ b/drivers/iio/adc/xilinx-xadc-core.c @@ -1186,6 +1186,7 @@ static int xadc_parse_dt(struct iio_dev *indio_dev, struct device_node *np, static int xadc_probe(struct platform_device *pdev) { + struct device *dev = &pdev->dev; const struct of_device_id *id; struct iio_dev *indio_dev; unsigned int bipolar_mask; @@ -1195,10 +1196,10 @@ static int xadc_probe(struct platform_device *pdev) int irq; int i; - if (!pdev->dev.of_node) + if (!dev->of_node) return -ENODEV; - id = of_match_node(xadc_of_match_table, pdev->dev.of_node); + id = of_match_node(xadc_of_match_table, dev->of_node); if (!id) return -EINVAL; @@ -1206,7 +1207,7 @@ static int xadc_probe(struct platform_device *pdev) if (irq <= 0) return -ENXIO; - indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*xadc)); + indio_dev = devm_iio_device_alloc(dev, sizeof(*xadc)); if (!indio_dev) return -ENOMEM; @@ -1226,7 +1227,7 @@ static int xadc_probe(struct platform_device *pdev) indio_dev->modes = INDIO_DIRECT_MODE; indio_dev->info = &xadc_info; - ret = xadc_parse_dt(indio_dev, pdev->dev.of_node, &conf0); + ret = xadc_parse_dt(indio_dev, dev->of_node, &conf0); if (ret) return ret; @@ -1250,7 +1251,7 @@ static int xadc_probe(struct platform_device *pdev) } } - xadc->clk = devm_clk_get(&pdev->dev, NULL); + xadc->clk = devm_clk_get(dev, NULL); if (IS_ERR(xadc->clk)) { ret = PTR_ERR(xadc->clk); goto err_free_samplerate_trigger; @@ -1276,7 +1277,7 @@ static int xadc_probe(struct platform_device *pdev) } ret = request_irq(xadc->irq, xadc->ops->interrupt_handler, 0, - dev_name(&pdev->dev), indio_dev); + dev_name(dev), indio_dev); if (ret) goto err_clk_disable_unprepare; From patchwork Mon Oct 26 13:36:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 11857267 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5EE2DC4363A for ; Mon, 26 Oct 2020 13:48:19 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BF82A21D42 for ; Mon, 26 Oct 2020 13:48:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="2DPFqgQP"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="AE5uYd3q" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BF82A21D42 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=5NsyYtcep8ndLH0+/gUX9ldg7JQnag4A1yKlWx4ij60=; b=2DPFqgQPcYZi4VvyX9CwkQvpb xxQYnGv0MKz6Pid5AtU57ndHtnUzZSlTkDn1UedqLTBKIWmrHpkj7TWAMjQz2P/4xEL/YmAtPrKtB Fkyr26YpqL/jjb5QuvSI4tWbQtA2tv+cY5cutL+oI6Y3YKvvKUxQVyQHGnEpSmO/NS+IgiVGQGaNX s1t8/salJQJ79arvbCK4Fdpwej4FF+MisOQS3gnRKRA6vhUvQbCNnsTJPxqSjYP4i+ABQDuQcLwrY 1Nrl5ScK7Sx2ZSGug8yDng8LcUhvO4IaiVTm4jGPNhKygcYu0OGJpEGB9zpLB7rklNcioozJbyRsx S4OTeotuA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kX2pN-0004XS-ND; Mon, 26 Oct 2020 13:46:25 +0000 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kX2fj-0008Dn-Qb for linux-arm-kernel@lists.infradead.org; Mon, 26 Oct 2020 13:36:32 +0000 Received: by mail-wm1-x343.google.com with SMTP id h22so1409848wmb.0 for ; Mon, 26 Oct 2020 06:36:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CjmXhl5JLo4J/PxFbte5j14dKUd6PJral95QAT5RzjQ=; b=AE5uYd3q/mN+YF+UoNFzyWfn2e6aNplcHY2J7LSmHYbHDV+AteEfF4NyzxqqRYZoBc n/H3yCCMtcPvc+nEf7l1mv8FXlr1u6Z4ulvrO6bNG5QpWlJOX47vTf9rnpKY9axYH6n2 Lzlc+XzrljZQ7kifz3e3pRSUIOy6S64I4iKJuRFuQNVTB/yLAIgOUqIc7ZB6+jmZZmYU GrFyTr66j9EF9wpV0uVqawEulSwlRpU4G8o2LU0rE1udCvyx0DV1kIEjDiG0YhykpLEd 4F4QKwsvlMIPm5ZU6OuSE8ElztOAfmqCVI07OgFG+S66sRWCr4pILeNQf+AedtxFXQZF uQ7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CjmXhl5JLo4J/PxFbte5j14dKUd6PJral95QAT5RzjQ=; b=TwAHhKGsHLdXq72OjE4K9tjKcKR7Hc0jlkdQI3z9huDO/T2OjhlFUlfRXtC2BtQ6V5 poE8tvqguFFzDqZ1gmaaUbgH3flMbul3pM8IMasCLZRSAP3VbBMNv/pS6Jjxgl5BoBmN OcWK8lQ73bbVDbwi7rOD6JaHeM2ueM0AOahHtKcOhT/qN+ATqtCJnIlfgZ4a90vHEt9h ewFdgiaYj0U5B7YxA5uQPM0cFF7IHB99QTCLXrVFl2YrzVGyCcyywzGOu4WcBFitjbCK 1Mn/IHDbMyU0Ru3gqrdj5q7I/1HO4B6xgtNc0k3kqJBIEg2bShA4P4u0S+gXP6XyFSZR kN3w== X-Gm-Message-State: AOAM531gK8AUTU5AW7SDAMRbKzqkUBLQ00HAIcdR29r3e315VFQKiyVX 1rSD6LVTR6CnG0P87/7d4o3P2A== X-Google-Smtp-Source: ABdhPJyx5XmliVgkj2HH8RoBGVNGyWBgD1WUqyjfZC8wakM0iZX/XJLYW/tw3KdwIN2ATgE39WAaww== X-Received: by 2002:a1c:48c3:: with SMTP id v186mr17231235wma.16.1603719383782; Mon, 26 Oct 2020 06:36:23 -0700 (PDT) Received: from localhost.localdomain (lfbn-nic-1-190-206.w2-15.abo.wanadoo.fr. [2.15.39.206]) by smtp.gmail.com with ESMTPSA id f7sm23688991wrx.64.2020.10.26.06.36.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Oct 2020 06:36:23 -0700 (PDT) From: Bartosz Golaszewski To: Jonathan Cameron , Lars-Peter Clausen , Peter Meerwald-Stadler , Michal Simek Subject: [PATCH 2/5] iio: adc: xilinx: use devm_krealloc() instead of kfree() + kcalloc() Date: Mon, 26 Oct 2020 14:36:06 +0100 Message-Id: <20201026133609.24262-3-brgl@bgdev.pl> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201026133609.24262-1-brgl@bgdev.pl> References: <20201026133609.24262-1-brgl@bgdev.pl> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201026_093628_197548_2A4B03B4 X-CRM114-Status: GOOD ( 14.19 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-iio@vger.kernel.org, Bartosz Golaszewski , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Bartosz Golaszewski We now have devm_krealloc() in the kernel Use it indstead of calling kfree() and kcalloc() separately. Signed-off-by: Bartosz Golaszewski --- drivers/iio/adc/xilinx-xadc-core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/iio/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c index 8494eb424b33..b516280ccbd4 100644 --- a/drivers/iio/adc/xilinx-xadc-core.c +++ b/drivers/iio/adc/xilinx-xadc-core.c @@ -589,8 +589,9 @@ static int xadc_update_scan_mode(struct iio_dev *indio_dev, n = bitmap_weight(mask, indio_dev->masklength); - kfree(xadc->data); - xadc->data = kcalloc(n, sizeof(*xadc->data), GFP_KERNEL); + xadc->data = devm_krealloc(indio_dev->dev.parent, xadc->data, + n * sizeof(*xadc->data), + GFP_KERNEL | __GFP_ZERO); if (!xadc->data) return -ENOMEM; @@ -1372,7 +1373,6 @@ static int xadc_remove(struct platform_device *pdev) free_irq(xadc->irq, indio_dev); cancel_delayed_work_sync(&xadc->zynq_unmask_work); clk_disable_unprepare(xadc->clk); - kfree(xadc->data); return 0; } From patchwork Mon Oct 26 13:36:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 11857271 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B6FDBC4363A for ; Mon, 26 Oct 2020 13:49:22 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6802A21D42 for ; Mon, 26 Oct 2020 13:49:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="m+ZkRBgM"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="BVb3ChlT" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6802A21D42 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=in9MBS3DU3BpXTwtspVSghvi4Lj/3MJkNlJpXj/l+/k=; b=m+ZkRBgMQvhYBXvpD/4H7Ibsr Jj4iY5CcQPxSAQJ4+ehfgsvIiuBl9ZaVDGyPiRrMaNMM342uGiUmqNzQMymi7A8hGz4NyStzbk8bB nRcTyy+wtdbrf7AybPhqgeZ2n/nEn0HjNIySlZRMIZVZ5fkROKHCpCD9l3/cVSjtjbM9DaPuWa+OX ONbovvpTzKbV/1sXj/2y7cDm+aSacVb+QAOfR35x+NAy9GuZnxeIqDJnBd5zuPh3WCjObccFzn3Y7 mluUXD265A1poxbeLh+YJrkTWYPPVKMPsvL6NRbCGvgdnZa3MHwnQpt835a+eraWuX2hdZpOBkde1 hNkLUwRQQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kX2pt-0004mt-PK; Mon, 26 Oct 2020 13:46:57 +0000 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kX2fk-0008Eb-Lv for linux-arm-kernel@lists.infradead.org; Mon, 26 Oct 2020 13:36:33 +0000 Received: by mail-wm1-x342.google.com with SMTP id k18so12467312wmj.5 for ; Mon, 26 Oct 2020 06:36:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SXWR59MruOI4ftzXqa49n6gagW95FuEqQ5BRdlBW3D0=; b=BVb3ChlTrKd6RBLbM7FQM9prom3acrYkxX+BkBhdIp5YYz1kU5+7cXLDmQ2i7s+Dif Esu1jX49DCMdRmMs03hAYnBBBLUfCE1fdV4J4uDyTsEoM2PC6Uc+WZQPiN8yIGh1Ni4d A8oOGmUPlXHj8AwVEIu0HPwQDBhimy505MPCBUGYDB4fyeMv3bOCZsVEG20CKkE5hwRQ ym/uK5blzf5j074tXR6+Euos9aafumbqnueCOUHdoVkF9Nrvkz1NYRiyLZp/WatIzrnR Qp677pDVNjFTvL03E47ww4HVQkPB3DytSrBRLcaHtHQ/unzySoY/bIM3c7zm/QJ5xie3 fbzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=SXWR59MruOI4ftzXqa49n6gagW95FuEqQ5BRdlBW3D0=; b=k/4gOCriCzjRo+YgDhrDvUykBzCI9Hq1Gh/09LMrBcSMtTbwOhqFi7cazyUL/GFPH+ vOJPzFgGjKslg/gwvJkx8Sq0qu/mNoNAHf596GoWMWXtqZvgVWeO9Mv4uWpMPv5NGhuT ZB/p4NSUynhlIIZNYu/l9Oh5mYjPc1oEuKQ2rjrB5YkqPQ0djI+T60O5+PoQDvmiF7pz BPIusAYjN+xwlnn1xV1lbigIp1Q086NRw8YovFgBiPqayFVsnBk6rT5L5bkCkTV/VNc5 doxpgQgXPF7SiUVmSk0t0tXioWzfVSDDaNc0jNLbRhGMu7UM/oqXpq7Sf7bk3MPmNBjA y5CQ== X-Gm-Message-State: AOAM531FMRTCDoywO+mSlGTd5m/Da4NRPrhuoCDd0EEHWXdOHss9elWU KrCL8ReRAFa8zvtHphfT0JSYgA== X-Google-Smtp-Source: ABdhPJw6LD69F2GZpzdLF6iY8OEb0BrDX2HHqT/seQxWtD4xu+ljXFDFvPheo8jlC8zEpYAwcDhrSA== X-Received: by 2002:a7b:c401:: with SMTP id k1mr15804816wmi.120.1603719385163; Mon, 26 Oct 2020 06:36:25 -0700 (PDT) Received: from localhost.localdomain (lfbn-nic-1-190-206.w2-15.abo.wanadoo.fr. [2.15.39.206]) by smtp.gmail.com with ESMTPSA id f7sm23688991wrx.64.2020.10.26.06.36.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Oct 2020 06:36:24 -0700 (PDT) From: Bartosz Golaszewski To: Jonathan Cameron , Lars-Peter Clausen , Peter Meerwald-Stadler , Michal Simek Subject: [PATCH 3/5] iio: adc: xilinx: use a devres action to disable and unprepare the clock Date: Mon, 26 Oct 2020 14:36:07 +0100 Message-Id: <20201026133609.24262-4-brgl@bgdev.pl> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201026133609.24262-1-brgl@bgdev.pl> References: <20201026133609.24262-1-brgl@bgdev.pl> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201026_093629_009520_00678C4B X-CRM114-Status: GOOD ( 15.92 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-iio@vger.kernel.org, Bartosz Golaszewski , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Bartosz Golaszewski In order to simplify resource management and error paths in probe(), add a devm action that calls clk_disable_unprepare() at driver detach. Signed-off-by: Bartosz Golaszewski --- drivers/iio/adc/xilinx-xadc-core.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/iio/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c index b516280ccbd4..e0da6258092c 100644 --- a/drivers/iio/adc/xilinx-xadc-core.c +++ b/drivers/iio/adc/xilinx-xadc-core.c @@ -1185,6 +1185,13 @@ static int xadc_parse_dt(struct iio_dev *indio_dev, struct device_node *np, return 0; } +static void xadc_clk_disable_unprepare(void *data) +{ + struct clk *clk = data; + + clk_disable_unprepare(clk); +} + static int xadc_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -1262,6 +1269,11 @@ static int xadc_probe(struct platform_device *pdev) if (ret) goto err_free_samplerate_trigger; + ret = devm_add_action_or_reset(dev, + xadc_clk_disable_unprepare, xadc->clk); + if (ret) + goto err_free_samplerate_trigger; + /* * Make sure not to exceed the maximum samplerate since otherwise the * resulting interrupt storm will soft-lock the system. @@ -1280,7 +1292,7 @@ static int xadc_probe(struct platform_device *pdev) ret = request_irq(xadc->irq, xadc->ops->interrupt_handler, 0, dev_name(dev), indio_dev); if (ret) - goto err_clk_disable_unprepare; + goto err_free_samplerate_trigger; ret = xadc->ops->setup(pdev, indio_dev, xadc->irq); if (ret) @@ -1344,8 +1356,6 @@ static int xadc_probe(struct platform_device *pdev) err_free_irq: free_irq(xadc->irq, indio_dev); cancel_delayed_work_sync(&xadc->zynq_unmask_work); -err_clk_disable_unprepare: - clk_disable_unprepare(xadc->clk); err_free_samplerate_trigger: if (xadc->ops->flags & XADC_FLAGS_BUFFERED) iio_trigger_free(xadc->samplerate_trigger); @@ -1372,7 +1382,6 @@ static int xadc_remove(struct platform_device *pdev) } free_irq(xadc->irq, indio_dev); cancel_delayed_work_sync(&xadc->zynq_unmask_work); - clk_disable_unprepare(xadc->clk); return 0; } From patchwork Mon Oct 26 13:36:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 11857273 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7E369C2D0A3 for ; Mon, 26 Oct 2020 13:49:32 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F309421D42 for ; Mon, 26 Oct 2020 13:49:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="PcpowRZI"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="UnKuxJDL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F309421D42 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=3ar3Sd2cTYEBJ/Irh9BFKgBrb8+dOpMqE/JfDPGp6JI=; b=PcpowRZILykkVL6X60j1WVH8C hMEmRVQZL4ya9oNhuPf4pNcB5WNYRHDOySAD7EhQQreDkXaYgSVuLk6UHf66U+DLjyLSTdoXU3BWM ugoERDuaiVDIRYbBiGXkscPkHu0Gi7EyLb0SVuPGY1mXuNEMaeHRhoRZZwTGXJEgrLN9jJgiBBwHV iq+pvfIpU4zv9SFKa1u8txE7bQFtXMIdIyLYhVcbJMANwaL1qnVmA0BxjA+583/9flP33olVUYGdW vh1efYsgxJ/smoe5qzsDVwoYSQeYeZHRtxpuU1W7Zy7+hqPpOgGgPqNQYTYYQ+1ZdaxSGPunGKaJx VulraDVlw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kX2qK-0004yY-KI; Mon, 26 Oct 2020 13:47:24 +0000 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kX2fl-0008FG-Hd for linux-arm-kernel@lists.infradead.org; Mon, 26 Oct 2020 13:36:34 +0000 Received: by mail-wr1-x441.google.com with SMTP id h5so12557324wrv.7 for ; Mon, 26 Oct 2020 06:36:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2ELZQG2NaQttMYr9kJgm589fBatjQILmOfzJPCuqc5Y=; b=UnKuxJDLDxWVkgZLJZaKbCEGY8XmPdeCTb13G4N7oB+0BCGxI2N1raabhO7DLxB9gt baq0L2TyGPLzvLPriFZb6iprKVze14yzvC2oi0IHGX0VQ7eIziDOOfHhkHGhjZ+/pG+J DRrMOkin1ClHgXmGdfzMQkZOEhyDXcwGJn1RODHk8RkTyLURuFYcdBZcIoVFMOUXQ6sW mqF8fDmb/NRHoxLyR/+p572ecPm48+Vr+2Wp7uqv6GIKKdaQHv3CoJXZADWcgXwgplrm rrowddeaQhtAnDT9f4njAIUti8jdp9hszOl0iCQEXAqh0vqql92EqKpeugFKcb07SoOa 8Lkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2ELZQG2NaQttMYr9kJgm589fBatjQILmOfzJPCuqc5Y=; b=jlJsOp68YSOV3NfCGvpnqm9RkB9u2lIoLQB1eTc6CD7e2vgiCagmDX3iyAcBpjPg4N QuX2Skw1UG0ExcsJ4Ext+f5uSStIt19y8PGHl4FvkvjX1CTrwTEOprlqRUKC6jieNyQ0 ZTH0pvKKxzaur2vHj1Ut+v80D5icbr/KycZpWt5aOhSXHdcFbe50SekZ1ivNdd02Op8r G19TijmCNle0VhuILbYuviUx1cZFRxPknsF7TxcAnc1vQPp1zV9oBuWJnRwSB0l8YSGL gwpyZULCySJciyS3Gr0CNLoo2qm66E8hToMMRy0dPIpajzbyrjt5jE0uRWSIyveTtx5m qz8g== X-Gm-Message-State: AOAM533SvCiBp7WDy0pMFWA+u0ZRlgcONmNF9CqXiA7sWqrnoXYV+CdS PguZsjLNwE+Os5uvDiyfNKmMiQ== X-Google-Smtp-Source: ABdhPJxhDAD5/YV5fDmGymJd9GlecQXRex3X8eVcy0qKcqKJI+LHTdOXOv7purW24dthsFu4Ih1bUA== X-Received: by 2002:a5d:554b:: with SMTP id g11mr18112929wrw.370.1603719386608; Mon, 26 Oct 2020 06:36:26 -0700 (PDT) Received: from localhost.localdomain (lfbn-nic-1-190-206.w2-15.abo.wanadoo.fr. [2.15.39.206]) by smtp.gmail.com with ESMTPSA id f7sm23688991wrx.64.2020.10.26.06.36.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Oct 2020 06:36:25 -0700 (PDT) From: Bartosz Golaszewski To: Jonathan Cameron , Lars-Peter Clausen , Peter Meerwald-Stadler , Michal Simek Subject: [PATCH 4/5] iio: adc: xilinx: use devres for irq handling Date: Mon, 26 Oct 2020 14:36:08 +0100 Message-Id: <20201026133609.24262-5-brgl@bgdev.pl> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201026133609.24262-1-brgl@bgdev.pl> References: <20201026133609.24262-1-brgl@bgdev.pl> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201026_093631_065658_2994C7FB X-CRM114-Status: GOOD ( 17.14 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-iio@vger.kernel.org, Bartosz Golaszewski , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Bartosz Golaszewski Further simplify the remove() callback and error paths in probe() by using the managed variant of request_irq() as well as using a devm action for cancelling the delayed work at driver detach. Signed-off-by: Bartosz Golaszewski --- drivers/iio/adc/xilinx-xadc-core.c | 35 ++++++++++++++++++------------ 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/drivers/iio/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c index e0da6258092c..4440b7a9bd36 100644 --- a/drivers/iio/adc/xilinx-xadc-core.c +++ b/drivers/iio/adc/xilinx-xadc-core.c @@ -1192,6 +1192,13 @@ static void xadc_clk_disable_unprepare(void *data) clk_disable_unprepare(clk); } +static void xadc_cancel_delayed_work(void *data) +{ + struct delayed_work *work = data; + + cancel_delayed_work_sync(work); +} + static int xadc_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -1289,14 +1296,19 @@ static int xadc_probe(struct platform_device *pdev) } } - ret = request_irq(xadc->irq, xadc->ops->interrupt_handler, 0, - dev_name(dev), indio_dev); + ret = devm_request_irq(dev, xadc->irq, xadc->ops->interrupt_handler, 0, + dev_name(dev), indio_dev); + if (ret) + goto err_free_samplerate_trigger; + + ret = devm_add_action_or_reset(dev, xadc_cancel_delayed_work, + &xadc->zynq_unmask_work); if (ret) goto err_free_samplerate_trigger; ret = xadc->ops->setup(pdev, indio_dev, xadc->irq); if (ret) - goto err_free_irq; + goto err_free_samplerate_trigger; for (i = 0; i < 16; i++) xadc_read_adc_reg(xadc, XADC_REG_THRESHOLD(i), @@ -1304,7 +1316,7 @@ static int xadc_probe(struct platform_device *pdev) ret = xadc_write_adc_reg(xadc, XADC_REG_CONF0, conf0); if (ret) - goto err_free_irq; + goto err_free_samplerate_trigger; bipolar_mask = 0; for (i = 0; i < indio_dev->num_channels; i++) { @@ -1314,17 +1326,17 @@ static int xadc_probe(struct platform_device *pdev) ret = xadc_write_adc_reg(xadc, XADC_REG_INPUT_MODE(0), bipolar_mask); if (ret) - goto err_free_irq; + goto err_free_samplerate_trigger; ret = xadc_write_adc_reg(xadc, XADC_REG_INPUT_MODE(1), bipolar_mask >> 16); if (ret) - goto err_free_irq; + goto err_free_samplerate_trigger; /* Disable all alarms */ ret = xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF1_ALARM_MASK, XADC_CONF1_ALARM_MASK); if (ret) - goto err_free_irq; + goto err_free_samplerate_trigger; /* Set thresholds to min/max */ for (i = 0; i < 16; i++) { @@ -1339,7 +1351,7 @@ static int xadc_probe(struct platform_device *pdev) ret = xadc_write_adc_reg(xadc, XADC_REG_THRESHOLD(i), xadc->threshold[i]); if (ret) - goto err_free_irq; + goto err_free_samplerate_trigger; } /* Go to non-buffered mode */ @@ -1347,15 +1359,12 @@ static int xadc_probe(struct platform_device *pdev) ret = iio_device_register(indio_dev); if (ret) - goto err_free_irq; + goto err_free_samplerate_trigger; platform_set_drvdata(pdev, indio_dev); return 0; -err_free_irq: - free_irq(xadc->irq, indio_dev); - cancel_delayed_work_sync(&xadc->zynq_unmask_work); err_free_samplerate_trigger: if (xadc->ops->flags & XADC_FLAGS_BUFFERED) iio_trigger_free(xadc->samplerate_trigger); @@ -1380,8 +1389,6 @@ static int xadc_remove(struct platform_device *pdev) iio_trigger_free(xadc->convst_trigger); iio_triggered_buffer_cleanup(indio_dev); } - free_irq(xadc->irq, indio_dev); - cancel_delayed_work_sync(&xadc->zynq_unmask_work); return 0; } From patchwork Mon Oct 26 13:36:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 11857275 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F01ACC4363A for ; Mon, 26 Oct 2020 13:50:06 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3045821D42 for ; Mon, 26 Oct 2020 13:50:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="p2pvXT4Y"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="xULoTkoU" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3045821D42 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=DO+QJTIky2z/Um6AM8hLIgZ5+gnAChlS4S+whSyEvoo=; b=p2pvXT4YVJAhOL5GJ1jolmhd2 wox0toviPSklhaDTeZiZt2Id4au9/jZhONz+x1X2MXq9jJjjTPNFM3Tw2QGOXIHFcii1lB9jeSk0s GAvTcs38iTSq3+wViuLJuK4dk2pvZo1h4qmXkPS3Y0Mdj5ULM1vQ6HAbfdFm4Ht4nvCjTz7tuQ1JI iBgwAnQ5T+ZQ0OMXHesBssKqY/pcryHmu+Uep/SD66Q+oA+QY3bqObhCHR/8zyaz6vNoDW/jeUg19 hLbzJB91VbTEdFzzeCDCK0LyINTowfIL2SH5IOIlRtnsoBwz1yCTGZ6CCWIbWpx0oA+dTY7OjjZJb i+k9V5B+w==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kX2qp-0005Fs-Ki; Mon, 26 Oct 2020 13:47:55 +0000 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kX2fm-0008Fp-H9 for linux-arm-kernel@lists.infradead.org; Mon, 26 Oct 2020 13:36:37 +0000 Received: by mail-wr1-x441.google.com with SMTP id x7so12611661wrl.3 for ; Mon, 26 Oct 2020 06:36:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=k40eJc8Lhw98TUMyUtqdBZVrG65XsNSVzHSaCNt0jHc=; b=xULoTkoUGRbnpHi6ZghaIZ1Q5yiAkgzBSZomS+pZDERJpF71+9WHNz7PkKFZCppqnR E8TvUVRzJBWf61WOq6yMPk1rtsL/mjsrHd984WeDRag1X84yfn9JZ3/BUdFfpsyAhr9i r+3jGNJKjnN9NhccBQ3VVT/UqJwJoQO0rwTYfNAdIj3OK+AX71r8AOVUI8mt+ZO9CAjl crYeJmkgxX/876FoIJU0Li4C6oO8FT+cCgFCyan2kbT99hhNS3i2Q9r4i1ccDmqKiRT0 mMHQBprSDMOBi94y3N82AbCwRWdMXNsHegunbPSFZH3U49aHEKpZXieoIckKWFPib/GG 7/eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=k40eJc8Lhw98TUMyUtqdBZVrG65XsNSVzHSaCNt0jHc=; b=EGIyc4MCwEn8qup1a9CvxORqnd2elSJG1gc+0+HiTWtjaOBo95jvMWRuwtFJVLN6Zk b1msqRtiyUsDKGyxKH40nNEx5Wjg1Wu8mwvKFyeKQZiFNf0G5jS51ha7XC0ePximabL5 sxxUhLjVv4Qq/JfkA1K8QevlSojTRW9uKFIWLLUbMGZm2ccl2VorQwSFoEYxeNW5IbhR bTvAYcea3dkMrwj4CbUarG8oQSTiVy3VDks6HpfjhfHYUlwPiTpKiejtqlELg/wX1M7H kNFyDU35uCm2LVu0QaM36kngSOVASKhPQDjystsgXc5Yf3hLNC2h+JrCkOD/eVr53u7v 0ymg== X-Gm-Message-State: AOAM530gAANiSphMbomSxdo5FZeR2RZQK8Ed4HdK/KBmoGJZaCM9p72i 8C3JV4lsJN8QF8u/9rSvBiqg+w== X-Google-Smtp-Source: ABdhPJya7i/8CLwnUaaOp1aYoYaQe7iJhVlKyGV0P8+acTJoTJqeMcxGCcPsHQ982b6i6Dwhqn+clQ== X-Received: by 2002:a5d:5344:: with SMTP id t4mr17501589wrv.267.1603719387795; Mon, 26 Oct 2020 06:36:27 -0700 (PDT) Received: from localhost.localdomain (lfbn-nic-1-190-206.w2-15.abo.wanadoo.fr. [2.15.39.206]) by smtp.gmail.com with ESMTPSA id f7sm23688991wrx.64.2020.10.26.06.36.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Oct 2020 06:36:27 -0700 (PDT) From: Bartosz Golaszewski To: Jonathan Cameron , Lars-Peter Clausen , Peter Meerwald-Stadler , Michal Simek Subject: [PATCH 5/5] iio: adc: xilinx: use iio devres helpers Date: Mon, 26 Oct 2020 14:36:09 +0100 Message-Id: <20201026133609.24262-6-brgl@bgdev.pl> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201026133609.24262-1-brgl@bgdev.pl> References: <20201026133609.24262-1-brgl@bgdev.pl> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201026_093631_529649_39DE88DD X-CRM114-Status: GOOD ( 22.20 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-iio@vger.kernel.org, Bartosz Golaszewski , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Bartosz Golaszewski Shrink the code by using devres variants of all iio routines. This allows us to entirely drop the remove() callback as well as significantly simplifies error paths in probe(). Signed-off-by: Bartosz Golaszewski --- drivers/iio/adc/xilinx-xadc-core.c | 97 ++++++++++-------------------- 1 file changed, 32 insertions(+), 65 deletions(-) diff --git a/drivers/iio/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c index 4440b7a9bd36..c17705205456 100644 --- a/drivers/iio/adc/xilinx-xadc-core.c +++ b/drivers/iio/adc/xilinx-xadc-core.c @@ -706,11 +706,12 @@ static const struct iio_trigger_ops xadc_trigger_ops = { static struct iio_trigger *xadc_alloc_trigger(struct iio_dev *indio_dev, const char *name) { + struct device *dev = indio_dev->dev.parent; struct iio_trigger *trig; int ret; - trig = iio_trigger_alloc("%s%d-%s", indio_dev->name, - indio_dev->id, name); + trig = devm_iio_trigger_alloc(dev, "%s%d-%s", indio_dev->name, + indio_dev->id, name); if (trig == NULL) return ERR_PTR(-ENOMEM); @@ -718,15 +719,11 @@ static struct iio_trigger *xadc_alloc_trigger(struct iio_dev *indio_dev, trig->ops = &xadc_trigger_ops; iio_trigger_set_drvdata(trig, iio_priv(indio_dev)); - ret = iio_trigger_register(trig); + ret = devm_iio_trigger_register(dev, trig); if (ret) - goto error_free_trig; + return ERR_PTR(ret); return trig; - -error_free_trig: - iio_trigger_free(trig); - return ERR_PTR(ret); } static int xadc_power_adc_b(struct xadc *xadc, unsigned int seq_mode) @@ -1247,39 +1244,35 @@ static int xadc_probe(struct platform_device *pdev) return ret; if (xadc->ops->flags & XADC_FLAGS_BUFFERED) { - ret = iio_triggered_buffer_setup(indio_dev, - &iio_pollfunc_store_time, &xadc_trigger_handler, - &xadc_buffer_ops); + ret = devm_iio_triggered_buffer_setup(dev, indio_dev, + &iio_pollfunc_store_time, + &xadc_trigger_handler, + &xadc_buffer_ops); if (ret) return ret; xadc->convst_trigger = xadc_alloc_trigger(indio_dev, "convst"); - if (IS_ERR(xadc->convst_trigger)) { - ret = PTR_ERR(xadc->convst_trigger); - goto err_triggered_buffer_cleanup; - } + if (IS_ERR(xadc->convst_trigger)) + return PTR_ERR(xadc->convst_trigger); + xadc->samplerate_trigger = xadc_alloc_trigger(indio_dev, "samplerate"); - if (IS_ERR(xadc->samplerate_trigger)) { - ret = PTR_ERR(xadc->samplerate_trigger); - goto err_free_convst_trigger; - } + if (IS_ERR(xadc->samplerate_trigger)) + return PTR_ERR(xadc->samplerate_trigger); } xadc->clk = devm_clk_get(dev, NULL); - if (IS_ERR(xadc->clk)) { - ret = PTR_ERR(xadc->clk); - goto err_free_samplerate_trigger; - } + if (IS_ERR(xadc->clk)) + return PTR_ERR(xadc->clk); ret = clk_prepare_enable(xadc->clk); if (ret) - goto err_free_samplerate_trigger; + return ret; ret = devm_add_action_or_reset(dev, xadc_clk_disable_unprepare, xadc->clk); if (ret) - goto err_free_samplerate_trigger; + return ret; /* * Make sure not to exceed the maximum samplerate since otherwise the @@ -1288,27 +1281,28 @@ static int xadc_probe(struct platform_device *pdev) if (xadc->ops->flags & XADC_FLAGS_BUFFERED) { ret = xadc_read_samplerate(xadc); if (ret < 0) - goto err_free_samplerate_trigger; + return ret; + if (ret > XADC_MAX_SAMPLERATE) { ret = xadc_write_samplerate(xadc, XADC_MAX_SAMPLERATE); if (ret < 0) - goto err_free_samplerate_trigger; + return ret; } } ret = devm_request_irq(dev, xadc->irq, xadc->ops->interrupt_handler, 0, dev_name(dev), indio_dev); if (ret) - goto err_free_samplerate_trigger; + return ret; ret = devm_add_action_or_reset(dev, xadc_cancel_delayed_work, &xadc->zynq_unmask_work); if (ret) - goto err_free_samplerate_trigger; + return ret; ret = xadc->ops->setup(pdev, indio_dev, xadc->irq); if (ret) - goto err_free_samplerate_trigger; + return ret; for (i = 0; i < 16; i++) xadc_read_adc_reg(xadc, XADC_REG_THRESHOLD(i), @@ -1316,7 +1310,7 @@ static int xadc_probe(struct platform_device *pdev) ret = xadc_write_adc_reg(xadc, XADC_REG_CONF0, conf0); if (ret) - goto err_free_samplerate_trigger; + return ret; bipolar_mask = 0; for (i = 0; i < indio_dev->num_channels; i++) { @@ -1326,17 +1320,18 @@ static int xadc_probe(struct platform_device *pdev) ret = xadc_write_adc_reg(xadc, XADC_REG_INPUT_MODE(0), bipolar_mask); if (ret) - goto err_free_samplerate_trigger; + return ret; + ret = xadc_write_adc_reg(xadc, XADC_REG_INPUT_MODE(1), bipolar_mask >> 16); if (ret) - goto err_free_samplerate_trigger; + return ret; /* Disable all alarms */ ret = xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF1_ALARM_MASK, XADC_CONF1_ALARM_MASK); if (ret) - goto err_free_samplerate_trigger; + return ret; /* Set thresholds to min/max */ for (i = 0; i < 16; i++) { @@ -1351,51 +1346,23 @@ static int xadc_probe(struct platform_device *pdev) ret = xadc_write_adc_reg(xadc, XADC_REG_THRESHOLD(i), xadc->threshold[i]); if (ret) - goto err_free_samplerate_trigger; + return ret; } /* Go to non-buffered mode */ xadc_postdisable(indio_dev); - ret = iio_device_register(indio_dev); + ret = devm_iio_device_register(dev, indio_dev); if (ret) - goto err_free_samplerate_trigger; + return ret; platform_set_drvdata(pdev, indio_dev); - return 0; - -err_free_samplerate_trigger: - if (xadc->ops->flags & XADC_FLAGS_BUFFERED) - iio_trigger_free(xadc->samplerate_trigger); -err_free_convst_trigger: - if (xadc->ops->flags & XADC_FLAGS_BUFFERED) - iio_trigger_free(xadc->convst_trigger); -err_triggered_buffer_cleanup: - if (xadc->ops->flags & XADC_FLAGS_BUFFERED) - iio_triggered_buffer_cleanup(indio_dev); - - return ret; -} - -static int xadc_remove(struct platform_device *pdev) -{ - struct iio_dev *indio_dev = platform_get_drvdata(pdev); - struct xadc *xadc = iio_priv(indio_dev); - - iio_device_unregister(indio_dev); - if (xadc->ops->flags & XADC_FLAGS_BUFFERED) { - iio_trigger_free(xadc->samplerate_trigger); - iio_trigger_free(xadc->convst_trigger); - iio_triggered_buffer_cleanup(indio_dev); - } - return 0; } static struct platform_driver xadc_driver = { .probe = xadc_probe, - .remove = xadc_remove, .driver = { .name = "xadc", .of_match_table = xadc_of_match_table,