hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
....@@ -876,19 +876,27 @@
876876 static void dw_mipi_dsi_bridge_post_disable(struct drm_bridge *bridge)
877877 {
878878 struct dw_mipi_dsi *dsi = bridge_to_dsi(bridge);
879
+ const struct dw_mipi_dsi_plat_data *pdata = dsi->plat_data;
879880
880881 if (dsi->panel)
881882 drm_panel_unprepare(dsi->panel);
882883
883884 dw_mipi_dsi_post_disable(dsi);
885
+
886
+ if (pdata->stream_standby)
887
+ pdata->stream_standby(pdata->priv_data, 0);
884888 }
885889
886890 static void dw_mipi_dsi_bridge_disable(struct drm_bridge *bridge)
887891 {
888892 struct dw_mipi_dsi *dsi = bridge_to_dsi(bridge);
893
+ const struct dw_mipi_dsi_plat_data *pdata = dsi->plat_data;
889894
890895 if (dsi->panel)
891896 drm_panel_disable(dsi->panel);
897
+
898
+ if (pdata->stream_standby)
899
+ pdata->stream_standby(pdata->priv_data, 1);
892900
893901 dw_mipi_dsi_disable(dsi);
894902 }
....@@ -975,6 +983,10 @@
975983 static void dw_mipi_dsi_bridge_pre_enable(struct drm_bridge *bridge)
976984 {
977985 struct dw_mipi_dsi *dsi = bridge_to_dsi(bridge);
986
+ const struct dw_mipi_dsi_plat_data *pdata = dsi->plat_data;
987
+
988
+ if (pdata->stream_standby)
989
+ pdata->stream_standby(pdata->priv_data, 1);
978990
979991 dw_mipi_dsi_pre_enable(dsi);
980992
....@@ -1006,9 +1018,13 @@
10061018 static void dw_mipi_dsi_bridge_enable(struct drm_bridge *bridge)
10071019 {
10081020 struct dw_mipi_dsi *dsi = bridge_to_dsi(bridge);
1021
+ const struct dw_mipi_dsi_plat_data *pdata = dsi->plat_data;
10091022
10101023 dw_mipi_dsi_enable(dsi);
10111024
1025
+ if (pdata->stream_standby)
1026
+ pdata->stream_standby(pdata->priv_data, 0);
1027
+
10121028 if (dsi->panel)
10131029 drm_panel_enable(dsi->panel);
10141030