Lines Matching refs:connector

60 find_encoder(struct drm_connector *connector, int type)  in find_encoder()  argument
62 struct drm_device *dev = connector->dev; in find_encoder()
68 id = connector->encoder_ids[i]; in find_encoder()
100 nouveau_connector_destroy(struct drm_connector *connector) in nouveau_connector_destroy() argument
102 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_destroy()
105 drm_connector_unregister(connector); in nouveau_connector_destroy()
106 drm_connector_cleanup(connector); in nouveau_connector_destroy()
109 kfree(connector); in nouveau_connector_destroy()
113 nouveau_connector_ddc_detect(struct drm_connector *connector) in nouveau_connector_ddc_detect() argument
115 struct drm_device *dev = connector->dev; in nouveau_connector_ddc_detect()
116 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_ddc_detect()
136 int id = connector->encoder_ids[i]; in nouveau_connector_ddc_detect()
166 nouveau_connector_of_detect(struct drm_connector *connector) in nouveau_connector_of_detect() argument
169 struct drm_device *dev = connector->dev; in nouveau_connector_of_detect()
170 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_of_detect()
175 !((nv_encoder = find_encoder(connector, DCB_OUTPUT_TMDS)) || in nouveau_connector_of_detect()
176 (nv_encoder = find_encoder(connector, DCB_OUTPUT_ANALOG)))) in nouveau_connector_of_detect()
196 nouveau_connector_set_encoder(struct drm_connector *connector, in nouveau_connector_set_encoder() argument
199 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_set_encoder()
200 struct nouveau_drm *drm = nouveau_drm(connector->dev); in nouveau_connector_set_encoder()
201 struct drm_device *dev = connector->dev; in nouveau_connector_set_encoder()
208 connector->interlace_allowed = true; in nouveau_connector_set_encoder()
209 connector->doublescan_allowed = true; in nouveau_connector_set_encoder()
213 connector->doublescan_allowed = false; in nouveau_connector_set_encoder()
214 connector->interlace_allowed = false; in nouveau_connector_set_encoder()
216 connector->doublescan_allowed = true; in nouveau_connector_set_encoder()
222 connector->interlace_allowed = false; in nouveau_connector_set_encoder()
224 connector->interlace_allowed = true; in nouveau_connector_set_encoder()
228 drm_object_property_set_value(&connector->base, in nouveau_connector_set_encoder()
237 nouveau_connector_detect(struct drm_connector *connector, bool force) in nouveau_connector_detect() argument
239 struct drm_device *dev = connector->dev; in nouveau_connector_detect()
241 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_detect()
251 drm_mode_connector_update_edid_property(connector, NULL); in nouveau_connector_detect()
256 ret = pm_runtime_get_sync(connector->dev->dev); in nouveau_connector_detect()
260 nv_encoder = nouveau_connector_ddc_detect(connector); in nouveau_connector_detect()
262 nv_connector->edid = drm_get_edid(connector, &i2c->adapter); in nouveau_connector_detect()
263 drm_mode_connector_update_edid_property(connector, in nouveau_connector_detect()
267 connector->name); in nouveau_connector_detect()
278 nv_partner = find_encoder(connector, DCB_OUTPUT_ANALOG); in nouveau_connector_detect()
280 nv_partner = find_encoder(connector, DCB_OUTPUT_TMDS); in nouveau_connector_detect()
291 nv_encoder = find_encoder(connector, type); in nouveau_connector_detect()
294 nouveau_connector_set_encoder(connector, nv_encoder); in nouveau_connector_detect()
299 nv_encoder = nouveau_connector_of_detect(connector); in nouveau_connector_detect()
301 nouveau_connector_set_encoder(connector, nv_encoder); in nouveau_connector_detect()
307 nv_encoder = find_encoder(connector, DCB_OUTPUT_ANALOG); in nouveau_connector_detect()
309 nv_encoder = find_encoder(connector, DCB_OUTPUT_TV); in nouveau_connector_detect()
315 if (helper->detect(encoder, connector) == in nouveau_connector_detect()
317 nouveau_connector_set_encoder(connector, nv_encoder); in nouveau_connector_detect()
326 pm_runtime_mark_last_busy(connector->dev->dev); in nouveau_connector_detect()
327 pm_runtime_put_autosuspend(connector->dev->dev); in nouveau_connector_detect()
333 nouveau_connector_detect_lvds(struct drm_connector *connector, bool force) in nouveau_connector_detect_lvds() argument
335 struct drm_device *dev = connector->dev; in nouveau_connector_detect_lvds()
337 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_detect_lvds()
343 drm_mode_connector_update_edid_property(connector, NULL); in nouveau_connector_detect_lvds()
348 nv_encoder = find_encoder(connector, DCB_OUTPUT_LVDS); in nouveau_connector_detect_lvds()
354 status = nouveau_connector_detect(connector, force); in nouveau_connector_detect_lvds()
369 if ((nv_connector->edid = nouveau_acpi_edid(dev, connector))) { in nouveau_connector_detect_lvds()
407 drm_mode_connector_update_edid_property(connector, nv_connector->edid); in nouveau_connector_detect_lvds()
408 nouveau_connector_set_encoder(connector, nv_encoder); in nouveau_connector_detect_lvds()
413 nouveau_connector_force(struct drm_connector *connector) in nouveau_connector_force() argument
415 struct nouveau_drm *drm = nouveau_drm(connector->dev); in nouveau_connector_force()
416 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_force()
421 if (connector->force == DRM_FORCE_ON_DIGITAL) in nouveau_connector_force()
428 nv_encoder = find_encoder(connector, type); in nouveau_connector_force()
431 connector->name); in nouveau_connector_force()
432 connector->status = connector_status_disconnected; in nouveau_connector_force()
436 nouveau_connector_set_encoder(connector, nv_encoder); in nouveau_connector_force()
440 nouveau_connector_set_property(struct drm_connector *connector, in nouveau_connector_set_property() argument
443 struct nouveau_display *disp = nouveau_display(connector->dev); in nouveau_connector_set_property()
444 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_set_property()
447 struct drm_device *dev = connector->dev; in nouveau_connector_set_property()
452 if (connector->encoder && connector->encoder->crtc) in nouveau_connector_set_property()
453 nv_crtc = nouveau_crtc(connector->encoder->crtc); in nouveau_connector_set_property()
587 encoder, connector, property, value); in nouveau_connector_set_property()
593 nouveau_connector_native_mode(struct drm_connector *connector) in nouveau_connector_native_mode() argument
595 const struct drm_connector_helper_funcs *helper = connector->helper_private; in nouveau_connector_native_mode()
596 struct nouveau_drm *drm = nouveau_drm(connector->dev); in nouveau_connector_native_mode()
597 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_native_mode()
598 struct drm_device *dev = connector->dev; in nouveau_connector_native_mode()
604 if (helper->mode_valid(connector, mode) != MODE_OK || in nouveau_connector_native_mode()
662 nouveau_connector_scaler_modes_add(struct drm_connector *connector) in nouveau_connector_scaler_modes_add() argument
664 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_scaler_modes_add()
666 struct drm_device *dev = connector->dev; in nouveau_connector_scaler_modes_add()
684 drm_mode_probed_add(connector, m); in nouveau_connector_scaler_modes_add()
695 nouveau_connector_detect_depth(struct drm_connector *connector) in nouveau_connector_detect_depth() argument
697 struct nouveau_drm *drm = nouveau_drm(connector->dev); in nouveau_connector_detect_depth()
698 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_detect_depth()
705 if (nv_connector->edid && connector->display_info.bpc) in nouveau_connector_detect_depth()
710 connector->display_info.bpc = 6; in nouveau_connector_detect_depth()
716 connector->display_info.bpc = 8; in nouveau_connector_detect_depth()
720 connector->display_info.bpc = 6; in nouveau_connector_detect_depth()
725 connector->display_info.bpc = 8; in nouveau_connector_detect_depth()
740 connector->display_info.bpc = 8; in nouveau_connector_detect_depth()
744 nouveau_connector_get_modes(struct drm_connector *connector) in nouveau_connector_get_modes() argument
746 struct drm_device *dev = connector->dev; in nouveau_connector_get_modes()
748 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_get_modes()
761 ret = drm_add_edid_modes(connector, nv_connector->edid); in nouveau_connector_get_modes()
775 if (connector->connector_type != DRM_MODE_CONNECTOR_LVDS) in nouveau_connector_get_modes()
776 nouveau_connector_detect_depth(connector); in nouveau_connector_get_modes()
784 nouveau_connector_native_mode(connector); in nouveau_connector_get_modes()
789 drm_mode_probed_add(connector, mode); in nouveau_connector_get_modes()
797 if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS) in nouveau_connector_get_modes()
798 nouveau_connector_detect_depth(connector); in nouveau_connector_get_modes()
801 ret = get_slave_funcs(encoder)->get_modes(encoder, connector); in nouveau_connector_get_modes()
806 ret += nouveau_connector_scaler_modes_add(connector); in nouveau_connector_get_modes()
812 get_tmds_link_bandwidth(struct drm_connector *connector) in get_tmds_link_bandwidth() argument
814 struct nouveau_connector *nv_connector = nouveau_connector(connector); in get_tmds_link_bandwidth()
815 struct nouveau_drm *drm = nouveau_drm(connector->dev); in get_tmds_link_bandwidth()
830 nouveau_connector_mode_valid(struct drm_connector *connector, in nouveau_connector_mode_valid() argument
833 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_mode_valid()
850 max_clock = get_tmds_link_bandwidth(connector); in nouveau_connector_mode_valid()
864 clock = clock * (connector->display_info.bpc * 3) / 10; in nouveau_connector_mode_valid()
881 nouveau_connector_best_encoder(struct drm_connector *connector) in nouveau_connector_best_encoder() argument
883 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_best_encoder()
923 nouveau_connector_dp_dpms(struct drm_connector *connector, int mode) in nouveau_connector_dp_dpms() argument
927 if (connector->encoder) in nouveau_connector_dp_dpms()
928 nv_encoder = nouveau_encoder(connector->encoder); in nouveau_connector_dp_dpms()
941 drm_helper_connector_dpms(connector, mode); in nouveau_connector_dp_dpms()
961 struct drm_connector *connector = &nv_connector->base; in nouveau_connector_hotplug() local
962 struct nouveau_drm *drm = nouveau_drm(connector->dev); in nouveau_connector_hotplug()
964 const char *name = connector->name; in nouveau_connector_hotplug()
974 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); in nouveau_connector_hotplug()
976 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); in nouveau_connector_hotplug()
979 drm_helper_hpd_irq_event(connector->dev); in nouveau_connector_hotplug()
1052 struct drm_connector *connector; in nouveau_connector_create() local
1056 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in nouveau_connector_create()
1057 nv_connector = nouveau_connector(connector); in nouveau_connector_create()
1059 return connector; in nouveau_connector_create()
1066 connector = &nv_connector->base; in nouveau_connector_create()
1109 if (dcbt->entry[i].connector == nv_connector->index) in nouveau_connector_create()
1166 connector->interlace_allowed = false; in nouveau_connector_create()
1167 connector->doublescan_allowed = false; in nouveau_connector_create()
1169 drm_connector_init(dev, connector, funcs, type); in nouveau_connector_create()
1170 drm_connector_helper_add(connector, &nouveau_connector_helper_funcs); in nouveau_connector_create()
1174 drm_object_attach_property(&connector->base, dev->mode_config.dvi_i_subconnector_property, 0); in nouveau_connector_create()
1182 drm_object_attach_property(&connector->base, in nouveau_connector_create()
1185 drm_object_attach_property(&connector->base, in nouveau_connector_create()
1188 drm_object_attach_property(&connector->base, in nouveau_connector_create()
1195 drm_object_attach_property(&connector->base, in nouveau_connector_create()
1199 drm_object_attach_property(&connector->base, in nouveau_connector_create()
1231 drm_object_attach_property(&connector->base, dev->mode_config. in nouveau_connector_create()
1246 drm_object_attach_property(&connector->base, in nouveau_connector_create()
1253 drm_object_attach_property(&connector->base, in nouveau_connector_create()
1272 connector->polled = DRM_CONNECTOR_POLL_CONNECT; in nouveau_connector_create()
1274 connector->polled = DRM_CONNECTOR_POLL_HPD; in nouveau_connector_create()
1276 drm_connector_register(connector); in nouveau_connector_create()
1277 return connector; in nouveau_connector_create()