Backport new field_prep()/get() particularly useful to handle case where a bitmask is not const and FIELD_PREP can't be used. This permit to replace manual shift with these macro. (also needed to permit backport of some patch without modification) Backport reworked patch that drop the local field_prep()/get() macro in favor of the global one. Link: https://github.com/openwrt/openwrt/pull/22479 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
41 lines
1.4 KiB
Diff
41 lines
1.4 KiB
Diff
From 0f8407a1f1c795c417e4c7750654a6024a3ec68b Mon Sep 17 00:00:00 2001
|
|
From: Geert Uytterhoeven <geert+renesas@glider.be>
|
|
Date: Thu, 6 Nov 2025 14:34:02 +0100
|
|
Subject: [PATCH] clk: at91: Convert to common field_{get,prep}() helpers
|
|
|
|
Drop the driver-specific field_get() and field_prep() macros, in favor
|
|
of the globally available variants from <linux/bitfield.h>.
|
|
|
|
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
|
|
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
|
|
Acked-by: Stephen Boyd <sboyd@kernel.org>
|
|
Acked-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
|
|
Signed-off-by: Yury Norov (NVIDIA) <yury.norov@gmail.com>
|
|
---
|
|
drivers/clk/at91/clk-peripheral.c | 1 +
|
|
drivers/clk/at91/pmc.h | 5 -----
|
|
2 files changed, 1 insertion(+), 5 deletions(-)
|
|
|
|
--- a/drivers/clk/at91/clk-peripheral.c
|
|
+++ b/drivers/clk/at91/clk-peripheral.c
|
|
@@ -3,6 +3,7 @@
|
|
* Copyright (C) 2013 Boris BREZILLON <b.brezillon@overkiz.com>
|
|
*/
|
|
|
|
+#include <linux/bitfield.h>
|
|
#include <linux/bitops.h>
|
|
#include <linux/clk-provider.h>
|
|
#include <linux/clkdev.h>
|
|
--- a/drivers/clk/at91/pmc.h
|
|
+++ b/drivers/clk/at91/pmc.h
|
|
@@ -116,9 +116,6 @@ struct at91_clk_pms {
|
|
unsigned int parent;
|
|
};
|
|
|
|
-#define field_get(_mask, _reg) (((_reg) & (_mask)) >> (ffs(_mask) - 1))
|
|
-#define field_prep(_mask, _val) (((_val) << (ffs(_mask) - 1)) & (_mask))
|
|
-
|
|
#define ndck(a, s) (a[s - 1].id + 1)
|
|
#define nck(a) (a[ARRAY_SIZE(a) - 1].id + 1)
|
|
|