Searched refs:msm_dsi (Results 1 - 5 of 5) sorted by relevance
/linux-4.4.14/drivers/gpu/drm/msm/dsi/ |
H A D | dsi.c | 16 struct drm_encoder *msm_dsi_get_encoder(struct msm_dsi *msm_dsi) msm_dsi_get_encoder() argument 18 if (!msm_dsi || !msm_dsi_device_connected(msm_dsi)) msm_dsi_get_encoder() 21 return (msm_dsi->device_flags & MIPI_DSI_MODE_VIDEO) ? msm_dsi_get_encoder() 22 msm_dsi->encoders[MSM_DSI_VIDEO_ENCODER_ID] : msm_dsi_get_encoder() 23 msm_dsi->encoders[MSM_DSI_CMD_ENCODER_ID]; msm_dsi_get_encoder() 26 static int dsi_get_phy(struct msm_dsi *msm_dsi) dsi_get_phy() argument 28 struct platform_device *pdev = msm_dsi->pdev; dsi_get_phy() 40 msm_dsi->phy = platform_get_drvdata(phy_pdev); dsi_get_phy() 44 if (!phy_pdev || !msm_dsi->phy) { dsi_get_phy() 49 msm_dsi->phy_dev = get_device(&phy_pdev->dev); dsi_get_phy() 54 static void dsi_destroy(struct msm_dsi *msm_dsi) dsi_destroy() argument 56 if (!msm_dsi) dsi_destroy() 59 msm_dsi_manager_unregister(msm_dsi); dsi_destroy() 61 if (msm_dsi->phy_dev) { dsi_destroy() 62 put_device(msm_dsi->phy_dev); dsi_destroy() 63 msm_dsi->phy = NULL; dsi_destroy() 64 msm_dsi->phy_dev = NULL; dsi_destroy() 67 if (msm_dsi->host) { dsi_destroy() 68 msm_dsi_host_destroy(msm_dsi->host); dsi_destroy() 69 msm_dsi->host = NULL; dsi_destroy() 72 platform_set_drvdata(msm_dsi->pdev, NULL); dsi_destroy() 75 static struct msm_dsi *dsi_init(struct platform_device *pdev) dsi_init() 77 struct msm_dsi *msm_dsi; dsi_init() local 83 msm_dsi = devm_kzalloc(&pdev->dev, sizeof(*msm_dsi), GFP_KERNEL); dsi_init() 84 if (!msm_dsi) dsi_init() 86 DBG("dsi probed=%p", msm_dsi); dsi_init() 88 msm_dsi->pdev = pdev; dsi_init() 89 platform_set_drvdata(pdev, msm_dsi); dsi_init() 92 ret = msm_dsi_host_init(msm_dsi); dsi_init() 97 ret = dsi_get_phy(msm_dsi); dsi_init() 102 ret = msm_dsi_manager_register(msm_dsi); dsi_init() 106 return msm_dsi; dsi_init() 109 dsi_destroy(msm_dsi); dsi_init() 118 struct msm_dsi *msm_dsi; dsi_bind() local 121 msm_dsi = dsi_init(pdev); dsi_bind() 122 if (IS_ERR(msm_dsi)) dsi_bind() 123 return PTR_ERR(msm_dsi); dsi_bind() 125 priv->dsi[msm_dsi->id] = msm_dsi; dsi_bind() 135 struct msm_dsi *msm_dsi = dev_get_drvdata(dev); dsi_unbind() local 136 int id = msm_dsi->id; dsi_unbind() 139 dsi_destroy(msm_dsi); dsi_unbind() 170 .name = "msm_dsi", 189 int msm_dsi_modeset_init(struct msm_dsi *msm_dsi, struct drm_device *dev, msm_dsi_modeset_init() argument 200 msm_dsi->dev = dev; msm_dsi_modeset_init() 202 ret = msm_dsi_host_modeset_init(msm_dsi->host, dev); msm_dsi_modeset_init() 208 msm_dsi->bridge = msm_dsi_manager_bridge_init(msm_dsi->id); msm_dsi_modeset_init() 209 if (IS_ERR(msm_dsi->bridge)) { msm_dsi_modeset_init() 210 ret = PTR_ERR(msm_dsi->bridge); msm_dsi_modeset_init() 212 msm_dsi->bridge = NULL; msm_dsi_modeset_init() 217 encoders[i]->bridge = msm_dsi->bridge; msm_dsi_modeset_init() 218 msm_dsi->encoders[i] = encoders[i]; msm_dsi_modeset_init() 227 ext_bridge = msm_dsi_host_get_bridge(msm_dsi->host); msm_dsi_modeset_init() 230 msm_dsi->connector = msm_dsi_modeset_init() 231 msm_dsi_manager_ext_bridge_init(msm_dsi->id); msm_dsi_modeset_init() 233 msm_dsi->connector = msm_dsi_modeset_init() 234 msm_dsi_manager_connector_init(msm_dsi->id); msm_dsi_modeset_init() 236 if (IS_ERR(msm_dsi->connector)) { msm_dsi_modeset_init() 237 ret = PTR_ERR(msm_dsi->connector); msm_dsi_modeset_init() 240 msm_dsi->connector = NULL; msm_dsi_modeset_init() 244 priv->bridges[priv->num_bridges++] = msm_dsi->bridge; msm_dsi_modeset_init() 245 priv->connectors[priv->num_connectors++] = msm_dsi->connector; msm_dsi_modeset_init() 249 if (msm_dsi) { msm_dsi_modeset_init() 251 if (msm_dsi->bridge) { msm_dsi_modeset_init() 252 msm_dsi_manager_bridge_destroy(msm_dsi->bridge); msm_dsi_modeset_init() 253 msm_dsi->bridge = NULL; msm_dsi_modeset_init() 257 if (msm_dsi->connector && !msm_dsi->external_bridge) msm_dsi_modeset_init() 258 msm_dsi->connector->funcs->destroy(msm_dsi->connector); msm_dsi_modeset_init() 260 msm_dsi->connector = NULL; msm_dsi_modeset_init()
|
H A D | dsi_manager.c | 30 struct msm_dsi *dsi[DSI_MAX]; 43 static inline struct msm_dsi *dsi_mgr_get_dsi(int id) dsi_mgr_get_dsi() 48 static inline struct msm_dsi *dsi_mgr_get_other_dsi(int id) dsi_mgr_get_other_dsi() 77 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); dsi_mgr_host_register() local 78 struct msm_dsi *other_dsi = dsi_mgr_get_other_dsi(id); dsi_mgr_host_register() 79 struct msm_dsi *clk_master_dsi = dsi_mgr_get_dsi(DSI_CLOCK_MASTER); dsi_mgr_host_register() 84 ret = msm_dsi_host_register(msm_dsi->host, true); dsi_mgr_host_register() 88 src_pll = msm_dsi_phy_get_pll(msm_dsi->phy); dsi_mgr_host_register() 89 ret = msm_dsi_host_set_src_pll(msm_dsi->host, src_pll); dsi_mgr_host_register() 93 struct msm_dsi *mdsi = IS_MASTER_DSI_LINK(id) ? dsi_mgr_host_register() 94 msm_dsi : other_dsi; dsi_mgr_host_register() 95 struct msm_dsi *sdsi = IS_MASTER_DSI_LINK(id) ? dsi_mgr_host_register() 96 other_dsi : msm_dsi; dsi_mgr_host_register() 113 ret = msm_dsi_host_set_src_pll(msm_dsi->host, src_pll); dsi_mgr_host_register() 151 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); dsi_mgr_connector_detect() local 152 struct msm_dsi *other_dsi = dsi_mgr_get_other_dsi(id); dsi_mgr_connector_detect() 157 if (!msm_dsi->panel) { dsi_mgr_connector_detect() 158 msm_dsi->panel = msm_dsi_host_get_panel(msm_dsi->host, dsi_mgr_connector_detect() 159 &msm_dsi->device_flags); dsi_mgr_connector_detect() 166 if (!msm_dsi->panel && IS_DUAL_DSI() && dsi_mgr_connector_detect() 168 msm_dsi->panel = msm_dsi_host_get_panel( dsi_mgr_connector_detect() 171 if (msm_dsi->panel && IS_DUAL_DSI()) dsi_mgr_connector_detect() 178 if (msm_dsi->panel && IS_DUAL_DSI() && dsi_mgr_connector_detect() 180 bool cmd_mode = !(msm_dsi->device_flags & dsi_mgr_connector_detect() 195 return msm_dsi->panel ? connector_status_connected : dsi_mgr_connector_detect() 270 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); dsi_mgr_connector_get_modes() local 271 struct drm_panel *panel = msm_dsi->panel; dsi_mgr_connector_get_modes() 309 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); dsi_mgr_connector_mode_valid() local 310 struct drm_encoder *encoder = msm_dsi_get_encoder(msm_dsi); dsi_mgr_connector_mode_valid() 330 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); dsi_mgr_connector_best_encoder() local 333 return msm_dsi_get_encoder(msm_dsi); dsi_mgr_connector_best_encoder() 339 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); dsi_mgr_bridge_pre_enable() local 340 struct msm_dsi *msm_dsi1 = dsi_mgr_get_dsi(DSI_1); dsi_mgr_bridge_pre_enable() 341 struct mipi_dsi_host *host = msm_dsi->host; dsi_mgr_bridge_pre_enable() 342 struct drm_panel *panel = msm_dsi->panel; dsi_mgr_bridge_pre_enable() 347 if (!msm_dsi_device_connected(msm_dsi) || dsi_mgr_bridge_pre_enable() 433 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); dsi_mgr_bridge_post_disable() local 434 struct msm_dsi *msm_dsi1 = dsi_mgr_get_dsi(DSI_1); dsi_mgr_bridge_post_disable() 435 struct mipi_dsi_host *host = msm_dsi->host; dsi_mgr_bridge_post_disable() 436 struct drm_panel *panel = msm_dsi->panel; dsi_mgr_bridge_post_disable() 442 if (!msm_dsi_device_connected(msm_dsi) || dsi_mgr_bridge_post_disable() 487 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); dsi_mgr_bridge_mode_set() local 488 struct msm_dsi *other_dsi = dsi_mgr_get_other_dsi(id); dsi_mgr_bridge_mode_set() 489 struct mipi_dsi_host *host = msm_dsi->host; dsi_mgr_bridge_mode_set() 536 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); msm_dsi_manager_connector_init() local 541 dsi_connector = devm_kzalloc(msm_dsi->dev->dev, msm_dsi_manager_connector_init() 552 ret = drm_connector_init(msm_dsi->dev, connector, msm_dsi_manager_connector_init() 574 msm_dsi->encoders[i]); msm_dsi_manager_connector_init() 588 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); msm_dsi_manager_bridge_init() local 593 dsi_bridge = devm_kzalloc(msm_dsi->dev->dev, msm_dsi_manager_bridge_init() 605 ret = drm_bridge_attach(msm_dsi->dev, bridge); msm_dsi_manager_bridge_init() 620 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); msm_dsi_manager_ext_bridge_init() local 621 struct drm_device *dev = msm_dsi->dev; msm_dsi_manager_ext_bridge_init() 627 int_bridge = msm_dsi->bridge; msm_dsi_manager_ext_bridge_init() 628 ext_bridge = msm_dsi->external_bridge = msm_dsi_manager_ext_bridge_init() 629 msm_dsi_host_get_bridge(msm_dsi->host); msm_dsi_manager_ext_bridge_init() 637 encoder = msm_dsi->encoders[MSM_DSI_VIDEO_ENCODER_ID]; msm_dsi_manager_ext_bridge_init() 673 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); msm_dsi_manager_phy_enable() local 674 struct msm_dsi_phy *phy = msm_dsi->phy; msm_dsi_manager_phy_enable() 676 struct msm_dsi_pll *pll = msm_dsi_phy_get_pll(msm_dsi->phy); msm_dsi_manager_phy_enable() 698 msm_dsi->phy_enabled = true; msm_dsi_manager_phy_enable() 706 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); msm_dsi_manager_phy_disable() local 707 struct msm_dsi *mdsi = dsi_mgr_get_dsi(DSI_CLOCK_MASTER); msm_dsi_manager_phy_disable() 708 struct msm_dsi *sdsi = dsi_mgr_get_dsi(DSI_CLOCK_SLAVE); msm_dsi_manager_phy_disable() 709 struct msm_dsi_phy *phy = msm_dsi->phy; msm_dsi_manager_phy_disable() 710 struct msm_dsi_pll *pll = msm_dsi_phy_get_pll(msm_dsi->phy); msm_dsi_manager_phy_disable() 720 msm_dsi->phy_enabled = false; msm_dsi_manager_phy_disable() 733 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); msm_dsi_manager_cmd_xfer() local 734 struct msm_dsi *msm_dsi0 = dsi_mgr_get_dsi(DSI_0); msm_dsi_manager_cmd_xfer() 735 struct mipi_dsi_host *host = msm_dsi->host; msm_dsi_manager_cmd_xfer() 779 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); msm_dsi_manager_cmd_xfer_trigger() local 780 struct msm_dsi *msm_dsi0 = dsi_mgr_get_dsi(DSI_0); msm_dsi_manager_cmd_xfer_trigger() 781 struct mipi_dsi_host *host = msm_dsi->host; msm_dsi_manager_cmd_xfer_trigger() 794 int msm_dsi_manager_register(struct msm_dsi *msm_dsi) msm_dsi_manager_register() argument 797 int id = msm_dsi->id; msm_dsi_manager_register() 810 msm_dsim->dsi[id] = msm_dsi; msm_dsi_manager_register() 812 ret = dsi_mgr_parse_dual_dsi(msm_dsi->pdev->dev.of_node, id); msm_dsi_manager_register() 832 void msm_dsi_manager_unregister(struct msm_dsi *msm_dsi) msm_dsi_manager_unregister() argument 836 if (msm_dsi->host) msm_dsi_manager_unregister() 837 msm_dsi_host_unregister(msm_dsi->host); msm_dsi_manager_unregister() 838 msm_dsim->dsi[msm_dsi->id] = NULL; msm_dsi_manager_unregister()
|
H A D | dsi.h | 53 struct msm_dsi { struct 93 int msm_dsi_manager_register(struct msm_dsi *msm_dsi); 94 void msm_dsi_manager_unregister(struct msm_dsi *msm_dsi); 97 static inline bool msm_dsi_device_connected(struct msm_dsi *msm_dsi) msm_dsi_device_connected() argument 99 return msm_dsi->panel || msm_dsi->external_bridge; msm_dsi_device_connected() 102 struct drm_encoder *msm_dsi_get_encoder(struct msm_dsi *msm_dsi); 163 int msm_dsi_host_init(struct msm_dsi *msm_dsi);
|
H A D | dsi_host.c | 1389 int msm_dsi_host_init(struct msm_dsi *msm_dsi) msm_dsi_host_init() argument 1392 struct platform_device *pdev = msm_dsi->pdev; msm_dsi_host_init() 1457 msm_dsi->host = &msm_host->base; msm_dsi_host_init() 1458 msm_dsi->id = msm_host->id; msm_dsi_host_init()
|
/linux-4.4.14/drivers/gpu/drm/msm/ |
H A D | msm_drv.h | 100 struct msm_dsi *dsi[2]; 261 struct msm_dsi; 270 int msm_dsi_modeset_init(struct msm_dsi *msm_dsi, struct drm_device *dev, 279 static inline int msm_dsi_modeset_init(struct msm_dsi *msm_dsi, msm_dsi_modeset_init() argument
|
Completed in 128 milliseconds