diff mbox series

drm/vc4: Convert register accessors to FIELD_*

Message ID 20200703135713.985810-1-maxime@cerno.tech (mailing list archive)
State New, archived
Headers show
Series drm/vc4: Convert register accessors to FIELD_* | expand

Commit Message

Maxime Ripard July 3, 2020, 1:57 p.m. UTC
The VC4_SET_FIELD and VC4_GET_FIELD are reimplementing most of the logic
already defined in FIELD_SET and FIELD_GET. Let's convert the vc4 macros to
use the FIELD_* macros.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 drivers/gpu/drm/vc4/vc4_regs.h | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

Comments

Maxime Ripard July 7, 2020, 7:57 a.m. UTC | #1
On Fri, Jul 03, 2020 at 09:57:04AM -0700, Eric Anholt wrote:
> On Fri, Jul 3, 2020 at 6:57 AM Maxime Ripard <maxime@cerno.tech> wrote:
> >
> > The VC4_SET_FIELD and VC4_GET_FIELD are reimplementing most of the logic
> > already defined in FIELD_SET and FIELD_GET. Let's convert the vc4 macros to
> > use the FIELD_* macros.
> >
> > Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> > ---
> 
> Reviewed-by: Eric Anholt <eric@anholt.net>

Applied, thanks!
Maxime
diff mbox series

Patch

diff --git a/drivers/gpu/drm/vc4/vc4_regs.h b/drivers/gpu/drm/vc4/vc4_regs.h
index b5a6b4cdd332..324462cc9cd4 100644
--- a/drivers/gpu/drm/vc4/vc4_regs.h
+++ b/drivers/gpu/drm/vc4/vc4_regs.h
@@ -6,19 +6,18 @@ 
 #ifndef VC4_REGS_H
 #define VC4_REGS_H
 
+#include <linux/bitfield.h>
 #include <linux/bitops.h>
 
 #define VC4_MASK(high, low) ((u32)GENMASK(high, low))
 /* Using the GNU statement expression extension */
 #define VC4_SET_FIELD(value, field)					\
 	({								\
-		uint32_t fieldval = (value) << field##_SHIFT;		\
-		WARN_ON((fieldval & ~field##_MASK) != 0);		\
-		fieldval & field##_MASK;				\
+		WARN_ON(!FIELD_FIT(field##_MASK, value));		\
+		FIELD_PREP(field##_MASK, value);			\
 	 })
 
-#define VC4_GET_FIELD(word, field) (((word) & field##_MASK) >>		\
-				    field##_SHIFT)
+#define VC4_GET_FIELD(word, field) FIELD_GET(field##_MASK, word)
 
 #define V3D_IDENT0   0x00000
 # define V3D_EXPECTED_IDENT0 \