Re: [PATCH 01/18] phy: mediatek: add a new helper to update bitfield

From: AngeloGioacchino Del Regno
Date: Thu Sep 22 2022 - 03:17:51 EST


Il 22/09/22 04:36, Chunfeng Yun ha scritto:
On Wed, 2022-09-21 at 10:15 +0200, AngeloGioacchino Del Regno wrote:
Il 20/09/22 11:00, Chunfeng Yun ha scritto:
Due to FIELD_PREP() macro can be used to prepare a bitfield value,
local ones can be remove; add the new helper to make bitfield
update
easier.

Signed-off-by: Chunfeng Yun <chunfeng.yun@xxxxxxxxxxxx>
---
drivers/phy/mediatek/phy-mtk-io.h | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/phy/mediatek/phy-mtk-io.h
b/drivers/phy/mediatek/phy-mtk-io.h
index 500fcdab165d..a723d4afc9b4 100644
--- a/drivers/phy/mediatek/phy-mtk-io.h
+++ b/drivers/phy/mediatek/phy-mtk-io.h
@@ -8,6 +8,7 @@
#ifndef __PHY_MTK_H__
#define __PHY_MTK_H__
+#include <linux/bitfield.h>
#include <linux/io.h>
static inline void mtk_phy_clear_bits(void __iomem *reg, u32
bits)
@@ -35,4 +36,10 @@ static inline void mtk_phy_update_bits(void
__iomem *reg, u32 mask, u32 val)
writel(tmp, reg);
}
+/* field @mask should be constant and continuous */

"Field @mask shall be [...]"
^^^^^
Ok, will modify it


+static inline void mtk_phy_update_field(void __iomem *reg, u32
mask, u32 val)

...so, (void __iomem *reg, const u32 mask, u32 val)
Maybe no need const, @mask will be checked it in compile time when
use FIELD_PREP(), means @mask is a constant value, but not a variable.


Adding const is not *required*, but `mask` is, effectively, a constant, hence
it fully makes sense to add const.

Thanks


+{
+ mtk_phy_update_bits(reg, mask, FIELD_PREP(mask, val));
+}
+
#endif