From: Dave Stevenson <[email protected]>

The vc5 HDMI registers hadn't been added into the debugfs
register sets, therefore weren't dumped on request.
Add them in.

Fixes: 8323989140f3 ("drm/vc4: hdmi: Support the BCM2711 HDMI controllers")
Signed-off-by: Dave Stevenson <[email protected]>
Signed-off-by: Maxime Ripard <[email protected]>
---
 drivers/gpu/drm/vc4/vc4_hdmi.c | 39 ++++++++++++++++++++++++++++++++++
 drivers/gpu/drm/vc4/vc4_hdmi.h |  8 +++++++
 2 files changed, 47 insertions(+)

diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index c8571e17afa8..d23ed6e5bd65 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -144,6 +144,12 @@ static int vc4_hdmi_debugfs_regs(struct seq_file *m, void 
*unused)
 
        drm_print_regset32(&p, &vc4_hdmi->hdmi_regset);
        drm_print_regset32(&p, &vc4_hdmi->hd_regset);
+       drm_print_regset32(&p, &vc4_hdmi->cec_regset);
+       drm_print_regset32(&p, &vc4_hdmi->csc_regset);
+       drm_print_regset32(&p, &vc4_hdmi->dvp_regset);
+       drm_print_regset32(&p, &vc4_hdmi->phy_regset);
+       drm_print_regset32(&p, &vc4_hdmi->ram_regset);
+       drm_print_regset32(&p, &vc4_hdmi->rm_regset);
 
        return 0;
 }
@@ -2703,6 +2709,7 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi 
*vc4_hdmi)
        struct platform_device *pdev = vc4_hdmi->pdev;
        struct device *dev = &pdev->dev;
        struct resource *res;
+       int ret;
 
        res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hdmi");
        if (!res)
@@ -2799,6 +2806,38 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi 
*vc4_hdmi)
                return PTR_ERR(vc4_hdmi->reset);
        }
 
+       ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->hdmi_regset, VC4_HDMI);
+       if (ret)
+               return ret;
+
+       ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->hd_regset, VC4_HD);
+       if (ret)
+               return ret;
+
+       ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->cec_regset, VC5_CEC);
+       if (ret)
+               return ret;
+
+       ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->csc_regset, VC5_CSC);
+       if (ret)
+               return ret;
+
+       ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->dvp_regset, VC5_DVP);
+       if (ret)
+               return ret;
+
+       ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->phy_regset, VC5_PHY);
+       if (ret)
+               return ret;
+
+       ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->ram_regset, VC5_RAM);
+       if (ret)
+               return ret;
+
+       ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->rm_regset, VC5_RM);
+       if (ret)
+               return ret;
+
        return 0;
 }
 
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h
index 51b27dcdcd9b..1520387b317f 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.h
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.h
@@ -179,6 +179,14 @@ struct vc4_hdmi {
        struct debugfs_regset32 hdmi_regset;
        struct debugfs_regset32 hd_regset;
 
+       /* VC5 only */
+       struct debugfs_regset32 cec_regset;
+       struct debugfs_regset32 csc_regset;
+       struct debugfs_regset32 dvp_regset;
+       struct debugfs_regset32 phy_regset;
+       struct debugfs_regset32 ram_regset;
+       struct debugfs_regset32 rm_regset;
+
        /**
         * @hw_lock: Spinlock protecting device register access.
         */
-- 
2.36.1

Reply via email to