Perform removal of DSS if kconfigs VIDEO_REMOVE or SPL_VIDEO_REMOVE is
set by user. Otherwise if above Kconfigs are not selected, it is assumed
that user wants splash screen to be displayed until linux kernel boots
up. In such scenario, leave the power domain of DSS as "on" so that
splash screen stays intact until kernel boots up.

Signed-off-by: Nikhil M Jain <n-ja...@ti.com>
---
 drivers/video/tidss/tidss_drv.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/video/tidss/tidss_drv.c b/drivers/video/tidss/tidss_drv.c
index 623bf4cf31..e285f255d7 100644
--- a/drivers/video/tidss/tidss_drv.c
+++ b/drivers/video/tidss/tidss_drv.c
@@ -901,9 +901,11 @@ static int tidss_drv_probe(struct udevice *dev)
 
 static int tidss_drv_remove(struct udevice *dev)
 {
-       struct tidss_drv_priv *priv = dev_get_priv(dev);
+       if (CONFIG_IS_ENABLED(VIDEO_REMOVE)) {
+               struct tidss_drv_priv *priv = dev_get_priv(dev);
 
-       VP_REG_FLD_MOD(priv, 0, DSS_VP_CONTROL, 0, 0, 0);
+               VP_REG_FLD_MOD(priv, 0, DSS_VP_CONTROL, 0, 0, 0);
+       }
        return 0;
 }
 
@@ -929,5 +931,9 @@ U_BOOT_DRIVER(tidss_drv) = {
        .probe = tidss_drv_probe,
        .remove = tidss_drv_remove,
        .priv_auto = sizeof(struct tidss_drv_priv),
+#if CONFIG_IS_ENABLED(VIDEO_REMOVE)
        .flags = DM_FLAG_OS_PREPARE,
+#else
+       .flags = DM_FLAG_OS_PREPARE | DM_FLAG_LEAVE_PD_ON,
+#endif
 };
-- 
2.34.1

Reply via email to