Hi Benjamin,

On 06/05/2018 03:54 PM, Benjamin Gaignard wrote:
> Convert sti crtc to atomic_print_state usage rather than use a
> debugfs entry.
> 
> Signed-off-by: Benjamin Gaignard <benjamin.gaign...@linaro.org>
> ---
>   drivers/gpu/drm/sti/sti_compositor.c | 16 -------
>   drivers/gpu/drm/sti/sti_compositor.h |  3 --
>   drivers/gpu/drm/sti/sti_crtc.c       | 17 ++++---
>   drivers/gpu/drm/sti/sti_mixer.c      | 89 
> ++++++++++--------------------------
>   drivers/gpu/drm/sti/sti_mixer.h      |  3 +-
>   drivers/gpu/drm/sti/sti_vid.c        | 60 ++++++++----------------
>   drivers/gpu/drm/sti/sti_vid.h        |  2 +-
>   7 files changed, 59 insertions(+), 131 deletions(-)
> 
> diff --git a/drivers/gpu/drm/sti/sti_compositor.c 
> b/drivers/gpu/drm/sti/sti_compositor.c
> index 021b8fcaa0b9..c08d5c560557 100644
> --- a/drivers/gpu/drm/sti/sti_compositor.c
> +++ b/drivers/gpu/drm/sti/sti_compositor.c
> @@ -39,22 +39,6 @@ static const struct sti_compositor_data 
> stih407_compositor_data = {
>       },
>   };
>   
> -int sti_compositor_debugfs_init(struct sti_compositor *compo,
> -                             struct drm_minor *minor)
> -{
> -     unsigned int i;
> -
> -     for (i = 0; i < STI_MAX_VID; i++)
> -             if (compo->vid[i])
> -                     vid_debugfs_init(compo->vid[i], minor);
> -
> -     for (i = 0; i < STI_MAX_MIXER; i++)
> -             if (compo->mixer[i])
> -                     sti_mixer_debugfs_init(compo->mixer[i], minor);
> -
> -     return 0;
> -}
> -
>   static int sti_compositor_bind(struct device *dev,
>                              struct device *master,
>                              void *data)
> diff --git a/drivers/gpu/drm/sti/sti_compositor.h 
> b/drivers/gpu/drm/sti/sti_compositor.h
> index ac4bb3834810..eb8b233e68a2 100644
> --- a/drivers/gpu/drm/sti/sti_compositor.h
> +++ b/drivers/gpu/drm/sti/sti_compositor.h
> @@ -79,7 +79,4 @@ struct sti_compositor {
>       struct notifier_block vtg_vblank_nb[STI_MAX_MIXER];
>   };
>   
> -int sti_compositor_debugfs_init(struct sti_compositor *compo,
> -                             struct drm_minor *minor);
> -
>   #endif
> diff --git a/drivers/gpu/drm/sti/sti_crtc.c b/drivers/gpu/drm/sti/sti_crtc.c
> index 5824e6aca8f4..4e137932ffe4 100644
> --- a/drivers/gpu/drm/sti/sti_crtc.c
> +++ b/drivers/gpu/drm/sti/sti_crtc.c
> @@ -316,15 +316,20 @@ void sti_crtc_disable_vblank(struct drm_device 
> *drm_dev, unsigned int pipe)
>               DRM_DEBUG_DRIVER("Warning: cannot unregister VTG notifier\n");
>   }
>   
> -static int sti_crtc_late_register(struct drm_crtc *crtc)
> +static void sti_crtc_print_state(struct drm_printer *p,
> +                              const struct drm_crtc_state *state)
>   {
> -     struct sti_mixer *mixer = to_sti_mixer(crtc);
> +     struct sti_mixer *mixer = to_sti_mixer(state->crtc);
>       struct sti_compositor *compo = dev_get_drvdata(mixer->dev);
> +     unsigned int i;
>   
> -     if (drm_crtc_index(crtc) == 0)
> -             return sti_compositor_debugfs_init(compo, crtc->dev->primary);
> +     for (i = 0; i < STI_MAX_VID; i++)
> +             if (compo->vid[i])
> +                     sti_vid_print_state(p, compo->vid[i]);
>   
> -     return 0;
> +     for (i = 0; i < STI_MAX_MIXER; i++)
> +             if (compo->mixer[i])
> +                     sti_mixer_print_state(p, compo->mixer[i]);
>   }
>   
>   static const struct drm_crtc_funcs sti_crtc_funcs = {
> @@ -335,7 +340,7 @@ static const struct drm_crtc_funcs sti_crtc_funcs = {
>       .reset = drm_atomic_helper_crtc_reset,
>       .atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
>       .atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
> -     .late_register = sti_crtc_late_register,
> +     .atomic_print_state = sti_crtc_print_state,
>   };
>   
>   bool sti_crtc_is_main(struct drm_crtc *crtc)
> diff --git a/drivers/gpu/drm/sti/sti_mixer.c b/drivers/gpu/drm/sti/sti_mixer.c
> index a4f45c74d678..22525139d315 100644
> --- a/drivers/gpu/drm/sti/sti_mixer.c
> +++ b/drivers/gpu/drm/sti/sti_mixer.c
> @@ -70,20 +70,20 @@ static inline void sti_mixer_reg_write(struct sti_mixer 
> *mixer,
>       writel(val, mixer->regs + reg_id);
>   }
>   
> -#define DBGFS_DUMP(reg) seq_printf(s, "\n  %-25s 0x%08X", #reg, \
> +#define DBGFS_DUMP(reg) drm_printf(p, "\n\t\t%-25s 0x%08X", #reg, \
>                                  sti_mixer_reg_read(mixer, reg))
>   
> -static void mixer_dbg_ctl(struct seq_file *s, int val)
> +static void mixer_dbg_ctl(struct drm_printer *p, int val)
>   {
>       unsigned int i;
>       int count = 0;
>       char *const disp_layer[] = {"BKG", "VID0", "VID1", "GDP0",
>                                   "GDP1", "GDP2", "GDP3"};
>   
> -     seq_puts(s, "\tEnabled: ");
> +     drm_printf(p, "\tEnabled: ");
>       for (i = 0; i < 7; i++) {
>               if (val & 1) {
> -                     seq_printf(s, "%s ", disp_layer[i]);
> +                     drm_printf(p, "%s ", disp_layer[i]);
>                       count++;
>               }
>               val = val >> 1;
> @@ -91,114 +91,75 @@ static void mixer_dbg_ctl(struct seq_file *s, int val)
>   
>       val = val >> 2;
>       if (val & 1) {
> -             seq_puts(s, "CURS ");
> +             drm_printf(p, "CURS ");
>               count++;
>       }
>       if (!count)
> -             seq_puts(s, "Nothing");
> +             drm_printf(p, "Nothing");
>   }
>   
> -static void mixer_dbg_crb(struct seq_file *s, int val)
> +static void mixer_dbg_crb(struct drm_printer *p, int val)
>   {
>       int i;
>   
> -     seq_puts(s, "\tDepth: ");
> +     drm_printf(p, "\tDepth: ");
>       for (i = 0; i < GAM_MIXER_NB_DEPTH_LEVEL; i++) {
>               switch (val & GAM_DEPTH_MASK_ID) {
>               case GAM_DEPTH_VID0_ID:
> -                     seq_puts(s, "VID0");
> +                     drm_printf(p, "VID0");
>                       break;
>               case GAM_DEPTH_VID1_ID:
> -                     seq_puts(s, "VID1");
> +                     drm_printf(p, "VID1");
>                       break;
>               case GAM_DEPTH_GDP0_ID:
> -                     seq_puts(s, "GDP0");
> +                     drm_printf(p, "GDP0");
>                       break;
>               case GAM_DEPTH_GDP1_ID:
> -                     seq_puts(s, "GDP1");
> +                     drm_printf(p, "GDP1");
>                       break;
>               case GAM_DEPTH_GDP2_ID:
> -                     seq_puts(s, "GDP2");
> +                     drm_printf(p, "GDP2");
>                       break;
>               case GAM_DEPTH_GDP3_ID:
> -                     seq_puts(s, "GDP3");
> +                     drm_printf(p, "GDP3");
>                       break;
>               default:
> -                     seq_puts(s, "---");
> +                     drm_printf(p, "---");
>               }
>   
>               if (i < GAM_MIXER_NB_DEPTH_LEVEL - 1)
> -                     seq_puts(s, " < ");
> +                     drm_printf(p, " < ");
>               val = val >> 3;
>       }
>   }
>   
> -static void mixer_dbg_mxn(struct seq_file *s, void *addr)
> +static void mixer_dbg_mxn(struct drm_printer *p, void *addr)
>   {
>       int i;
>   
>       for (i = 1; i < 8; i++)
> -             seq_printf(s, "-0x%08X", (int)readl(addr + i * 4));
> +             drm_printf(p, "-0x%08X", (int)readl(addr + i * 4));
>   }
>   
> -static int mixer_dbg_show(struct seq_file *s, void *arg)
> +void sti_mixer_print_state(struct drm_printer *p, struct sti_mixer *mixer)
>   {
> -     struct drm_info_node *node = s->private;
> -     struct sti_mixer *mixer = (struct sti_mixer *)node->info_ent->data;
> -
> -     seq_printf(s, "%s: (vaddr = 0x%p)",
> +     drm_printf(p, "\t%s: (vaddr = 0x%pK)",
>                  sti_mixer_to_str(mixer), mixer->regs);
>   
>       DBGFS_DUMP(GAM_MIXER_CTL);
> -     mixer_dbg_ctl(s, sti_mixer_reg_read(mixer, GAM_MIXER_CTL));
> +     mixer_dbg_ctl(p, sti_mixer_reg_read(mixer, GAM_MIXER_CTL));
>       DBGFS_DUMP(GAM_MIXER_BKC);
>       DBGFS_DUMP(GAM_MIXER_BCO);
>       DBGFS_DUMP(GAM_MIXER_BCS);
>       DBGFS_DUMP(GAM_MIXER_AVO);
>       DBGFS_DUMP(GAM_MIXER_AVS);
>       DBGFS_DUMP(GAM_MIXER_CRB);
> -     mixer_dbg_crb(s, sti_mixer_reg_read(mixer, GAM_MIXER_CRB));
> +     mixer_dbg_crb(p, sti_mixer_reg_read(mixer, GAM_MIXER_CRB));
>       DBGFS_DUMP(GAM_MIXER_ACT);
>       DBGFS_DUMP(GAM_MIXER_MBP);
>       DBGFS_DUMP(GAM_MIXER_MX0);
> -     mixer_dbg_mxn(s, mixer->regs + GAM_MIXER_MX0);
> -     seq_putc(s, '\n');
> -     return 0;
> -}
> -
> -static struct drm_info_list mixer0_debugfs_files[] = {
> -     { "mixer_main", mixer_dbg_show, 0, NULL },
> -};
> -
> -static struct drm_info_list mixer1_debugfs_files[] = {
> -     { "mixer_aux", mixer_dbg_show, 0, NULL },
> -};
> -
> -int sti_mixer_debugfs_init(struct sti_mixer *mixer, struct drm_minor *minor)
> -{
> -     unsigned int i;
> -     struct drm_info_list *mixer_debugfs_files;
> -     int nb_files;
> -
> -     switch (mixer->id) {
> -     case STI_MIXER_MAIN:
> -             mixer_debugfs_files = mixer0_debugfs_files;
> -             nb_files = ARRAY_SIZE(mixer0_debugfs_files);
> -             break;
> -     case STI_MIXER_AUX:
> -             mixer_debugfs_files = mixer1_debugfs_files;
> -             nb_files = ARRAY_SIZE(mixer1_debugfs_files);
> -             break;
> -     default:
> -             return -EINVAL;
> -     }
> -
> -     for (i = 0; i < nb_files; i++)
> -             mixer_debugfs_files[i].data = mixer;
> -
> -     return drm_debugfs_create_files(mixer_debugfs_files,
> -                                     nb_files,
> -                                     minor->debugfs_root, minor);
> +     mixer_dbg_mxn(p, mixer->regs + GAM_MIXER_MX0);
> +     drm_printf(p, "\n");
>   }
>   
>   void sti_mixer_set_background_status(struct sti_mixer *mixer, bool enable)
> @@ -367,7 +328,7 @@ struct sti_mixer *sti_mixer_create(struct device *dev,
>       mixer->dev = dev;
>       mixer->id = id;
>   
> -     DRM_DEBUG_DRIVER("%s created. Regs=%p\n",
> +     DRM_DEBUG_DRIVER("%s created. Regs=%pK\n",
>                        sti_mixer_to_str(mixer), mixer->regs);
>   
>       return mixer;
> diff --git a/drivers/gpu/drm/sti/sti_mixer.h b/drivers/gpu/drm/sti/sti_mixer.h
> index 4cb3cfddc03a..067093270bb0 100644
> --- a/drivers/gpu/drm/sti/sti_mixer.h
> +++ b/drivers/gpu/drm/sti/sti_mixer.h
> @@ -53,7 +53,8 @@ int sti_mixer_active_video_area(struct sti_mixer *mixer,
>   
>   void sti_mixer_set_background_status(struct sti_mixer *mixer, bool enable);
>   
> -int sti_mixer_debugfs_init(struct sti_mixer *mixer, struct drm_minor *minor);
> +void sti_mixer_print_state(struct drm_printer *p, struct sti_mixer *mixer);
> +
>   
>   /* depth in Cross-bar control = z order */
>   #define GAM_MIXER_NB_DEPTH_LEVEL 6
> diff --git a/drivers/gpu/drm/sti/sti_vid.c b/drivers/gpu/drm/sti/sti_vid.c
> index 2aac36c95835..9730e9cf2a87 100644
> --- a/drivers/gpu/drm/sti/sti_vid.c
> +++ b/drivers/gpu/drm/sti/sti_vid.c
> @@ -55,54 +55,51 @@
>   
>   #define VID_MIN_HD_HEIGHT       720
>   
> -#define DBGFS_DUMP(reg) seq_printf(s, "\n  %-25s 0x%08X", #reg, \
> +#define DBGFS_DUMP(reg) drm_printf(p, "\n\t\t%-25s 0x%08X", #reg, \
>                                  readl(vid->regs + reg))
>   
> -static void vid_dbg_ctl(struct seq_file *s, int val)
> +static void vid_dbg_ctl(struct drm_printer *p, int val)
>   {
>       val = val >> 30;
> -     seq_putc(s, '\t');
> +     drm_printf(p, "\t");
>   
>       if (!(val & 1))
> -             seq_puts(s, "NOT ");
> -     seq_puts(s, "ignored on main mixer - ");
> +             drm_printf(p, "NOT ");
> +     drm_printf(p, "ignored on main mixer - ");
>   
>       if (!(val & 2))
> -             seq_puts(s, "NOT ");
> -     seq_puts(s, "ignored on aux mixer");
> +             drm_printf(p, "NOT ");
> +     drm_printf(p, "ignored on aux mixer");
>   }
>   
> -static void vid_dbg_vpo(struct seq_file *s, int val)
> +static void vid_dbg_vpo(struct drm_printer *p, int val)
>   {
> -     seq_printf(s, "\txdo:%4d\tydo:%4d", val & 0x0FFF, (val >> 16) & 0x0FFF);
> +     drm_printf(p, "\txdo:%4d\tydo:%4d", val & 0x0FFF, (val >> 16) & 0x0FFF);
>   }
>   
> -static void vid_dbg_vps(struct seq_file *s, int val)
> +static void vid_dbg_vps(struct drm_printer *p, int val)
>   {
> -     seq_printf(s, "\txds:%4d\tyds:%4d", val & 0x0FFF, (val >> 16) & 0x0FFF);
> +     drm_printf(p, "\txds:%4d\tyds:%4d", val & 0x0FFF, (val >> 16) & 0x0FFF);
>   }
>   
> -static void vid_dbg_mst(struct seq_file *s, int val)
> +static void vid_dbg_mst(struct drm_printer *p, int val)
>   {
>       if (val & 1)
> -             seq_puts(s, "\tBUFFER UNDERFLOW!");
> +             drm_printf(p, "\tBUFFER UNDERFLOW!");
>   }
>   
> -static int vid_dbg_show(struct seq_file *s, void *arg)
> +void sti_vid_print_state(struct drm_printer *p, struct sti_vid *vid)
>   {
> -     struct drm_info_node *node = s->private;
> -     struct sti_vid *vid = (struct sti_vid *)node->info_ent->data;
> -
> -     seq_printf(s, "VID: (vaddr= 0x%p)", vid->regs);
> +     drm_printf(p, "\tVID: (vaddr= 0x%pK)", vid->regs);
>   
>       DBGFS_DUMP(VID_CTL);
> -     vid_dbg_ctl(s, readl(vid->regs + VID_CTL));
> +     vid_dbg_ctl(p, readl(vid->regs + VID_CTL));
>       DBGFS_DUMP(VID_ALP);
>       DBGFS_DUMP(VID_CLF);
>       DBGFS_DUMP(VID_VPO);
> -     vid_dbg_vpo(s, readl(vid->regs + VID_VPO));
> +     vid_dbg_vpo(p, readl(vid->regs + VID_VPO));
>       DBGFS_DUMP(VID_VPS);
> -     vid_dbg_vps(s, readl(vid->regs + VID_VPS));
> +     vid_dbg_vps(p, readl(vid->regs + VID_VPS));
>       DBGFS_DUMP(VID_KEY1);
>       DBGFS_DUMP(VID_KEY2);
>       DBGFS_DUMP(VID_MPR0);
> @@ -110,28 +107,11 @@ static int vid_dbg_show(struct seq_file *s, void *arg)
>       DBGFS_DUMP(VID_MPR2);
>       DBGFS_DUMP(VID_MPR3);
>       DBGFS_DUMP(VID_MST);
> -     vid_dbg_mst(s, readl(vid->regs + VID_MST));
> +     vid_dbg_mst(p, readl(vid->regs + VID_MST));
>       DBGFS_DUMP(VID_BC);
>       DBGFS_DUMP(VID_TINT);
>       DBGFS_DUMP(VID_CSAT);
> -     seq_putc(s, '\n');
> -     return 0;
> -}
> -
> -static struct drm_info_list vid_debugfs_files[] = {
> -     { "vid", vid_dbg_show, 0, NULL },
> -};
> -
> -int vid_debugfs_init(struct sti_vid *vid, struct drm_minor *minor)
> -{
> -     unsigned int i;
> -
> -     for (i = 0; i < ARRAY_SIZE(vid_debugfs_files); i++)
> -             vid_debugfs_files[i].data = vid;
> -
> -     return drm_debugfs_create_files(vid_debugfs_files,
> -                                     ARRAY_SIZE(vid_debugfs_files),
> -                                     minor->debugfs_root, minor);
> +     drm_printf(p, "\n");
>   }
>   
>   void sti_vid_commit(struct sti_vid *vid,
> diff --git a/drivers/gpu/drm/sti/sti_vid.h b/drivers/gpu/drm/sti/sti_vid.h
> index 9dbd78461de1..27656dbbd2bc 100644
> --- a/drivers/gpu/drm/sti/sti_vid.h
> +++ b/drivers/gpu/drm/sti/sti_vid.h
> @@ -26,6 +26,6 @@ void sti_vid_disable(struct sti_vid *vid);
>   struct sti_vid *sti_vid_create(struct device *dev, struct drm_device 
> *drm_dev,
>                              int id, void __iomem *baseaddr);
>   
> -int vid_debugfs_init(struct sti_vid *vid, struct drm_minor *minor);
> +void sti_vid_print_state(struct drm_printer *p, struct sti_vid *vid);
>   
>   #endif
> 

Reviewed-by: Philippe Cornu <philippe.co...@st.com>
Many thanks
Philippe :-)
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to