[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <50c77b7b4854037f927880dc8775392a7b2e59fc.camel@mediatek.com>
Date: Fri, 23 Sep 2022 14:03:35 +0800
From: Chunfeng Yun <chunfeng.yun@...iatek.com>
To: AngeloGioacchino Del Regno
<angelogioacchino.delregno@...labora.com>,
Chun-Kuang Hu <chunkuang.hu@...nel.org>,
Vinod Koul <vkoul@...nel.org>
CC: Philipp Zabel <p.zabel@...gutronix.de>,
Kishon Vijay Abraham I <kishon@...com>,
Matthias Brugger <matthias.bgg@...il.com>,
<dri-devel@...ts.freedesktop.org>,
<linux-mediatek@...ts.infradead.org>,
<linux-arm-kernel@...ts.infradead.org>,
<linux-phy@...ts.infradead.org>, <linux-kernel@...r.kernel.org>,
Jitao Shi <jitao.shi@...iatek.com>,
"Stanley Chu" <stanley.chu@...iatek.com>
Subject: Re: [PATCH 01/18] phy: mediatek: add a new helper to update bitfield
On Thu, 2022-09-22 at 09:17 +0200, AngeloGioacchino Del Regno wrote:
> 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@...iatek.com>
> > > > ---
> > > > 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.
Prefer to leave it unchanged, there is no 'const' in
function mtk_phy_update_bits(), if add 'const', will cause build
warning. and FIELD_PREP() already do many checks in compile time.
Thanks
>
> > Thanks
> >
> > >
> > > > +{
> > > > + mtk_phy_update_bits(reg, mask, FIELD_PREP(mask, val));
> > > > +}
> > > > +
> > > > #endif
> > >
> > >
>
>
>
Powered by blists - more mailing lists