Lines Matching refs:connector
76 static inline int dsi_mgr_connector_get_id(struct drm_connector *connector) in dsi_mgr_connector_get_id() argument
78 struct dsi_connector *dsi_connector = to_dsi_connector(connector); in dsi_mgr_connector_get_id()
89 struct drm_connector *connector, bool force) in dsi_mgr_connector_detect() argument
91 int id = dsi_mgr_connector_get_id(connector); in dsi_mgr_connector_detect()
94 struct msm_drm_private *priv = connector->dev->dev_private; in dsi_mgr_connector_detect()
113 drm_object_attach_property(&connector->base, in dsi_mgr_connector_detect()
114 connector->dev->mode_config.tile_property, 0); in dsi_mgr_connector_detect()
140 static void dsi_mgr_connector_destroy(struct drm_connector *connector) in dsi_mgr_connector_destroy() argument
143 drm_connector_unregister(connector); in dsi_mgr_connector_destroy()
144 drm_connector_cleanup(connector); in dsi_mgr_connector_destroy()
147 static void dsi_dual_connector_fix_modes(struct drm_connector *connector) in dsi_dual_connector_fix_modes() argument
152 list_for_each_entry_safe(mode, m, &connector->probed_modes, head) { in dsi_dual_connector_fix_modes()
163 struct drm_connector *connector, int id) in dsi_dual_connector_tile_init() argument
169 if (connector->tile_group) { in dsi_dual_connector_tile_init()
175 mode = list_first_entry(&connector->probed_modes, in dsi_dual_connector_tile_init()
181 connector->tile_group = drm_mode_get_tile_group( in dsi_dual_connector_tile_init()
182 connector->dev, topo_id); in dsi_dual_connector_tile_init()
183 if (!connector->tile_group) in dsi_dual_connector_tile_init()
184 connector->tile_group = drm_mode_create_tile_group( in dsi_dual_connector_tile_init()
185 connector->dev, topo_id); in dsi_dual_connector_tile_init()
186 if (!connector->tile_group) { in dsi_dual_connector_tile_init()
191 connector->has_tile = true; in dsi_dual_connector_tile_init()
192 connector->tile_is_single_monitor = true; in dsi_dual_connector_tile_init()
195 connector->tile_h_size = mode->hdisplay; in dsi_dual_connector_tile_init()
196 connector->tile_v_size = mode->vdisplay; in dsi_dual_connector_tile_init()
199 connector->num_h_tile = 2; in dsi_dual_connector_tile_init()
200 connector->num_v_tile = 1; in dsi_dual_connector_tile_init()
202 connector->tile_v_loc = 0; in dsi_dual_connector_tile_init()
203 connector->tile_h_loc = (id == DSI_RIGHT) ? 1 : 0; in dsi_dual_connector_tile_init()
208 static int dsi_mgr_connector_get_modes(struct drm_connector *connector) in dsi_mgr_connector_get_modes() argument
210 int id = dsi_mgr_connector_get_id(connector); in dsi_mgr_connector_get_modes()
223 drm_panel_attach(panel, connector); in dsi_mgr_connector_get_modes()
231 dsi_dual_connector_fix_modes(connector); in dsi_mgr_connector_get_modes()
232 ret = dsi_dual_connector_tile_init(connector, id); in dsi_mgr_connector_get_modes()
235 ret = drm_mode_connector_set_tile_property(connector); in dsi_mgr_connector_get_modes()
246 static int dsi_mgr_connector_mode_valid(struct drm_connector *connector, in dsi_mgr_connector_mode_valid() argument
249 int id = dsi_mgr_connector_get_id(connector); in dsi_mgr_connector_mode_valid()
252 struct msm_drm_private *priv = connector->dev->dev_private; in dsi_mgr_connector_mode_valid()
268 dsi_mgr_connector_best_encoder(struct drm_connector *connector) in dsi_mgr_connector_best_encoder() argument
270 int id = dsi_mgr_connector_get_id(connector); in dsi_mgr_connector_best_encoder()
463 struct drm_connector *connector = NULL; in msm_dsi_manager_connector_init() local
476 connector = &dsi_connector->base; in msm_dsi_manager_connector_init()
478 ret = drm_connector_init(msm_dsi->dev, connector, in msm_dsi_manager_connector_init()
483 drm_connector_helper_add(connector, &dsi_mgr_conn_helper_funcs); in msm_dsi_manager_connector_init()
488 connector->polled = DRM_CONNECTOR_POLL_HPD; in msm_dsi_manager_connector_init()
491 connector->interlace_allowed = 0; in msm_dsi_manager_connector_init()
492 connector->doublescan_allowed = 0; in msm_dsi_manager_connector_init()
494 ret = drm_connector_register(connector); in msm_dsi_manager_connector_init()
499 drm_mode_connector_attach_encoder(connector, in msm_dsi_manager_connector_init()
502 return connector; in msm_dsi_manager_connector_init()
505 if (connector) in msm_dsi_manager_connector_init()
506 dsi_mgr_connector_destroy(connector); in msm_dsi_manager_connector_init()