From mboxrd@z Thu Jan 1 00:00:00 1970 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 C6B5E2DC344; Wed, 22 Oct 2025 17:45:45 +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=1761155147; cv=none; b=fFG8pHwBiohtv3qeYvXWQ8TzAtxbQRl2Yse7fneunMrCo6xzdB98pYeSIdwmsH4pzrlrXnUHOO/vSeWJj/s1J1THUgyLKPs4FihZj43lt+siY9D3dS0r5LEQpIhlRZZZAD93qPo3ArQgryV4FKZSoh003pFkqCmDpkTl/jf6P4o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761155147; c=relaxed/simple; bh=5QHIAhDdNTruUVsBvBey2DnUkdbmf61aGkGJ7dtje8I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NRJzpV8rSZh8pOkbrqeCE3WtnEN2l95vt7i9EtaGjARhNAVoKhkRBuvnM4Wn20kVzhVchB7V/4IUymwFoRzVQS1TT5Y0R0B1ry5qyy12o8ZWzDFhAqhwj4l8Ogzqzv2PpGmahhdz7TmUjCSZ3NNUeR4yZNVwBBJEoFjJVCecBVY= 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=SUiwkEtj; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="SUiwkEtj" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1761155144; bh=5QHIAhDdNTruUVsBvBey2DnUkdbmf61aGkGJ7dtje8I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SUiwkEtjAvQi9e7GfOSPTUJFIEn1v+QwwJHN2T/j5Hd11AEVU/SF14xMXcR76dgV+ 8C2Qs3jcrxUUv5eQCxbs6kZ18HVz0PQCDcfqOLpWY5MsYj4BC8pKqVSVh61RqMz7G1 JUHcofQao3qGgXB6FCSB43tQ+beEnziV0DxjKFV1DrHsWDqKnokgvCJJpIQdFgsd6v YiGwSKnMpITS73EaRnbDgeP9X/7wAgkg3CkfQw2VYOh/2ZsJcYGDqX8qaZqjgDRrN7 OpnmYYjtygbG8v4nNWhRgyX8ydLj7nL/zOCvnwhfAn5Z8zUdbQq7ULig3memMxOlB4 Fza9KnSYJ1Zhg== Received: from trenzalore (unknown [23.233.251.139]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: detlev) by bali.collaboradmins.com (Postfix) with ESMTPSA id B921317E130E; Wed, 22 Oct 2025 19:45:41 +0200 (CEST) From: Detlev Casanova To: linux-kernel@vger.kernel.org Cc: Mauro Carvalho Chehab , Detlev Casanova , Ezequiel Garcia , Heiko Stuebner , Ricardo Ribalda , Hans Verkuil , Hans de Goede , Yunke Cao , Jonathan Corbet , Laurent Pinchart , Sakari Ailus , James Cowgill , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, kernel@collabora.com, Nicolas Dufresne , Diederik de Haas Subject: [PATCH v4 11/15] media: rkvdec: Enable all clocks without naming them Date: Wed, 22 Oct 2025 13:45:03 -0400 Message-ID: <20251022174508.284929-12-detlev.casanova@collabora.com> X-Mailer: git-send-email 2.51.1.dirty In-Reply-To: <20251022174508.284929-1-detlev.casanova@collabora.com> References: <20251022174508.284929-1-detlev.casanova@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit For other variants, the clock names and number will differ. There is no need to keep track of the clock names in the driver so drop them to avoid having a list for each variant. Tested-by: Diederik de Haas # Rock 5B Signed-off-by: Detlev Casanova --- .../media/platform/rockchip/rkvdec/rkvdec.c | 24 +++++-------------- .../media/platform/rockchip/rkvdec/rkvdec.h | 1 + 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec.c b/drivers/media/platform/rockchip/rkvdec/rkvdec.c index b0e90c9b826e..aa92b586429e 100644 --- a/drivers/media/platform/rockchip/rkvdec/rkvdec.c +++ b/drivers/media/platform/rockchip/rkvdec/rkvdec.c @@ -1311,15 +1311,10 @@ static const struct of_device_id of_rkvdec_match[] = { }; MODULE_DEVICE_TABLE(of, of_rkvdec_match); -static const char * const rkvdec_clk_names[] = { - "axi", "ahb", "cabac", "core" -}; - static int rkvdec_probe(struct platform_device *pdev) { const struct rkvdec_variant *variant; struct rkvdec_dev *rkvdec; - unsigned int i; int ret, irq; variant = of_device_get_match_data(&pdev->dev); @@ -1336,19 +1331,12 @@ static int rkvdec_probe(struct platform_device *pdev) mutex_init(&rkvdec->vdev_lock); INIT_DELAYED_WORK(&rkvdec->watchdog_work, rkvdec_watchdog_func); - rkvdec->clocks = devm_kcalloc(&pdev->dev, ARRAY_SIZE(rkvdec_clk_names), - sizeof(*rkvdec->clocks), GFP_KERNEL); - if (!rkvdec->clocks) - return -ENOMEM; - - for (i = 0; i < ARRAY_SIZE(rkvdec_clk_names); i++) - rkvdec->clocks[i].id = rkvdec_clk_names[i]; - - ret = devm_clk_bulk_get(&pdev->dev, ARRAY_SIZE(rkvdec_clk_names), - rkvdec->clocks); - if (ret) + ret = devm_clk_bulk_get_all_enabled(&pdev->dev, &rkvdec->clocks); + if (ret < 0) return ret; + rkvdec->clk_count = ret; + rkvdec->regs = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(rkvdec->regs)) return PTR_ERR(rkvdec->regs); @@ -1426,7 +1414,7 @@ static int rkvdec_runtime_resume(struct device *dev) { struct rkvdec_dev *rkvdec = dev_get_drvdata(dev); - return clk_bulk_prepare_enable(ARRAY_SIZE(rkvdec_clk_names), + return clk_bulk_prepare_enable(rkvdec->clk_count, rkvdec->clocks); } @@ -1434,7 +1422,7 @@ static int rkvdec_runtime_suspend(struct device *dev) { struct rkvdec_dev *rkvdec = dev_get_drvdata(dev); - clk_bulk_disable_unprepare(ARRAY_SIZE(rkvdec_clk_names), + clk_bulk_disable_unprepare(rkvdec->clk_count, rkvdec->clocks); return 0; } diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec.h b/drivers/media/platform/rockchip/rkvdec/rkvdec.h index dfafb2c2cbc1..4094f92f8a44 100644 --- a/drivers/media/platform/rockchip/rkvdec/rkvdec.h +++ b/drivers/media/platform/rockchip/rkvdec/rkvdec.h @@ -131,6 +131,7 @@ struct rkvdec_dev { struct v4l2_m2m_dev *m2m_dev; struct device *dev; struct clk_bulk_data *clocks; + unsigned int clk_count; void __iomem *regs; struct mutex vdev_lock; /* serializes ioctls */ struct delayed_work watchdog_work; -- 2.51.1.dirty