From patchwork Sat Sep 14 18:04:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cristian Ciocaltea X-Patchwork-Id: 1985678 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=collabora.com header.i=@collabora.com header.a=rsa-sha256 header.s=mail header.b=BWS0aQzl; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-pci+bounces-13215-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4X5fHJ2kZnz1y1T for ; Sun, 15 Sep 2024 04:05:48 +1000 (AEST) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id F31DB1F22508 for ; Sat, 14 Sep 2024 18:05:45 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 372CF1D1F55; Sat, 14 Sep 2024 18:05:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="BWS0aQzl" X-Original-To: linux-pci@vger.kernel.org Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 27A961D0155; Sat, 14 Sep 2024 18:05:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726337135; cv=none; b=WLPHPMj3oDnqB5Qt3cUllM07iV4Zert0qYkBhaH39nWZts/8cwkLUaloUxPkYMpxZa2VaWP84ZA0LOtqh+AdPOLVnkds9gZsV9tmiaDrSB9f0ZUUsKG+tJl52pv4u9/YwW2xmmIynxGXVb+EyHmLDwMJdWWuCVK/RV+dC2QQ1Pk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726337135; c=relaxed/simple; bh=YBD7ROn/m+4hx/YE8/G04zWv2dlzT0LgAGoiccmV39I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=m3stud7DJDF1cG3wjbhPSxpfSyQURPxwp26WnRgV/W8ubyXaNPMwdQ7P4Bc0HBM8AOre2M72QtXFz+46f4Im2FpiyvcE9KZXC1zBH+XE6Eb9hrLjqtV03uGnj2b0ycPyjPOwNB74jyVfQ9WxQXE8CRcvMBgxnD2J/bIp60/oQ+Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=BWS0aQzl; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1726337131; bh=YBD7ROn/m+4hx/YE8/G04zWv2dlzT0LgAGoiccmV39I=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=BWS0aQzlUguFPj0Ycf7Wj9K5lKxfLxazx4z3WKI1UY6jLRH0huKQSQnhhDqPjWa9g NfcX5LKO4u9/0MtO1BVZTDDPua1c5jA/EhQ48cLYKi795ApaOQFJu1rQXb+LA+iNOi AZEvHsQ1XiWgFZwDXadcatZzL6V6EOgJVhDWnoUDDzazGku1CV5hNFJhxoKR6bphyp pmrEoOYjRfx8G0NJyLvFkj6T4oWMb+4zGn8s3OgEMAbDOUGd+S0WhT27ldI9R4eh6/ oYgDTqd9XMDdj/2xerelohtedgH8VJYZUxltnoRGqaJnrIaTklwpi086keA5voklRg PVyQpx1qjIKsA== Received: from localhost (unknown [188.27.55.48]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by bali.collaboradmins.com (Postfix) with ESMTPSA id 0DD6717E3608; Sat, 14 Sep 2024 20:05:31 +0200 (CEST) From: Cristian Ciocaltea Date: Sat, 14 Sep 2024 21:04:54 +0300 Subject: [PATCH 1/4] clk: Provide devm_clk_bulk_get_all_enabled() helper Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240914-clk_bulk_ena_fix-v1-1-ce3537585c06@collabora.com> References: <20240914-clk_bulk_ena_fix-v1-0-ce3537585c06@collabora.com> In-Reply-To: <20240914-clk_bulk_ena_fix-v1-0-ce3537585c06@collabora.com> To: Michael Turquette , Stephen Boyd , Russell King , Matthias Brugger , AngeloGioacchino Del Regno , Jingoo Han , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Bjorn Helgaas , Krzysztof Kozlowski , Alim Akhtar Cc: kernel@collabora.com, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-pci@vger.kernel.org, linux-samsung-soc@vger.kernel.org X-Mailer: b4 0.14.1 Commit 265b07df758a ("clk: Provide managed helper to get and enable bulk clocks") added devm_clk_bulk_get_all_enable() function, but missed to return the number of clocks stored in the clk_bulk_data table referenced by the clks argument. Without knowing the number, it's not possible to iterate these clocks when needed, hence the argument is useless and could have been simply removed. Introduce devm_clk_bulk_get_all_enabled() variant, which is consistent with devm_clk_bulk_get_all() in terms of the returned value: > 0 if one or more clocks have been stored = 0 if there are no clocks < 0 if an error occurred Moreover, the naming is consistent with devm_clk_get_enabled(), i.e. use the past form of 'enable'. Signed-off-by: Cristian Ciocaltea Reviewed-by: AngeloGioacchino Del Regno --- drivers/clk/clk-devres.c | 34 ++++++++++++++++++++++++++++++++++ include/linux/clk.h | 24 ++++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c index 82ae1f26e634..4203aaaa7544 100644 --- a/drivers/clk/clk-devres.c +++ b/drivers/clk/clk-devres.c @@ -250,6 +250,40 @@ int __must_check devm_clk_bulk_get_all_enable(struct device *dev, } EXPORT_SYMBOL_GPL(devm_clk_bulk_get_all_enable); +int __must_check devm_clk_bulk_get_all_enabled(struct device *dev, + struct clk_bulk_data **clks) +{ + struct clk_bulk_devres *devres; + int ret; + + devres = devres_alloc(devm_clk_bulk_release_all_enable, + sizeof(*devres), GFP_KERNEL); + if (!devres) + return -ENOMEM; + + ret = clk_bulk_get_all(dev, &devres->clks); + if (ret <= 0) + goto err_free_devres; + + *clks = devres->clks; + devres->num_clks = ret; + + ret = clk_bulk_prepare_enable(devres->num_clks, *clks); + if (ret) { + clk_bulk_put_all(devres->num_clks, devres->clks); + goto err_free_devres; + } + + devres_add(dev, devres); + + return devres->num_clks; + +err_free_devres: + devres_free(devres); + return ret; +} +EXPORT_SYMBOL_GPL(devm_clk_bulk_get_all_enabled); + static int devm_clk_match(struct device *dev, void *res, void *data) { struct clk **c = res; diff --git a/include/linux/clk.h b/include/linux/clk.h index 851a0f2cf42c..158c5072852e 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h @@ -511,6 +511,24 @@ int __must_check devm_clk_bulk_get_all(struct device *dev, int __must_check devm_clk_bulk_get_all_enable(struct device *dev, struct clk_bulk_data **clks); +/** + * devm_clk_bulk_get_all_enabled - Get and enable all clocks of the consumer (managed) + * @dev: device for clock "consumer" + * @clks: pointer to the clk_bulk_data table of consumer + * + * Returns a positive value for the number of clocks obtained while the + * clock references are stored in the clk_bulk_data table in @clks field. + * Returns 0 if there're none and a negative value if something failed. + * + * This helper function allows drivers to get all clocks of the + * consumer and enables them in one operation with management. + * The clks will automatically be disabled and freed when the device + * is unbound. + */ + +int __must_check devm_clk_bulk_get_all_enabled(struct device *dev, + struct clk_bulk_data **clks); + /** * devm_clk_get - lookup and obtain a managed reference to a clock producer. * @dev: device for clock "consumer" @@ -1040,6 +1058,12 @@ static inline int __must_check devm_clk_bulk_get_all_enable(struct device *dev, return 0; } +static inline int __must_check devm_clk_bulk_get_all_enabled(struct device *dev, + struct clk_bulk_data **clks) +{ + return 0; +} + static inline struct clk *devm_get_clk_from_child(struct device *dev, struct device_node *np, const char *con_id) { From patchwork Sat Sep 14 18:04:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cristian Ciocaltea X-Patchwork-Id: 1985679 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=collabora.com header.i=@collabora.com header.a=rsa-sha256 header.s=mail header.b=Y3BBf5hx; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45d1:ec00::1; helo=ny.mirrors.kernel.org; envelope-from=linux-pci+bounces-13216-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org [IPv6:2604:1380:45d1:ec00::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4X5fHN6Rzcz1y1T for ; Sun, 15 Sep 2024 04:05:52 +1000 (AEST) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id DE9271C21349 for ; Sat, 14 Sep 2024 18:05:50 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A86BA1D2201; Sat, 14 Sep 2024 18:05:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="Y3BBf5hx" X-Original-To: linux-pci@vger.kernel.org Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CD7541D0483; Sat, 14 Sep 2024 18:05:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726337135; cv=none; b=GIqliCF8utCxypceH37WNNTmBONBZnSuD1r6yKgSSU6dNzJN0jIq1yQPPj7izKUZF01ZqNHhslLAcmubL5D/FT7Uqijs8yCFZ1ERyrJcJahFq0Nh21F4KWQA7gPf98CVhVHqGBaPls5ljK1AuiV16zLWanqR4DqDR+Sg564NOGk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726337135; c=relaxed/simple; bh=dq/7n5tvMY7OuKBFVI6eGVpyHXnigzcGlUpBjIjzYY4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=amkWA7POjN4eZAWkJm8RoGgcoSRJ0hcGYM2vziryoEFFHVSCguvmoC6AvF74MYZUPi+0hCob0Vp3FCTZYrQh+LU1HgMNSFg3gObJYuuI2Gh2AfaaOxZBGGs5s0KsNCNt9iu+aM/yvf2dj261OU8L5SJPOcPz7lU7a3ezwSYZJE4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=Y3BBf5hx; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1726337131; bh=dq/7n5tvMY7OuKBFVI6eGVpyHXnigzcGlUpBjIjzYY4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Y3BBf5hxlCuSDPu1+AluaS4tOepIRBZjK2FifiEKfkjMNWzP0wmlk6crkFtC+yOAw rYrsXL5Erihlqpk3mkc1kGZP89AkiIk4PGZyiFRirJtQs1F3IjSxCQrhE2q8BV8LXc 0rgv0Io/oWa5pjK7FOkvKHAC6rc+whfkE83diX8P1YijeM836hX+i/69GkDeQNsSGS WhfvyN97K42W977+U1sAnVW2E1bN2u4jNEhdZLFw4u9tdlgmU21JBqxcN+m9h1sLA5 WwnBvb753+J5qwaH3f39dfnkMELZhQbdZRDlzlsxZumEZ2ztYQGvuOG92Jw3bjxxw2 vIG4Amu2XStBA== Received: from localhost (unknown [188.27.55.48]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by bali.collaboradmins.com (Postfix) with ESMTPSA id C72A217E360A; Sat, 14 Sep 2024 20:05:31 +0200 (CEST) From: Cristian Ciocaltea Date: Sat, 14 Sep 2024 21:04:55 +0300 Subject: [PATCH 2/4] soc: mediatek: pwrap: Switch to devm_clk_bulk_get_all_enabled() Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240914-clk_bulk_ena_fix-v1-2-ce3537585c06@collabora.com> References: <20240914-clk_bulk_ena_fix-v1-0-ce3537585c06@collabora.com> In-Reply-To: <20240914-clk_bulk_ena_fix-v1-0-ce3537585c06@collabora.com> To: Michael Turquette , Stephen Boyd , Russell King , Matthias Brugger , AngeloGioacchino Del Regno , Jingoo Han , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Bjorn Helgaas , Krzysztof Kozlowski , Alim Akhtar Cc: kernel@collabora.com, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-pci@vger.kernel.org, linux-samsung-soc@vger.kernel.org X-Mailer: b4 0.14.1 The helper devm_clk_bulk_get_all_enable() is partially broken and will be dropped since it missed to return the number of clocks stored in the clk_bulk_data table referenced by the clks argument. Use the newly introduced devm_clk_bulk_get_all_enabled() variant instead, which is consistent with devm_clk_bulk_get_all() in terms of the returned value: > 0 if one or more clocks have been stored = 0 if there are no clocks < 0 if an error occurred Signed-off-by: Cristian Ciocaltea Reviewed-by: AngeloGioacchino Del Regno --- drivers/soc/mediatek/mtk-pmic-wrap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/soc/mediatek/mtk-pmic-wrap.c b/drivers/soc/mediatek/mtk-pmic-wrap.c index 9fdc0ef79202..0bcd85826375 100644 --- a/drivers/soc/mediatek/mtk-pmic-wrap.c +++ b/drivers/soc/mediatek/mtk-pmic-wrap.c @@ -2518,8 +2518,8 @@ static int pwrap_probe(struct platform_device *pdev) } } - ret = devm_clk_bulk_get_all_enable(wrp->dev, &clk); - if (ret) + ret = devm_clk_bulk_get_all_enabled(wrp->dev, &clk); + if (ret < 0) return dev_err_probe(wrp->dev, ret, "failed to get clocks\n"); From patchwork Sat Sep 14 18:04:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cristian Ciocaltea X-Patchwork-Id: 1985680 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=collabora.com header.i=@collabora.com header.a=rsa-sha256 header.s=mail header.b=RbAqrqcm; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45e3:2400::1; helo=sv.mirrors.kernel.org; envelope-from=linux-pci+bounces-13217-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org [IPv6:2604:1380:45e3:2400::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4X5fHb13l8z1y1T for ; Sun, 15 Sep 2024 04:06:03 +1000 (AEST) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 8E46328407C for ; Sat, 14 Sep 2024 18:06:01 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 526D71D2239; Sat, 14 Sep 2024 18:05:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="RbAqrqcm" X-Original-To: linux-pci@vger.kernel.org Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 84AD71D1726; Sat, 14 Sep 2024 18:05:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726337136; cv=none; b=Om5mP6xjUFnZW9c+SYlNM4bFiUBaVSXUovcjb4pvjhp3iUuEcDPd5q0EMpgHc85Zg7ChszuLBJj6aSONdOEY6WlayNQrxcdmGm5Tif8iwzYJJAL5RGOddZfZ0ondFd8mZOJ8xnRCzNXBVqqBWFG56HtZEc8oBb38mvY/mqj/Wf4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726337136; c=relaxed/simple; bh=3muyT9X92PcA9kU13x/WqK9DhbUrh5gBlt2HSvkCVgs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=E/8AjZnms4HTnUnJos32t9bq0whr/nIUMcQJMCPAW6QxrSdztGrlqUcJuGa3qqter8vigCsE873doEdQoRL1RT6DckwLewHxcL2/2SDO5IRIETpNb+oT7z9x4ghoFHUWHrWEJ8RubOeuQ+XMmoYi9tWjl5SdrIPdkgabcAhlCaM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=RbAqrqcm; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1726337132; bh=3muyT9X92PcA9kU13x/WqK9DhbUrh5gBlt2HSvkCVgs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=RbAqrqcmtU/7FKhKxF1SNp32+Av4HgrUsjsOkQFJUl9t4sUymWbNzmAv+eiQX7lNZ BcZ473sYUReWgjDUKFmPb1IYwXAabmFOSuGplcz/QBqZNCMFpwKaFsBZnV84fP074L OXujDH2OfFAsbuykYA8nlkL+6PQBeGiDfKk1EHJ42bHVv+uLpAFgN/OBI7HVeyTMmM lbOx2AsSaZ5ZUVlIfh39bMVS+o+TWZK6kSKZACfxjet2uCM/pbbMC7SEW62dVM1D5t 61VxPVxuOzM0BFoBxJFlg1ZFJpaXwzLk4RrxB5XXhdm21jd59XQzVFZl4yQDWILkqT KJEkiyGsqVo7w== Received: from localhost (unknown [188.27.55.48]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by bali.collaboradmins.com (Postfix) with ESMTPSA id 9E6B617E360C; Sat, 14 Sep 2024 20:05:32 +0200 (CEST) From: Cristian Ciocaltea Date: Sat, 14 Sep 2024 21:04:56 +0300 Subject: [PATCH 3/4] PCI: exynos: Switch to devm_clk_bulk_get_all_enabled() Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240914-clk_bulk_ena_fix-v1-3-ce3537585c06@collabora.com> References: <20240914-clk_bulk_ena_fix-v1-0-ce3537585c06@collabora.com> In-Reply-To: <20240914-clk_bulk_ena_fix-v1-0-ce3537585c06@collabora.com> To: Michael Turquette , Stephen Boyd , Russell King , Matthias Brugger , AngeloGioacchino Del Regno , Jingoo Han , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Bjorn Helgaas , Krzysztof Kozlowski , Alim Akhtar Cc: kernel@collabora.com, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-pci@vger.kernel.org, linux-samsung-soc@vger.kernel.org X-Mailer: b4 0.14.1 The helper devm_clk_bulk_get_all_enable() is partially broken and will be dropped since it missed to return the number of clocks stored in the clk_bulk_data table referenced by the clks argument. Use the newly introduced devm_clk_bulk_get_all_enabled() variant instead, which is consistent with devm_clk_bulk_get_all() in terms of the returned value: > 0 if one or more clocks have been stored = 0 if there are no clocks < 0 if an error occurred Signed-off-by: Cristian Ciocaltea --- drivers/pci/controller/dwc/pci-exynos.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/controller/dwc/pci-exynos.c b/drivers/pci/controller/dwc/pci-exynos.c index fa45da28a218..056cebd4e0ba 100644 --- a/drivers/pci/controller/dwc/pci-exynos.c +++ b/drivers/pci/controller/dwc/pci-exynos.c @@ -300,7 +300,7 @@ static int exynos_pcie_probe(struct platform_device *pdev) if (IS_ERR(ep->elbi_base)) return PTR_ERR(ep->elbi_base); - ret = devm_clk_bulk_get_all_enable(dev, &ep->clks); + ret = devm_clk_bulk_get_all_enabled(dev, &ep->clks); if (ret < 0) return ret; From patchwork Sat Sep 14 18:04:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cristian Ciocaltea X-Patchwork-Id: 1985681 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=collabora.com header.i=@collabora.com header.a=rsa-sha256 header.s=mail header.b=PiLdGvn1; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45d1:ec00::1; helo=ny.mirrors.kernel.org; envelope-from=linux-pci+bounces-13218-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org [IPv6:2604:1380:45d1:ec00::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4X5fHy0zwwz1y1T for ; Sun, 15 Sep 2024 04:06:22 +1000 (AEST) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 0540E1C21562 for ; Sat, 14 Sep 2024 18:06:19 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3C79B1D319B; Sat, 14 Sep 2024 18:05:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="PiLdGvn1" X-Original-To: linux-pci@vger.kernel.org Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5F7B71D1F68; Sat, 14 Sep 2024 18:05:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726337137; cv=none; b=O1beia1fkOkTPNLH/RbuntUF6Cu6DaxvSPr+St5nnI8VNqY+gA2g+OWySKwtc/yLpGSJQF7XkkIgcOLJzvlVT+w8s8DTm4SG3OPfRDWhRWrN0q2TBETICOcNhgONCLSh1pq3kriT17SspYTZLi3Ng13vHWJXiPybZMVpmyqY+bU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726337137; c=relaxed/simple; bh=bX3hfSvdivSwqj787dVv//EFjHQaHvkTiKg8rAMVnOA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=adN/PMw4l+Ga50LgxDlUCrktuXVE4NNctJ9wies+GyKnizvj6MtKCsTuanNHM0awIbSKFoZE3PCHG8j8QLID7ZfRc1bZ5NNtCgnBt7Z6hsQOfRTXA9zG6Cb6R1TyLYAaLJRobUeZyUDG6rmfVhS8O1veiX6ihTrFpeahj1OHHPQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=PiLdGvn1; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1726337133; bh=bX3hfSvdivSwqj787dVv//EFjHQaHvkTiKg8rAMVnOA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=PiLdGvn1mF6o4/igmFmYwt5NOUNLrTMBo7g10pSJbl3riizN5P9WV2t2abw5+N255 aO1EQTfE76P2tfpvQZQk+L3/VHoMZY8W5ghfjmBZ2tQ5F195dUQe91afNPmrJmudjL SWyfRqs6wd5mKbN0RbolVG1gGKW2GsmKo7Y+N+HktoHBx9siqcljeiIfKrQFXj2PdV OV3+QjiSUq1qFFDir/FJSFq/BrgvB+uLn56QVKmhPpj2FmGXPxHrAiA8QF07TalXIu sx3VltxJ7gjejJniMqPAiLqeDEVHdg5WiH0pqh+uT72zfLYbRYHwAXyKRxn9MzgIr6 KXvLG5dFRG1aw== Received: from localhost (unknown [188.27.55.48]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by bali.collaboradmins.com (Postfix) with ESMTPSA id 7F83C17E360F; Sat, 14 Sep 2024 20:05:33 +0200 (CEST) From: Cristian Ciocaltea Date: Sat, 14 Sep 2024 21:04:57 +0300 Subject: [PATCH 4/4] clk: Drop obsolete devm_clk_bulk_get_all_enable() helper Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240914-clk_bulk_ena_fix-v1-4-ce3537585c06@collabora.com> References: <20240914-clk_bulk_ena_fix-v1-0-ce3537585c06@collabora.com> In-Reply-To: <20240914-clk_bulk_ena_fix-v1-0-ce3537585c06@collabora.com> To: Michael Turquette , Stephen Boyd , Russell King , Matthias Brugger , AngeloGioacchino Del Regno , Jingoo Han , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Bjorn Helgaas , Krzysztof Kozlowski , Alim Akhtar Cc: kernel@collabora.com, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-pci@vger.kernel.org, linux-samsung-soc@vger.kernel.org X-Mailer: b4 0.14.1 Commit 265b07df758a ("clk: Provide managed helper to get and enable bulk clocks") added devm_clk_bulk_get_all_enable() function, but missed to return the number of clocks stored in the clk_bulk_data table referenced by the clks argument. Without knowing the number, it's not possible to iterate these clocks when needed, hence the argument is useless and could have been simply removed. A new helper devm_clk_bulk_get_all_enabled() has been introduced, which is consistent with devm_clk_bulk_get_all() in terms of the returned value. Drop the obsolete function since all users switched to the new helper. Signed-off-by: Cristian Ciocaltea Reviewed-by: AngeloGioacchino Del Regno --- drivers/clk/clk-devres.c | 32 -------------------------------- include/linux/clk.h | 22 ---------------------- 2 files changed, 54 deletions(-) diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c index 4203aaaa7544..14a657f336fe 100644 --- a/drivers/clk/clk-devres.c +++ b/drivers/clk/clk-devres.c @@ -218,38 +218,6 @@ static void devm_clk_bulk_release_all_enable(struct device *dev, void *res) clk_bulk_put_all(devres->num_clks, devres->clks); } -int __must_check devm_clk_bulk_get_all_enable(struct device *dev, - struct clk_bulk_data **clks) -{ - struct clk_bulk_devres *devres; - int ret; - - devres = devres_alloc(devm_clk_bulk_release_all_enable, - sizeof(*devres), GFP_KERNEL); - if (!devres) - return -ENOMEM; - - ret = clk_bulk_get_all(dev, &devres->clks); - if (ret > 0) { - *clks = devres->clks; - devres->num_clks = ret; - } else { - devres_free(devres); - return ret; - } - - ret = clk_bulk_prepare_enable(devres->num_clks, *clks); - if (!ret) { - devres_add(dev, devres); - } else { - clk_bulk_put_all(devres->num_clks, devres->clks); - devres_free(devres); - } - - return ret; -} -EXPORT_SYMBOL_GPL(devm_clk_bulk_get_all_enable); - int __must_check devm_clk_bulk_get_all_enabled(struct device *dev, struct clk_bulk_data **clks) { diff --git a/include/linux/clk.h b/include/linux/clk.h index 158c5072852e..b607482ca77e 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h @@ -495,22 +495,6 @@ int __must_check devm_clk_bulk_get_optional(struct device *dev, int num_clks, int __must_check devm_clk_bulk_get_all(struct device *dev, struct clk_bulk_data **clks); -/** - * devm_clk_bulk_get_all_enable - Get and enable all clocks of the consumer (managed) - * @dev: device for clock "consumer" - * @clks: pointer to the clk_bulk_data table of consumer - * - * Returns success (0) or negative errno. - * - * This helper function allows drivers to get all clocks of the - * consumer and enables them in one operation with management. - * The clks will automatically be disabled and freed when the device - * is unbound. - */ - -int __must_check devm_clk_bulk_get_all_enable(struct device *dev, - struct clk_bulk_data **clks); - /** * devm_clk_bulk_get_all_enabled - Get and enable all clocks of the consumer (managed) * @dev: device for clock "consumer" @@ -1052,12 +1036,6 @@ static inline int __must_check devm_clk_bulk_get_all(struct device *dev, return 0; } -static inline int __must_check devm_clk_bulk_get_all_enable(struct device *dev, - struct clk_bulk_data **clks) -{ - return 0; -} - static inline int __must_check devm_clk_bulk_get_all_enabled(struct device *dev, struct clk_bulk_data **clks) {