OSDN Git Service

drm/mediatek: mtk_dsi: Reset the dsi0 hardware
authorEnric Balletbo i Serra <enric.balletbo@collabora.com>
Thu, 30 Sep 2021 08:31:50 +0000 (10:31 +0200)
committerMatthias Brugger <matthias.bgg@gmail.com>
Fri, 8 Oct 2021 13:15:26 +0000 (15:15 +0200)
Reset dsi0 HW to default when power on. This prevents to have different
settingis between the bootloader and the kernel.

As not all Mediatek boards have the reset consumer configured in their
board description, also is not needed on all of them, the reset is optional,
so the change is compatible with all boards.

Cc: Jitao Shi <jitao.shi@mediatek.com>
Suggested-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Acked-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
Link: https://lore.kernel.org/r/20210930103105.v4.7.Idbb4727ddf00ba2fe796b630906baff10d994d89@changeid
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
drivers/gpu/drm/mediatek/mtk_dsi.c

index 93b40c2..5d90d2e 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/of_platform.h>
 #include <linux/phy/phy.h>
 #include <linux/platform_device.h>
+#include <linux/reset.h>
 
 #include <video/mipi_display.h>
 #include <video/videomode.h>
@@ -980,8 +981,10 @@ static int mtk_dsi_bind(struct device *dev, struct device *master, void *data)
        struct mtk_dsi *dsi = dev_get_drvdata(dev);
 
        ret = mtk_dsi_encoder_init(drm, dsi);
+       if (ret)
+               return ret;
 
-       return ret;
+       return device_reset_optional(dev);
 }
 
 static void mtk_dsi_unbind(struct device *dev, struct device *master,