From 666a98aabadde87f7ae660caa21021ec53c535fb Mon Sep 17 00:00:00 2001 From: Laurentiu Palcu Date: Fri, 10 Nov 2017 10:07:28 +0200 Subject: [PATCH] MLK-16923-2: drm: imx: dcss: Add possibility to debug BLKCTL registers When debugging it's useful to be able to see the DCSS registers. BLKCTL was not added to the list of modules supporting this feature. This patch adds it. Signed-off-by: Laurentiu Palcu --- drivers/gpu/imx/dcss/dcss-blkctl.c | 22 ++++++++++++++++++++++ drivers/gpu/imx/dcss/dcss-common.c | 1 + drivers/gpu/imx/dcss/dcss-prv.h | 1 + 3 files changed, 24 insertions(+) diff --git a/drivers/gpu/imx/dcss/dcss-blkctl.c b/drivers/gpu/imx/dcss/dcss-blkctl.c index 29b2e861b122..69372ab5b814 100644 --- a/drivers/gpu/imx/dcss/dcss-blkctl.c +++ b/drivers/gpu/imx/dcss/dcss-blkctl.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include "dcss-prv.h" @@ -36,6 +37,11 @@ #define B0_SILICON_ID 0x20 +static struct dcss_debug_reg blkctl_debug_reg[] = { + DCSS_DBG_REG(DCSS_BLKCTL_RESET_CTRL), + DCSS_DBG_REG(DCSS_BLKCTL_CONTROL0), +}; + struct dcss_blkctl_priv { struct dcss_soc *dcss; void __iomem *base_reg; @@ -44,6 +50,22 @@ struct dcss_blkctl_priv { u32 clk_setting; }; +#ifdef CONFIG_DEBUG_FS +void dcss_blkctl_dump_regs(struct seq_file *s, void *data) +{ + struct dcss_soc *dcss = data; + int j; + + seq_puts(s, ">> Dumping BLKCTL:\n"); + for (j = 0; j < ARRAY_SIZE(blkctl_debug_reg); j++) + seq_printf(s, "%-35s(0x%04x) -> 0x%08x\n", + blkctl_debug_reg[j].name, + blkctl_debug_reg[j].ofs, + dcss_readl(dcss->blkctl_priv->base_reg + + blkctl_debug_reg[j].ofs)); +} +#endif + static void dcss_blkctl_clk_reset(struct dcss_blkctl_priv *blkctl, u32 assert, u32 deassert) { diff --git a/drivers/gpu/imx/dcss/dcss-common.c b/drivers/gpu/imx/dcss/dcss-common.c index ecc729a89824..3f3f1f8bae10 100644 --- a/drivers/gpu/imx/dcss/dcss-common.c +++ b/drivers/gpu/imx/dcss/dcss-common.c @@ -292,6 +292,7 @@ static int dcss_clks_init(struct dcss_soc *dcss) static int dcss_dump_regs_show(struct seq_file *s, void *data) { + dcss_blkctl_dump_regs(s, s->private); dcss_dtrc_dump_regs(s, s->private); dcss_dpr_dump_regs(s, s->private); dcss_scaler_dump_regs(s, s->private); diff --git a/drivers/gpu/imx/dcss/dcss-prv.h b/drivers/gpu/imx/dcss/dcss-prv.h index f83999a5b540..b2edde11f371 100644 --- a/drivers/gpu/imx/dcss/dcss-prv.h +++ b/drivers/gpu/imx/dcss/dcss-prv.h @@ -93,6 +93,7 @@ void dcss_dtrc_exit(struct dcss_soc *dcss); int dcss_dec400d_init(struct dcss_soc *dcss, unsigned long dec400d_base); void dcss_dec400d_exit(struct dcss_soc *dcss); +void dcss_blkctl_dump_regs(struct seq_file *s, void *data); void dcss_dtrc_dump_regs(struct seq_file *s, void *data); void dcss_dpr_dump_regs(struct seq_file *s, void *data); void dcss_dtg_dump_regs(struct seq_file *s, void *data); -- 2.17.1