Received: by 10.223.185.116 with SMTP id b49csp3899581wrg; Mon, 19 Feb 2018 07:49:28 -0800 (PST) X-Google-Smtp-Source: AH8x227Y2A7twafAzvHpA9uRzpdWGyaTRysvlRMQ+bT0SEEQqEZjODtYl0hW/6pMY64lmrmGEwnR X-Received: by 2002:a17:902:7614:: with SMTP id k20-v6mr14611474pll.343.1519055368223; Mon, 19 Feb 2018 07:49:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519055368; cv=none; d=google.com; s=arc-20160816; b=sVn4CbZ9z1Y9guUXuAVjPbLB8ScB8RChXSSYYl1Zj2t34HfkcAgKBjApmxyQsAWMkc w6UCgPdSv0AcCZCroG4vhevjvi4aLp6/vdcGz89SBdnpfEmIEcHr3H/q2/bGYqcUT4yY 08CUWBmaj4tWHY/y0mwkc3tTL89QFqVZnBagkbNu5om2sndYBlv31QI/rp2OQbAIuxx1 3taomdbG2nVj6RbA6gXOLvnl+iQpER5Cnnjl34ULHVbLqhsXPa4qR/K0jGyQxcp1kJM+ bXiMAErGO+0spyWMd3xkPuwNFfsEavHwRJ2cf1ak22MIIiydXJ4qFhwv2sB5O9Qd4l9D XVPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:cms-type:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:dkim-filter :arc-authentication-results; bh=AmhzNKGMlnbctYfqszu5s38S6Cd0JoeGyXFshw4khTU=; b=AugsORCNJstCv5GIGXSVg6tR4NGG3QvtoOYdhDyODhLl5NgFW6VYcQLOWNzgvFhVqw FIoLbNJdQ1TE7lemV1qOpT4gUfdtbbrxBNg2MM7y2uXWDffmdBsHpLeZ7zGslEz2hKWm 5oF6+JaAGuBEEitPpilGzN8C7CRn1k/ooNBgZoC6Q5+niqgT/bbt80hqhpRLrwTdW6bV 3jt3QSpsTKX99j359dght64zUkeNB0P7DF2bl+RTski7AlQH9SRA5N1Z1uSrINOK3dL8 /o8AfVHFn7upbetPBfAu1wBZWQNrwAWmfSO5tU7QZWJKnsiEaGLOAhrS7G5GXMcXB7sT RycA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=kQ1GPfSt; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k21si2459299pgf.382.2018.02.19.07.49.13; Mon, 19 Feb 2018 07:49:28 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=kQ1GPfSt; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753288AbeBSPrH (ORCPT + 99 others); Mon, 19 Feb 2018 10:47:07 -0500 Received: from mailout1.w1.samsung.com ([210.118.77.11]:57031 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753047AbeBSPpJ (ORCPT ); Mon, 19 Feb 2018 10:45:09 -0500 Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20180219154506euoutp01975445ecd9b9ff9010bf02f17a1a5fef~UxJIVVaWE0858208582euoutp013; Mon, 19 Feb 2018 15:45:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20180219154506euoutp01975445ecd9b9ff9010bf02f17a1a5fef~UxJIVVaWE0858208582euoutp013 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1519055106; bh=AmhzNKGMlnbctYfqszu5s38S6Cd0JoeGyXFshw4khTU=; h=From:To:Cc:Subject:Date:In-reply-to:References:From; b=kQ1GPfStMB+5e/mqejSuUggV1WaesThmZulLwyQAeb3ZrDce8fItyF0aTSEIMiROR aUsuTb3i2mGv5Q6tLoZfi0NNLPaCU0GEPKiUteIHlS7/He7JVgZs/w6KuOnRX5ckFo NVrtXxCMIi3ZspDtgMAxl9M4WDqPKJsazKhFfplA= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20180219154504eucas1p14fa00972895ed464c44eb3fb22d3add6~UxJGhsXiE1022110221eucas1p1H; Mon, 19 Feb 2018 15:45:04 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id EB.C8.05700.EF0FA8A5; Mon, 19 Feb 2018 15:45:02 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20180219154500eucas1p25e9f3bf44901cb2bbe9720cdc5bdd855~UxJDN6bvJ0919109191eucas1p23; Mon, 19 Feb 2018 15:45:00 +0000 (GMT) X-AuditID: cbfec7f2-5ffe19c000011644-56-5a8af0fe8a02 Received: from eusync4.samsung.com ( [203.254.199.214]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 73.DB.04178.CF0FA8A5; Mon, 19 Feb 2018 15:45:00 +0000 (GMT) Received: from AMDC2075.DIGITAL.local ([106.120.51.25]) by eusync4.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0P4E00C9VMEN0Z00@eusync4.samsung.com>; Mon, 19 Feb 2018 15:45:00 +0000 (GMT) From: Maciej Purski To: linux-media@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org Cc: Michael Turquette , Stephen Boyd , Inki Dae , Joonyoung Shim , Seung-Woo Kim , Kyungmin Park , David Airlie , Kukjin Kim , Krzysztof Kozlowski , Mauro Carvalho Chehab , Andrzej Pietrasiewicz , Jacek Anaszewski , Kamil Debski , Jeongtae Park , Andrzej Hajda , Russell King , Sylwester Nawrocki , Thibault Saunier , Javier Martinez Canillas , Hans Verkuil , Hoegeun Kwon , Bartlomiej Zolnierkiewicz , Marek Szyprowski , Maciej Purski Subject: [PATCH 5/8] drm/exynos: mic: Use clk bulk API Date: Mon, 19 Feb 2018 16:44:03 +0100 Message-id: <1519055046-2399-6-git-send-email-m.purski@samsung.com> X-Mailer: git-send-email 2.7.4 In-reply-to: <1519055046-2399-1-git-send-email-m.purski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAAzWSa0iTYRTHe967w+nLNH2w8sMiCCNLiHqwCKMLLyFdoIsYpFNfNNJpm1pe smmkbVnqKrzQxUjNptM5nbdYF1vTFBVrmc3UQLqYlppoZaFtvvbtd875n//hHA6DS16QPswp eSKvkMtipZSIaLT+7t24MKUJ3axSr0b2mh4SXe15iaGSsRwC1RXVksg2O0mhqYJigCYfaCik Hckn0KDJQKCJb9UYsujfYOjLcB+BijtySJQ3Oo6j3l4DjbqzJmhkHO0n0XTuMIlet96iUK7B RKKi3scYartpBqh0zE4gvWWIRhXGvxjq69yLnk84TBb66whUdH2MQjNPtXiQL/e6vw/nJgcu 0dyNP3Uk11IyRHNGnZrimuY+kNzIlXaMqy+7wDXkOfLXGnSAmzH6cjZLJn3INVS0I4qPPZXM KzbtDBfFaAzlZMJ7r3PZv21ABcolGsAwkN0Cr1iOa4CIkbCVAI6WmEgNcHEEMwCWmc462amZ y67EBFEFgHkdtuVgEcAW8yvc6USxfrA6J8zZ4MlaAbzTEuzU4OwcDfPnnwFnwYPdCtVWFeZk gl0H389/WmIxuxsO1ubjwjRf+K5HvcQu7B744ZGZchpBtp+GhiEjKYj2wI+Vv4DAHvBrewMt 8GqovvwMEzgN9s22UgKnw8xBw7JmO5zRNiwNwFk3qG0sxIVTiOHl7OWrcLC2Zo2Au+C9t5HC uoUAXtTV0fnApxSs0AFvPkkZF80rA+T8WX+lLE6ZJI/2j4yPMwLHc3UttP9oBrOvItoAywCp q5gd0oRKSFmyMiWuDUAGl3qKgwccKXGULCWVV8SHKZJieWUbWMUQUm/xyfUZoRI2WpbIn+b5 BF7xv4oxLj4qoLWHWY9mFZQfS8VuZykOyIdTpk0Xmt3GVzWK7j5kMzrN9xfT9EHwcFP68OKT bU+8PM0hZbaqwJ9n/FUnKuj6xye7utxXno7X2a1MCPnuoCx8XzdfOD+Ir30+EuFe+r0q28/+ ed+G89r9IDrJZP/BWEIkVdz6ALQ7zStQX3bELCWUMbIAP1yhlP0Di6r/fVgDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAAzWRW0hTcRzH+5+7Y6vDmnrS2MOkFykvYPIPQoSpnIeEQKj0xUaeVHJedtxo QTSLXB5NpyY6UxC8FMPLnJduGrFsZqXDqct0XkIoxYmWtNBktBm9ffj8+H6/Dz8KlTZjEVR+ YSmnKVQVKAgR9tE/7j5zsCNkxbX6TsKF3ikcPpyaQGDzhhGD/U19OJz9tU3AnVozgNtPBALW rZgwuDhkxaB3qxuBYz1zCFxfnsag+b0RhzVrmyh0Oq0knLzrJaFtzY3DH1XLOJx52ULAKusQ DpucrxFobxgFsG1jAYM9Y0sk7LIdIHD6Qyp86w2U+N39GGyq3yDg7ps6NFnOzrinUXZ7/j7J PvrTj7MvmpdI1mapINhnvlWcXakcR9iBjjvsYE3AVw9aALtrk7OzY2XkRXGW6HwOV5Cv4zSx SVdFeYK1Ey/2hN0s35sFBtApFUAIxdAJjK/8KRJkKd0BGN9IrABEAS5DGKtpCBMARRF0NNNt zA56Ge0AzFdPOx4MoPQByVQbioN8nE5kKhyGwyKMPsV49r8dsoRWMot9JvTfmJz5MlVxyCF0 CrP6apT4N6xknCsuwgTEbeCIBcg4La/OVfPxMbxKzWsLc2OuFaltIPCxYcfewHPg6s+wA5oC CrGEXhKypLhKx+vVdsBQqEImuTAfUJIclf4WpynK1mgLON4OIilMES5xxumzpHSuqpS7wXHF nOb/FaFCIgyAV3j25cLl78blnHvJau/6iN6VXqmzRMkyJJ/CM9fPhSpht2XiaOOM8sFkW8Sw kB6mOx2z63SqXdrS7KjPId60rk0wkOlvvV7va6iNqLmSNnos9Ky5No+sStn67X9XMiogj8Ut lxLJuQR0sNf483ZSapRjJ7LRnN8+QpwoUWB8nio+GtXwqr/GywcirQIAAA== X-CMS-MailID: 20180219154500eucas1p25e9f3bf44901cb2bbe9720cdc5bdd855 X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20180219154500eucas1p25e9f3bf44901cb2bbe9720cdc5bdd855 X-RootMTR: 20180219154500eucas1p25e9f3bf44901cb2bbe9720cdc5bdd855 References: <1519055046-2399-1-git-send-email-m.purski@samsung.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Using bulk clk functions simplifies the driver's code. Use devm_clk_bulk functions instead of iterating over an array of clks. Signed-off-by: Maciej Purski --- drivers/gpu/drm/exynos/exynos_drm_mic.c | 41 +++++++++++---------------------- 1 file changed, 14 insertions(+), 27 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c index 2174814..276558a 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_mic.c +++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c @@ -88,7 +88,7 @@ #define MIC_BS_SIZE_2D(x) ((x) & 0x3fff) -static char *clk_names[] = { "pclk_mic0", "sclk_rgb_vclk_to_mic0" }; +static const char *const clk_names[] = { "pclk_mic0", "sclk_rgb_vclk_to_mic0" }; #define NUM_CLKS ARRAY_SIZE(clk_names) static DEFINE_MUTEX(mic_mutex); @@ -96,7 +96,7 @@ struct exynos_mic { struct device *dev; void __iomem *reg; struct regmap *sysreg; - struct clk *clks[NUM_CLKS]; + struct clk_bulk_data *clks; bool i80_mode; struct videomode vm; @@ -338,10 +338,8 @@ static const struct component_ops exynos_mic_component_ops = { static int exynos_mic_suspend(struct device *dev) { struct exynos_mic *mic = dev_get_drvdata(dev); - int i; - for (i = NUM_CLKS - 1; i > -1; i--) - clk_disable_unprepare(mic->clks[i]); + clk_bulk_disable_unprepare(NUM_CLKS, mic->clks); return 0; } @@ -349,19 +347,8 @@ static int exynos_mic_suspend(struct device *dev) static int exynos_mic_resume(struct device *dev) { struct exynos_mic *mic = dev_get_drvdata(dev); - int ret, i; - - for (i = 0; i < NUM_CLKS; i++) { - ret = clk_prepare_enable(mic->clks[i]); - if (ret < 0) { - DRM_ERROR("Failed to enable clock (%s)\n", - clk_names[i]); - while (--i > -1) - clk_disable_unprepare(mic->clks[i]); - return ret; - } - } - return 0; + + return clk_bulk_prepare_enable(NUM_CLKS, mic->clks); } #endif @@ -374,7 +361,7 @@ static int exynos_mic_probe(struct platform_device *pdev) struct device *dev = &pdev->dev; struct exynos_mic *mic; struct resource res; - int ret, i; + int ret; mic = devm_kzalloc(dev, sizeof(*mic), GFP_KERNEL); if (!mic) { @@ -405,16 +392,16 @@ static int exynos_mic_probe(struct platform_device *pdev) goto err; } - for (i = 0; i < NUM_CLKS; i++) { - mic->clks[i] = devm_clk_get(dev, clk_names[i]); - if (IS_ERR(mic->clks[i])) { - DRM_ERROR("mic: Failed to get clock (%s)\n", - clk_names[i]); - ret = PTR_ERR(mic->clks[i]); - goto err; - } + mic->clks = devm_clk_bulk_alloc(dev, NUM_CLKS, clk_names); + if (IS_ERR(mic->clks)) { + ret = PTR_ERR(mic->clks); + goto err; } + ret = devm_clk_bulk_get(dev, NUM_CLKS, mic->clks); + if (ret < 0) + goto err; + platform_set_drvdata(pdev, mic); mic->bridge.funcs = &mic_bridge_funcs; -- 2.7.4