Lines Matching refs:connector
135 static inline int dsi_mgr_connector_get_id(struct drm_connector *connector) in dsi_mgr_connector_get_id() argument
137 struct dsi_connector *dsi_connector = to_dsi_connector(connector); in dsi_mgr_connector_get_id()
148 struct drm_connector *connector, bool force) in dsi_mgr_connector_detect() argument
150 int id = dsi_mgr_connector_get_id(connector); in dsi_mgr_connector_detect()
153 struct msm_drm_private *priv = connector->dev->dev_private; in dsi_mgr_connector_detect()
172 drm_object_attach_property(&connector->base, in dsi_mgr_connector_detect()
173 connector->dev->mode_config.tile_property, 0); in dsi_mgr_connector_detect()
199 static void dsi_mgr_connector_destroy(struct drm_connector *connector) in dsi_mgr_connector_destroy() argument
202 drm_connector_unregister(connector); in dsi_mgr_connector_destroy()
203 drm_connector_cleanup(connector); in dsi_mgr_connector_destroy()
206 static void dsi_dual_connector_fix_modes(struct drm_connector *connector) in dsi_dual_connector_fix_modes() argument
211 list_for_each_entry_safe(mode, m, &connector->probed_modes, head) { in dsi_dual_connector_fix_modes()
222 struct drm_connector *connector, int id) in dsi_dual_connector_tile_init() argument
228 if (connector->tile_group) { in dsi_dual_connector_tile_init()
234 mode = list_first_entry(&connector->probed_modes, in dsi_dual_connector_tile_init()
240 connector->tile_group = drm_mode_get_tile_group( in dsi_dual_connector_tile_init()
241 connector->dev, topo_id); in dsi_dual_connector_tile_init()
242 if (!connector->tile_group) in dsi_dual_connector_tile_init()
243 connector->tile_group = drm_mode_create_tile_group( in dsi_dual_connector_tile_init()
244 connector->dev, topo_id); in dsi_dual_connector_tile_init()
245 if (!connector->tile_group) { in dsi_dual_connector_tile_init()
250 connector->has_tile = true; in dsi_dual_connector_tile_init()
251 connector->tile_is_single_monitor = true; in dsi_dual_connector_tile_init()
254 connector->tile_h_size = mode->hdisplay; in dsi_dual_connector_tile_init()
255 connector->tile_v_size = mode->vdisplay; in dsi_dual_connector_tile_init()
258 connector->num_h_tile = 2; in dsi_dual_connector_tile_init()
259 connector->num_v_tile = 1; in dsi_dual_connector_tile_init()
261 connector->tile_v_loc = 0; in dsi_dual_connector_tile_init()
262 connector->tile_h_loc = (id == DSI_RIGHT) ? 1 : 0; in dsi_dual_connector_tile_init()
267 static int dsi_mgr_connector_get_modes(struct drm_connector *connector) in dsi_mgr_connector_get_modes() argument
269 int id = dsi_mgr_connector_get_id(connector); in dsi_mgr_connector_get_modes()
282 drm_panel_attach(panel, connector); in dsi_mgr_connector_get_modes()
290 dsi_dual_connector_fix_modes(connector); in dsi_mgr_connector_get_modes()
291 ret = dsi_dual_connector_tile_init(connector, id); in dsi_mgr_connector_get_modes()
294 ret = drm_mode_connector_set_tile_property(connector); in dsi_mgr_connector_get_modes()
305 static int dsi_mgr_connector_mode_valid(struct drm_connector *connector, in dsi_mgr_connector_mode_valid() argument
308 int id = dsi_mgr_connector_get_id(connector); in dsi_mgr_connector_mode_valid()
311 struct msm_drm_private *priv = connector->dev->dev_private; in dsi_mgr_connector_mode_valid()
327 dsi_mgr_connector_best_encoder(struct drm_connector *connector) in dsi_mgr_connector_best_encoder() argument
329 int id = dsi_mgr_connector_get_id(connector); in dsi_mgr_connector_best_encoder()
537 struct drm_connector *connector = NULL; in msm_dsi_manager_connector_init() local
550 connector = &dsi_connector->base; in msm_dsi_manager_connector_init()
552 ret = drm_connector_init(msm_dsi->dev, connector, in msm_dsi_manager_connector_init()
557 drm_connector_helper_add(connector, &dsi_mgr_conn_helper_funcs); in msm_dsi_manager_connector_init()
562 connector->polled = DRM_CONNECTOR_POLL_HPD; in msm_dsi_manager_connector_init()
565 connector->interlace_allowed = 0; in msm_dsi_manager_connector_init()
566 connector->doublescan_allowed = 0; in msm_dsi_manager_connector_init()
568 ret = drm_connector_register(connector); in msm_dsi_manager_connector_init()
573 drm_mode_connector_attach_encoder(connector, in msm_dsi_manager_connector_init()
576 return connector; in msm_dsi_manager_connector_init()
579 if (connector) in msm_dsi_manager_connector_init()
580 dsi_mgr_connector_destroy(connector); in msm_dsi_manager_connector_init()
624 struct drm_connector *connector; in msm_dsi_manager_ext_bridge_init() local
653 list_for_each_entry(connector, connector_list, head) { in msm_dsi_manager_ext_bridge_init()
657 if (connector->encoder_ids[i] == encoder->base.id) in msm_dsi_manager_ext_bridge_init()
658 return connector; in msm_dsi_manager_ext_bridge_init()