drm/sun4i: frontend: Add proper definitions for format registers
authorPaul Kocialkowski <paul.kocialkowski@bootlin.com>
Fri, 23 Nov 2018 09:24:50 +0000 (10:24 +0100)
committerMaxime Ripard <maxime.ripard@bootlin.com>
Tue, 27 Nov 2018 08:54:13 +0000 (09:54 +0100)
This introduces proper definitions for the input and output format
configuration registers instead of a macro and raw values in the code,
with the intent to increase code readability and reduce indirections.

Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181123092515.2511-19-paul.kocialkowski@bootlin.com
drivers/gpu/drm/sun4i/sun4i_frontend.c
drivers/gpu/drm/sun4i/sun4i_frontend.h

index bb5977a466f3759d69a0346e4f4fed400d77bd89..a305b731b04272b775f14821634bc3670c230a47 100644 (file)
@@ -108,7 +108,7 @@ static int sun4i_frontend_drm_format_to_input_fmt(uint32_t fmt, u32 *val)
 {
        switch (fmt) {
        case DRM_FORMAT_XRGB8888:
-               *val = 5;
+               *val = SUN4I_FRONTEND_INPUT_FMT_DATA_FMT_RGB;
                return 0;
 
        default:
@@ -120,7 +120,7 @@ static int sun4i_frontend_drm_format_to_input_mode(uint32_t fmt, u32 *val)
 {
        switch (fmt) {
        case DRM_FORMAT_XRGB8888:
-               *val = 1;
+               *val = SUN4I_FRONTEND_INPUT_FMT_DATA_MOD_PACKED;
                return 0;
 
        default:
@@ -132,7 +132,7 @@ static int sun4i_frontend_drm_format_to_input_sequence(uint32_t fmt, u32 *val)
 {
        switch (fmt) {
        case DRM_FORMAT_XRGB8888:
-               *val = 1;
+               *val = SUN4I_FRONTEND_INPUT_FMT_DATA_PS_XRGB;
                return 0;
 
        default:
@@ -144,7 +144,7 @@ static int sun4i_frontend_drm_format_to_output_fmt(uint32_t fmt, u32 *val)
 {
        switch (fmt) {
        case DRM_FORMAT_XRGB8888:
-               *val = 2;
+               *val = SUN4I_FRONTEND_OUTPUT_FMT_DATA_FMT_XRGB8888;
                return 0;
 
        default:
@@ -218,9 +218,7 @@ int sun4i_frontend_update_formats(struct sun4i_frontend *frontend,
                           SUN4I_FRONTEND_BYPASS_CSC_EN);
 
        regmap_write(frontend->regs, SUN4I_FRONTEND_INPUT_FMT_REG,
-                    SUN4I_FRONTEND_INPUT_FMT_DATA_MOD(in_mod_val) |
-                    SUN4I_FRONTEND_INPUT_FMT_DATA_FMT(in_fmt_val) |
-                    SUN4I_FRONTEND_INPUT_FMT_PS(in_ps_val));
+                    in_mod_val | in_fmt_val | in_ps_val);
 
        /*
         * TODO: It look like the A31 and A80 at least will need the
@@ -228,7 +226,7 @@ int sun4i_frontend_update_formats(struct sun4i_frontend *frontend,
         * ARGB8888).
         */
        regmap_write(frontend->regs, SUN4I_FRONTEND_OUTPUT_FMT_REG,
-                    SUN4I_FRONTEND_OUTPUT_FMT_DATA_FMT(out_fmt_val));
+                    out_fmt_val);
 
        return 0;
 }
index a9cb908ced16230b5f9b4eefec2aeba48b03a7ba..56bd5a3f97239db750e45c622ec0eb5961090d5f 100644 (file)
 #define SUN4I_FRONTEND_LINESTRD0_REG           0x040
 
 #define SUN4I_FRONTEND_INPUT_FMT_REG           0x04c
-#define SUN4I_FRONTEND_INPUT_FMT_DATA_MOD(mod)         ((mod) << 8)
-#define SUN4I_FRONTEND_INPUT_FMT_DATA_FMT(fmt)         ((fmt) << 4)
-#define SUN4I_FRONTEND_INPUT_FMT_PS(ps)                        (ps)
+#define SUN4I_FRONTEND_INPUT_FMT_DATA_MOD_PACKED       (1 << 8)
+#define SUN4I_FRONTEND_INPUT_FMT_DATA_FMT_RGB          (5 << 4)
+#define SUN4I_FRONTEND_INPUT_FMT_DATA_PS_XRGB          1
 
 #define SUN4I_FRONTEND_OUTPUT_FMT_REG          0x05c
-#define SUN4I_FRONTEND_OUTPUT_FMT_DATA_FMT(fmt)                (fmt)
+#define SUN4I_FRONTEND_OUTPUT_FMT_DATA_FMT_XRGB8888    2
 
 #define SUN4I_FRONTEND_CH0_INSIZE_REG          0x100
 #define SUN4I_FRONTEND_INSIZE(h, w)                    ((((h) - 1) << 16) | (((w) - 1)))