drm/msm/dsi: add dsi host helper functions support
authorSibi Sankar <sibis@codeaurora.org>
Tue, 29 May 2018 14:20:31 +0000 (19:50 +0530)
committerRob Clark <robdclark@gmail.com>
Wed, 25 Jul 2018 11:51:04 +0000 (07:51 -0400)
Add dsi host helper functions support for DSI v2 and DSI 6G 1.x
controllers that are under version checks

Signed-off-by: Sibi Sankar <sibis@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/msm/dsi/dsi.h
drivers/gpu/drm/msm/dsi/dsi_cfg.h

index 70d9a9a47acd53bbed826f05ee30a49d50a92fc6..80be83e8fdecc70a21ce72d5f6385b4c13839e80 100644 (file)
@@ -149,6 +149,7 @@ static inline int msm_dsi_pll_set_usecase(struct msm_dsi_pll *pll,
 #endif
 
 /* dsi host */
+struct msm_dsi_host;
 int msm_dsi_host_xfer_prepare(struct mipi_dsi_host *host,
                                        const struct mipi_dsi_msg *msg);
 void msm_dsi_host_xfer_restore(struct mipi_dsi_host *host,
index 9cfdcf1c95d5ecfb47f4dc1f515f1bd99a08984a..a795a062b77950ad5cd41be4e68daef7c6c748ce 100644 (file)
@@ -40,10 +40,22 @@ struct msm_dsi_config {
        const int num_dsi;
 };
 
+struct msm_dsi_host_cfg_ops {
+       int (*link_clk_enable)(struct msm_dsi_host *msm_host);
+       void (*link_clk_disable)(struct msm_dsi_host *msm_host);
+       int (*clk_init_ver)(struct msm_dsi_host *msm_host);
+       int (*tx_buf_alloc)(struct msm_dsi_host *msm_host, int size);
+       void* (*tx_buf_get)(struct msm_dsi_host *msm_host);
+       void (*tx_buf_put)(struct msm_dsi_host *msm_host);
+       int (*dma_base_get)(struct msm_dsi_host *msm_host, uint64_t *iova);
+       int (*calc_clk_rate)(struct msm_dsi_host *msm_host);
+};
+
 struct msm_dsi_cfg_handler {
        u32 major;
        u32 minor;
        const struct msm_dsi_config *cfg;
+       const struct msm_dsi_host_cfg_ops *ops;
 };
 
 const struct msm_dsi_cfg_handler *msm_dsi_cfg_get(u32 major, u32 minor);