drm/vc4: Update type of reg parameter in vc4_hdmi_{read,write}
authorNathan Chancellor <natechancellor@gmail.com>
Thu, 10 Sep 2020 17:04:02 +0000 (10:04 -0700)
committerMaxime Ripard <maxime@cerno.tech>
Fri, 11 Sep 2020 09:30:16 +0000 (11:30 +0200)
Clang warns 100+ times in the vc4 driver along the lines of:

drivers/gpu/drm/vc4/vc4_hdmi_phy.c:518:13: warning: implicit conversion
from enumeration type 'enum vc4_hdmi_field' to different enumeration
type 'enum vc4_hdmi_regs' [-Wenum-conversion]
        HDMI_WRITE(HDMI_TX_PHY_POWERDOWN_CTL,
        ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~

The HDMI_READ and HDMI_WRITE macros pass in enumerators of type
vc4_hdmi_field but vc4_hdmi_write and vc4_hdmi_read expect a enumerator
of type vc4_hdmi_regs, causing a warning for every instance of this.
Update the parameter type so there is no more mismatch.

Fixes: 311e305fdb4e ("drm/vc4: hdmi: Implement a register layout abstraction")
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Link: https://github.com/ClangBuiltLinux/linux/issues/1149
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20200910170401.3857250-1-natechancellor@gmail.com
drivers/gpu/drm/vc4/vc4_hdmi_regs.h

index 47364bd..7c6b481 100644 (file)
@@ -392,7 +392,7 @@ void __iomem *__vc4_hdmi_get_field_base(struct vc4_hdmi *hdmi,
 }
 
 static inline u32 vc4_hdmi_read(struct vc4_hdmi *hdmi,
-                               enum vc4_hdmi_regs reg)
+                               enum vc4_hdmi_field reg)
 {
        const struct vc4_hdmi_register *field;
        const struct vc4_hdmi_variant *variant = hdmi->variant;
@@ -417,7 +417,7 @@ static inline u32 vc4_hdmi_read(struct vc4_hdmi *hdmi,
 #define HDMI_READ(reg)         vc4_hdmi_read(vc4_hdmi, reg)
 
 static inline void vc4_hdmi_write(struct vc4_hdmi *hdmi,
-                                 enum vc4_hdmi_regs reg,
+                                 enum vc4_hdmi_field reg,
                                  u32 value)
 {
        const struct vc4_hdmi_register *field;