summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKory Maincent (TI.com) <kory.maincent@bootlin.com>2026-01-23 19:12:33 +0300
committerLuca Ceresoli <luca.ceresoli@bootlin.com>2026-02-11 11:16:15 +0300
commite41591e7474920187be7af0404ec9ed63b5f4614 (patch)
tree1d776e8b421ddca4637575d668d558fe7a1c1433
parent87e66f60f63a746094134bc3e0ffdb6bd87afcb1 (diff)
downloadlinux-e41591e7474920187be7af0404ec9ed63b5f4614.tar.xz
drm/tilcdc: Move tilcdc_init/fini closer to probe/remove
Move tilcdc_init/fini functions adjacent to the probe and remove functions in preparation for cleanup and modernization. This improves readability for subsequent commits that will refactor these functions. No functional changes, only code reorganization. Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Kory Maincent (TI.com) <kory.maincent@bootlin.com> Link: https://patch.msgid.link/20260123-feature_tilcdc-v5-15-5a44d2aa3f6f@bootlin.com Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_drv.c238
1 files changed, 119 insertions, 119 deletions
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index 97380b623fca..abe432b752dc 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -140,6 +140,125 @@ static void tilcdc_irq_uninstall(struct drm_device *dev)
* DRM operations:
*/
+#if defined(CONFIG_DEBUG_FS)
+static const struct {
+ const char *name;
+ uint8_t rev;
+ uint8_t save;
+ uint32_t reg;
+} registers[] = {
+#define REG(rev, save, reg) { #reg, rev, save, reg }
+ /* exists in revision 1: */
+ REG(1, false, LCDC_PID_REG),
+ REG(1, true, LCDC_CTRL_REG),
+ REG(1, false, LCDC_STAT_REG),
+ REG(1, true, LCDC_RASTER_CTRL_REG),
+ REG(1, true, LCDC_RASTER_TIMING_0_REG),
+ REG(1, true, LCDC_RASTER_TIMING_1_REG),
+ REG(1, true, LCDC_RASTER_TIMING_2_REG),
+ REG(1, true, LCDC_DMA_CTRL_REG),
+ REG(1, true, LCDC_DMA_FB_BASE_ADDR_0_REG),
+ REG(1, true, LCDC_DMA_FB_CEILING_ADDR_0_REG),
+ REG(1, true, LCDC_DMA_FB_BASE_ADDR_1_REG),
+ REG(1, true, LCDC_DMA_FB_CEILING_ADDR_1_REG),
+ /* new in revision 2: */
+ REG(2, false, LCDC_RAW_STAT_REG),
+ REG(2, false, LCDC_MASKED_STAT_REG),
+ REG(2, true, LCDC_INT_ENABLE_SET_REG),
+ REG(2, false, LCDC_INT_ENABLE_CLR_REG),
+ REG(2, false, LCDC_END_OF_INT_IND_REG),
+ REG(2, true, LCDC_CLK_ENABLE_REG),
+#undef REG
+};
+
+static int tilcdc_regs_show(struct seq_file *m, void *arg)
+{
+ struct drm_info_node *node = (struct drm_info_node *) m->private;
+ struct drm_device *dev = node->minor->dev;
+ struct tilcdc_drm_private *priv = dev->dev_private;
+ unsigned i;
+
+ pm_runtime_get_sync(dev->dev);
+
+ seq_printf(m, "revision: %d\n", priv->rev);
+
+ for (i = 0; i < ARRAY_SIZE(registers); i++)
+ if (priv->rev >= registers[i].rev)
+ seq_printf(m, "%s:\t %08x\n", registers[i].name,
+ tilcdc_read(dev, registers[i].reg));
+
+ pm_runtime_put_sync(dev->dev);
+
+ return 0;
+}
+
+static int tilcdc_mm_show(struct seq_file *m, void *arg)
+{
+ struct drm_info_node *node = (struct drm_info_node *) m->private;
+ struct drm_device *dev = node->minor->dev;
+ struct drm_printer p = drm_seq_file_printer(m);
+ drm_mm_print(&dev->vma_offset_manager->vm_addr_space_mm, &p);
+ return 0;
+}
+
+static struct drm_info_list tilcdc_debugfs_list[] = {
+ { "regs", tilcdc_regs_show, 0, NULL },
+ { "mm", tilcdc_mm_show, 0, NULL },
+};
+
+static void tilcdc_debugfs_init(struct drm_minor *minor)
+{
+ drm_debugfs_create_files(tilcdc_debugfs_list,
+ ARRAY_SIZE(tilcdc_debugfs_list),
+ minor->debugfs_root, minor);
+}
+#endif
+
+DEFINE_DRM_GEM_DMA_FOPS(fops);
+
+static const struct drm_driver tilcdc_driver = {
+ .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
+ DRM_GEM_DMA_DRIVER_OPS,
+ DRM_FBDEV_DMA_DRIVER_OPS,
+#ifdef CONFIG_DEBUG_FS
+ .debugfs_init = tilcdc_debugfs_init,
+#endif
+ .fops = &fops,
+ .name = "tilcdc",
+ .desc = "TI LCD Controller DRM",
+ .major = 1,
+ .minor = 0,
+};
+
+/*
+ * Power management:
+ */
+
+static int tilcdc_pm_suspend(struct device *dev)
+{
+ struct drm_device *ddev = dev_get_drvdata(dev);
+ int ret = 0;
+
+ ret = drm_mode_config_helper_suspend(ddev);
+
+ /* Select sleep pin state */
+ pinctrl_pm_select_sleep_state(dev);
+
+ return ret;
+}
+
+static int tilcdc_pm_resume(struct device *dev)
+{
+ struct drm_device *ddev = dev_get_drvdata(dev);
+
+ /* Select default pin state */
+ pinctrl_pm_select_default_state(dev);
+ return drm_mode_config_helper_resume(ddev);
+}
+
+static DEFINE_SIMPLE_DEV_PM_OPS(tilcdc_pm_ops,
+ tilcdc_pm_suspend, tilcdc_pm_resume);
+
static void tilcdc_fini(struct drm_device *dev)
{
struct tilcdc_drm_private *priv = dev->dev_private;
@@ -375,125 +494,6 @@ put_drm:
return ret;
}
-#if defined(CONFIG_DEBUG_FS)
-static const struct {
- const char *name;
- uint8_t rev;
- uint8_t save;
- uint32_t reg;
-} registers[] = {
-#define REG(rev, save, reg) { #reg, rev, save, reg }
- /* exists in revision 1: */
- REG(1, false, LCDC_PID_REG),
- REG(1, true, LCDC_CTRL_REG),
- REG(1, false, LCDC_STAT_REG),
- REG(1, true, LCDC_RASTER_CTRL_REG),
- REG(1, true, LCDC_RASTER_TIMING_0_REG),
- REG(1, true, LCDC_RASTER_TIMING_1_REG),
- REG(1, true, LCDC_RASTER_TIMING_2_REG),
- REG(1, true, LCDC_DMA_CTRL_REG),
- REG(1, true, LCDC_DMA_FB_BASE_ADDR_0_REG),
- REG(1, true, LCDC_DMA_FB_CEILING_ADDR_0_REG),
- REG(1, true, LCDC_DMA_FB_BASE_ADDR_1_REG),
- REG(1, true, LCDC_DMA_FB_CEILING_ADDR_1_REG),
- /* new in revision 2: */
- REG(2, false, LCDC_RAW_STAT_REG),
- REG(2, false, LCDC_MASKED_STAT_REG),
- REG(2, true, LCDC_INT_ENABLE_SET_REG),
- REG(2, false, LCDC_INT_ENABLE_CLR_REG),
- REG(2, false, LCDC_END_OF_INT_IND_REG),
- REG(2, true, LCDC_CLK_ENABLE_REG),
-#undef REG
-};
-
-static int tilcdc_regs_show(struct seq_file *m, void *arg)
-{
- struct drm_info_node *node = (struct drm_info_node *) m->private;
- struct drm_device *dev = node->minor->dev;
- struct tilcdc_drm_private *priv = dev->dev_private;
- unsigned i;
-
- pm_runtime_get_sync(dev->dev);
-
- seq_printf(m, "revision: %d\n", priv->rev);
-
- for (i = 0; i < ARRAY_SIZE(registers); i++)
- if (priv->rev >= registers[i].rev)
- seq_printf(m, "%s:\t %08x\n", registers[i].name,
- tilcdc_read(dev, registers[i].reg));
-
- pm_runtime_put_sync(dev->dev);
-
- return 0;
-}
-
-static int tilcdc_mm_show(struct seq_file *m, void *arg)
-{
- struct drm_info_node *node = (struct drm_info_node *) m->private;
- struct drm_device *dev = node->minor->dev;
- struct drm_printer p = drm_seq_file_printer(m);
- drm_mm_print(&dev->vma_offset_manager->vm_addr_space_mm, &p);
- return 0;
-}
-
-static struct drm_info_list tilcdc_debugfs_list[] = {
- { "regs", tilcdc_regs_show, 0, NULL },
- { "mm", tilcdc_mm_show, 0, NULL },
-};
-
-static void tilcdc_debugfs_init(struct drm_minor *minor)
-{
- drm_debugfs_create_files(tilcdc_debugfs_list,
- ARRAY_SIZE(tilcdc_debugfs_list),
- minor->debugfs_root, minor);
-}
-#endif
-
-DEFINE_DRM_GEM_DMA_FOPS(fops);
-
-static const struct drm_driver tilcdc_driver = {
- .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
- DRM_GEM_DMA_DRIVER_OPS,
- DRM_FBDEV_DMA_DRIVER_OPS,
-#ifdef CONFIG_DEBUG_FS
- .debugfs_init = tilcdc_debugfs_init,
-#endif
- .fops = &fops,
- .name = "tilcdc",
- .desc = "TI LCD Controller DRM",
- .major = 1,
- .minor = 0,
-};
-
-/*
- * Power management:
- */
-
-static int tilcdc_pm_suspend(struct device *dev)
-{
- struct drm_device *ddev = dev_get_drvdata(dev);
- int ret = 0;
-
- ret = drm_mode_config_helper_suspend(ddev);
-
- /* Select sleep pin state */
- pinctrl_pm_select_sleep_state(dev);
-
- return ret;
-}
-
-static int tilcdc_pm_resume(struct device *dev)
-{
- struct drm_device *ddev = dev_get_drvdata(dev);
-
- /* Select default pin state */
- pinctrl_pm_select_default_state(dev);
- return drm_mode_config_helper_resume(ddev);
-}
-
-static DEFINE_SIMPLE_DEV_PM_OPS(tilcdc_pm_ops,
- tilcdc_pm_suspend, tilcdc_pm_resume);
-
static int tilcdc_pdev_probe(struct platform_device *pdev)
{
/* bail out early if no DT data: */