Hi, On Sat, May 26, 2018 at 08:24:43PM +0300, Laurent Pinchart wrote: > The DSI clocks are dumped in the DSS-level debugfs clocks file. This > complicates the implementation as the DSI private data has to be looked > up through the outputs list. Simplify it by creating two debugfs files, > dsi1_clks and dsi2_clks, to dump the DSI clocks. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- Reviewed-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxxxx> -- Sebastian > drivers/gpu/drm/omapdrm/dss/dsi.c | 43 ++++++++------------------------------- > drivers/gpu/drm/omapdrm/dss/dss.c | 3 --- > drivers/gpu/drm/omapdrm/dss/dss.h | 2 -- > 3 files changed, 9 insertions(+), 39 deletions(-) > > diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c > index 9952803b58d2..adfda2a63ada 100644 > --- a/drivers/gpu/drm/omapdrm/dss/dsi.c > +++ b/drivers/gpu/drm/omapdrm/dss/dsi.c > @@ -403,6 +403,7 @@ struct dsi_data { > struct { > struct dss_debugfs_entry *irqs; > struct dss_debugfs_entry *regs; > + struct dss_debugfs_entry *clks; > } debugfs; > > #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS > @@ -442,27 +443,6 @@ static inline struct dsi_data *to_dsi_data(struct omap_dss_device *dssdev) > return dev_get_drvdata(dssdev->dev); > } > > -static struct dsi_data *dsi_get_dsi_from_id(int module) > -{ > - struct omap_dss_device *out; > - enum omap_dss_output_id id; > - > - switch (module) { > - case 0: > - id = OMAP_DSS_OUTPUT_DSI1; > - break; > - case 1: > - id = OMAP_DSS_OUTPUT_DSI2; > - break; > - default: > - return NULL; > - } > - > - out = omap_dss_get_output(id); > - > - return out ? to_dsi_data(out) : NULL; > -} > - > static inline void dsi_write_reg(struct dsi_data *dsi, > const struct dsi_reg idx, u32 val) > { > @@ -1448,8 +1428,9 @@ static void dsi_pll_disable(struct dss_pll *pll) > dsi_pll_uninit(dsi, true); > } > > -static void dsi_dump_dsi_clocks(struct dsi_data *dsi, struct seq_file *s) > +static int dsi_dump_dsi_clocks(struct seq_file *s, void *p) > { > + struct dsi_data *dsi = p; > struct dss_pll_clock_info *cinfo = &dsi->pll.cinfo; > enum dss_clk_source dispc_clk_src, dsi_clk_src; > int dsi_module = dsi->module_id; > @@ -1459,7 +1440,7 @@ static void dsi_dump_dsi_clocks(struct dsi_data *dsi, struct seq_file *s) > dsi_clk_src = dss_get_dsi_clk_source(dsi->dss, dsi_module); > > if (dsi_runtime_get(dsi)) > - return; > + return 0; > > seq_printf(s, "- DSI%d PLL -\n", dsi_module + 1); > > @@ -1503,18 +1484,8 @@ static void dsi_dump_dsi_clocks(struct dsi_data *dsi, struct seq_file *s) > seq_printf(s, "LP_CLK\t\t%lu\n", dsi->current_lp_cinfo.lp_clk); > > dsi_runtime_put(dsi); > -} > - > -void dsi_dump_clocks(struct seq_file *s) > -{ > - struct dsi_data *dsi; > - int i; > > - for (i = 0; i < MAX_NUM_DSI; i++) { > - dsi = dsi_get_dsi_from_id(i); > - if (dsi) > - dsi_dump_dsi_clocks(dsi, s); > - } > + return 0; > } > > #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS > @@ -5426,6 +5397,9 @@ static int dsi_bind(struct device *dev, struct device *master, void *data) > dsi->debugfs.irqs = dss_debugfs_create_file(dss, name, > dsi_dump_dsi_irqs, &dsi); > #endif > + snprintf(name, sizeof(name), "dsi%u_clks", dsi->module_id + 1); > + dsi->debugfs.clks = dss_debugfs_create_file(dss, name, > + dsi_dump_dsi_clocks, &dsi); > > return 0; > > @@ -5442,6 +5416,7 @@ static void dsi_unbind(struct device *dev, struct device *master, void *data) > { > struct dsi_data *dsi = dev_get_drvdata(dev); > > + dss_debugfs_remove_file(dsi->debugfs.clks); > dss_debugfs_remove_file(dsi->debugfs.irqs); > dss_debugfs_remove_file(dsi->debugfs.regs); > > diff --git a/drivers/gpu/drm/omapdrm/dss/dss.c b/drivers/gpu/drm/omapdrm/dss/dss.c > index 59b238f03437..8e7646181302 100644 > --- a/drivers/gpu/drm/omapdrm/dss/dss.c > +++ b/drivers/gpu/drm/omapdrm/dss/dss.c > @@ -394,9 +394,6 @@ static int dss_debug_dump_clocks(struct seq_file *s, void *p) > > dss_dump_clocks(dss, s); > dispc_dump_clocks(dss->dispc, s); > -#ifdef CONFIG_OMAP2_DSS_DSI > - dsi_dump_clocks(s); > -#endif > return 0; > } > > diff --git a/drivers/gpu/drm/omapdrm/dss/dss.h b/drivers/gpu/drm/omapdrm/dss/dss.h > index 4f1eb7f5b922..a4514843e925 100644 > --- a/drivers/gpu/drm/omapdrm/dss/dss.h > +++ b/drivers/gpu/drm/omapdrm/dss/dss.h > @@ -373,8 +373,6 @@ static inline void sdi_uninit_port(struct device_node *port) > > #ifdef CONFIG_OMAP2_DSS_DSI > > -void dsi_dump_clocks(struct seq_file *s); > - > void dsi_irq_handler(void); > > #endif > -- > Regards, > > Laurent Pinchart > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel