Lines Matching refs:nv_connector
249 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_conn_reset() local
262 asyc = &nv_connector->properties_state; in nouveau_conn_reset()
289 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_conn_attach_properties() local
295 armc = &nv_connector->properties_state; in nouveau_conn_attach_properties()
398 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_destroy() local
399 nvif_notify_dtor(&nv_connector->hpd); in nouveau_connector_destroy()
400 kfree(nv_connector->edid); in nouveau_connector_destroy()
403 if (nv_connector->aux.transfer) { in nouveau_connector_destroy()
404 drm_dp_cec_unregister_connector(&nv_connector->aux); in nouveau_connector_destroy()
405 kfree(nv_connector->aux.name); in nouveau_connector_destroy()
462 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_of_detect() local
478 nv_connector->edid = in nouveau_connector_of_detect()
492 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_set_encoder() local
497 if (nv_connector->detected_encoder == nv_encoder) in nouveau_connector_set_encoder()
499 nv_connector->detected_encoder = nv_encoder; in nouveau_connector_set_encoder()
525 if (nv_connector->type == DCB_CONNECTOR_DVI_I) { in nouveau_connector_set_encoder()
535 nouveau_connector_set_edid(struct nouveau_connector *nv_connector, in nouveau_connector_set_edid() argument
538 if (nv_connector->edid != edid) { in nouveau_connector_set_edid()
539 struct edid *old_edid = nv_connector->edid; in nouveau_connector_set_edid()
541 drm_connector_update_edid_property(&nv_connector->base, edid); in nouveau_connector_set_edid()
543 nv_connector->edid = edid; in nouveau_connector_set_edid()
552 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_detect() local
572 nouveau_connector_set_edid(nv_connector, NULL); in nouveau_connector_detect()
583 nv_connector->type == DCB_CONNECTOR_LVDS) in nouveau_connector_detect()
588 nouveau_connector_set_edid(nv_connector, new_edid); in nouveau_connector_detect()
589 if (!nv_connector->edid) { in nouveau_connector_detect()
610 if (nv_connector->edid->input & DRM_EDID_INPUT_DIGITAL) in nouveau_connector_detect()
620 drm_dp_cec_set_edid(&nv_connector->aux, nv_connector->edid); in nouveau_connector_detect()
623 nouveau_connector_set_edid(nv_connector, NULL); in nouveau_connector_detect()
651 if (!nv_connector->edid) in nouveau_connector_detect()
652 drm_dp_cec_unset_edid(&nv_connector->aux); in nouveau_connector_detect()
665 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_detect_lvds() local
678 edid = nv_connector->edid; in nouveau_connector_detect_lvds()
730 nouveau_connector_set_edid(nv_connector, edid); in nouveau_connector_detect_lvds()
739 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_force() local
743 if (nv_connector->type == DCB_CONNECTOR_DVI_I) { in nouveau_connector_force()
766 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_set_property() local
767 struct nouveau_encoder *nv_encoder = nv_connector->detected_encoder; in nouveau_connector_set_property()
768 struct nouveau_conn_atom *asyc = &nv_connector->properties_state; in nouveau_connector_set_property()
772 ret = connector->funcs->atomic_set_property(&nv_connector->base, in nouveau_connector_set_property()
782 nv_connector->scaling_mode = asyc->scaler.mode; in nouveau_connector_set_property()
783 nv_connector->dithering_mode = asyc->dither.mode; in nouveau_connector_set_property()
824 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_scaler_modes_add() local
825 struct drm_display_mode *native = nv_connector->native_mode, *m; in nouveau_connector_scaler_modes_add()
858 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_detect_depth() local
859 struct nouveau_encoder *nv_encoder = nv_connector->detected_encoder; in nouveau_connector_detect_depth()
861 struct drm_display_mode *mode = nv_connector->native_mode; in nouveau_connector_detect_depth()
865 if (nv_connector->edid && connector->display_info.bpc) in nouveau_connector_detect_depth()
869 if (nv_connector->type == DCB_CONNECTOR_eDP) { in nouveau_connector_detect_depth()
892 if (nv_connector->edid && in nouveau_connector_detect_depth()
893 nv_connector->type == DCB_CONNECTOR_LVDS_SPWG) in nouveau_connector_detect_depth()
894 duallink = ((u8 *)nv_connector->edid)[121] == 2; in nouveau_connector_detect_depth()
940 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_get_modes() local
941 struct nouveau_encoder *nv_encoder = nv_connector->detected_encoder; in nouveau_connector_get_modes()
947 if (nv_connector->native_mode) { in nouveau_connector_get_modes()
948 drm_mode_destroy(dev, nv_connector->native_mode); in nouveau_connector_get_modes()
949 nv_connector->native_mode = NULL; in nouveau_connector_get_modes()
952 if (nv_connector->edid) in nouveau_connector_get_modes()
953 ret = drm_add_edid_modes(connector, nv_connector->edid); in nouveau_connector_get_modes()
961 nv_connector->native_mode = drm_mode_duplicate(dev, &mode); in nouveau_connector_get_modes()
974 if (!nv_connector->native_mode) in nouveau_connector_get_modes()
975 nv_connector->native_mode = nouveau_conn_native_mode(connector); in nouveau_connector_get_modes()
976 if (ret == 0 && nv_connector->native_mode) { in nouveau_connector_get_modes()
979 mode = drm_mode_duplicate(dev, nv_connector->native_mode); in nouveau_connector_get_modes()
994 if (nv_connector->type == DCB_CONNECTOR_LVDS || in nouveau_connector_get_modes()
995 nv_connector->type == DCB_CONNECTOR_LVDS_SPWG || in nouveau_connector_get_modes()
996 nv_connector->type == DCB_CONNECTOR_eDP) in nouveau_connector_get_modes()
1005 struct nouveau_connector *nv_connector = nouveau_connector(connector); in get_tmds_link_bandwidth() local
1006 struct nouveau_encoder *nv_encoder = nv_connector->detected_encoder; in get_tmds_link_bandwidth()
1008 struct dcb_output *dcb = nv_connector->detected_encoder->dcb; in get_tmds_link_bandwidth()
1013 if (drm_detect_hdmi_monitor(nv_connector->edid)) { in get_tmds_link_bandwidth()
1014 info = &nv_connector->base.display_info; in get_tmds_link_bandwidth()
1053 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_mode_valid() local
1054 struct nouveau_encoder *nv_encoder = nv_connector->detected_encoder; in nouveau_connector_mode_valid()
1060 if (nv_connector->native_mode && in nouveau_connector_mode_valid()
1061 (mode->hdisplay > nv_connector->native_mode->hdisplay || in nouveau_connector_mode_valid()
1062 mode->vdisplay > nv_connector->native_mode->vdisplay)) in nouveau_connector_mode_valid()
1099 struct nouveau_connector *nv_connector = nouveau_connector(connector); in nouveau_connector_best_encoder() local
1101 if (nv_connector->detected_encoder) in nouveau_connector_best_encoder()
1102 return to_drm_encoder(nv_connector->detected_encoder); in nouveau_connector_best_encoder()
1165 struct nouveau_connector *nv_connector = in nouveau_connector_hotplug() local
1166 container_of(notify, typeof(*nv_connector), hpd); in nouveau_connector_hotplug()
1167 struct drm_connector *connector = &nv_connector->base; in nouveau_connector_hotplug()
1174 nouveau_dp_irq(drm, nv_connector); in nouveau_connector_hotplug()
1187 struct nouveau_connector *nv_connector = in nouveau_connector_aux_xfer() local
1188 container_of(obj, typeof(*nv_connector), aux); in nouveau_connector_aux_xfer()
1194 nv_encoder = find_encoder(&nv_connector->base, DCB_OUTPUT_DP); in nouveau_connector_aux_xfer()
1253 struct nouveau_connector *nv_connector = NULL; in nouveau_connector_create() local
1263 nv_connector = nouveau_connector(connector); in nouveau_connector_create()
1264 if (nv_connector->index == index) { in nouveau_connector_create()
1271 nv_connector = kzalloc(sizeof(*nv_connector), GFP_KERNEL); in nouveau_connector_create()
1272 if (!nv_connector) in nouveau_connector_create()
1275 connector = &nv_connector->base; in nouveau_connector_create()
1276 nv_connector->index = index; in nouveau_connector_create()
1279 nv_connector->dcb = olddcb_conn(dev, index); in nouveau_connector_create()
1280 if (nv_connector->dcb) { in nouveau_connector_create()
1281 u32 entry = ROM16(nv_connector->dcb[0]); in nouveau_connector_create()
1283 entry |= (u32)ROM16(nv_connector->dcb[2]) << 16; in nouveau_connector_create()
1285 nv_connector->type = nv_connector->dcb[0]; in nouveau_connector_create()
1286 if (drm_conntype_from_dcb(nv_connector->type) == in nouveau_connector_create()
1289 nv_connector->type); in nouveau_connector_create()
1290 nv_connector->type = DCB_CONNECTOR_NONE; in nouveau_connector_create()
1295 if (nv_connector->type == DCB_CONNECTOR_HDMI_1) in nouveau_connector_create()
1296 nv_connector->type = DCB_CONNECTOR_DVI_I; in nouveau_connector_create()
1301 if (nv_connector->type == DCB_CONNECTOR_HDMI_1) in nouveau_connector_create()
1302 nv_connector->type = DCB_CONNECTOR_DVI_I; in nouveau_connector_create()
1305 nv_connector->type = DCB_CONNECTOR_NONE; in nouveau_connector_create()
1311 if (nv_connector->type == DCB_CONNECTOR_NONE) { in nouveau_connector_create()
1318 if (dcbt->entry[i].connector == nv_connector->index) in nouveau_connector_create()
1324 nv_connector->type = DCB_CONNECTOR_DP; in nouveau_connector_create()
1326 nv_connector->type = DCB_CONNECTOR_eDP; in nouveau_connector_create()
1330 nv_connector->type = DCB_CONNECTOR_DVI_I; in nouveau_connector_create()
1332 nv_connector->type = DCB_CONNECTOR_DVI_D; in nouveau_connector_create()
1335 nv_connector->type = DCB_CONNECTOR_VGA; in nouveau_connector_create()
1338 nv_connector->type = DCB_CONNECTOR_LVDS; in nouveau_connector_create()
1341 nv_connector->type = DCB_CONNECTOR_TV_0; in nouveau_connector_create()
1345 switch ((type = drm_conntype_from_dcb(nv_connector->type))) { in nouveau_connector_create()
1350 kfree(nv_connector); in nouveau_connector_create()
1358 nv_connector->aux.dev = connector->kdev; in nouveau_connector_create()
1359 nv_connector->aux.drm_dev = dev; in nouveau_connector_create()
1360 nv_connector->aux.transfer = nouveau_connector_aux_xfer; in nouveau_connector_create()
1363 nv_connector->aux.name = kstrdup(aux_name, GFP_KERNEL); in nouveau_connector_create()
1364 drm_dp_aux_init(&nv_connector->aux); in nouveau_connector_create()
1368 kfree(nv_connector); in nouveau_connector_create()
1395 switch (nv_connector->type) { in nouveau_connector_create()
1401 nv_connector->scaling_mode = DRM_MODE_SCALE_FULLSCREEN; in nouveau_connector_create()
1404 nv_connector->scaling_mode = DRM_MODE_SCALE_NONE; in nouveau_connector_create()
1407 nv_connector->scaling_mode = DRM_MODE_SCALE_NONE; in nouveau_connector_create()
1412 switch (nv_connector->type) { in nouveau_connector_create()
1419 nv_connector->dithering_mode = DITHERING_MODE_AUTO; in nouveau_connector_create()
1426 drm_dp_cec_register_connector(&nv_connector->aux, connector); in nouveau_connector_create()
1439 &nv_connector->hpd); in nouveau_connector_create()