mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 06:57:57 +00:00
8bf25dba77
Changelog: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.15.129
All patches automatically rebased.
Build system: x86_64
Build-tested: ramips/tplink_archer-a6-v3
Run-tested: ramips/tplink_archer-a6-v3
Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 1db566b692
)
[Refresh on top of OpenWrt 23.05]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
70 lines
2.6 KiB
Diff
70 lines
2.6 KiB
Diff
From daba7e69a412a6b55b77818904ae53e2a9a6d91c Mon Sep 17 00:00:00 2001
|
|
From: Maxime Ripard <maxime@cerno.tech>
|
|
Date: Fri, 1 Apr 2022 11:09:29 +0200
|
|
Subject: [PATCH] clk: Fix clk_get_parent() documentation
|
|
|
|
The clk_get_parent() documentation in the header states that it will
|
|
return a valid pointer, or an error pointer on failure.
|
|
|
|
However, the documentation in the source file, and the code itself, will
|
|
return also return NULL if there isn't any parent for that clock. Let's
|
|
mention it.
|
|
|
|
An orphan clock should return NULL too, so let's add a test for it.
|
|
|
|
Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> # imx8mp
|
|
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> # exynos4210, meson g12b
|
|
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|
---
|
|
drivers/clk/clk_test.c | 17 +++++++++++++++++
|
|
include/linux/clk.h | 5 +++--
|
|
2 files changed, 20 insertions(+), 2 deletions(-)
|
|
|
|
--- a/drivers/clk/clk_test.c
|
|
+++ b/drivers/clk/clk_test.c
|
|
@@ -534,6 +534,22 @@ clk_orphan_transparent_multiple_parent_m
|
|
|
|
/*
|
|
* Test that, for a mux whose current parent hasn't been registered yet,
|
|
+ * clk_get_parent() will return NULL.
|
|
+ */
|
|
+static void
|
|
+clk_test_orphan_transparent_multiple_parent_mux_get_parent(struct kunit *test)
|
|
+{
|
|
+ struct clk_multiple_parent_ctx *ctx = test->priv;
|
|
+ struct clk_hw *hw = &ctx->hw;
|
|
+ struct clk *clk = hw->clk;
|
|
+ struct clk *parent;
|
|
+
|
|
+ parent = clk_get_parent(clk);
|
|
+ KUNIT_EXPECT_PTR_EQ(test, parent, NULL);
|
|
+}
|
|
+
|
|
+/*
|
|
+ * Test that, for a mux whose current parent hasn't been registered yet,
|
|
* calling clk_set_parent() to a valid parent will properly update the
|
|
* mux parent and its orphan status.
|
|
*/
|
|
@@ -642,6 +658,7 @@ clk_test_orphan_transparent_multiple_par
|
|
}
|
|
|
|
static struct kunit_case clk_orphan_transparent_multiple_parent_mux_test_cases[] = {
|
|
+ KUNIT_CASE(clk_test_orphan_transparent_multiple_parent_mux_get_parent),
|
|
KUNIT_CASE(clk_test_orphan_transparent_multiple_parent_mux_set_parent),
|
|
KUNIT_CASE(clk_test_orphan_transparent_multiple_parent_mux_set_parent_get_rate),
|
|
KUNIT_CASE(clk_test_orphan_transparent_multiple_parent_mux_set_parent_set_range_modified),
|
|
--- a/include/linux/clk.h
|
|
+++ b/include/linux/clk.h
|
|
@@ -837,8 +837,9 @@ int clk_set_parent(struct clk *clk, stru
|
|
* clk_get_parent - get the parent clock source for this clock
|
|
* @clk: clock source
|
|
*
|
|
- * Returns struct clk corresponding to parent clock source, or
|
|
- * valid IS_ERR() condition containing errno.
|
|
+ * Returns struct clk corresponding to parent clock source, a NULL
|
|
+ * pointer if it doesn't have a parent, or a valid IS_ERR() condition
|
|
+ * containing errno.
|
|
*/
|
|
struct clk *clk_get_parent(struct clk *clk);
|
|
|