Lines Matching full:encoder
87 struct drm_encoder *encoder = &amdgpu_encoder->base; in amdgpu_atombios_encoder_set_backlight_level() local
108 amdgpu_atombios_encoder_setup_dig_transmitter(encoder, in amdgpu_atombios_encoder_set_backlight_level()
111 amdgpu_atombios_encoder_setup_dig_transmitter(encoder, in amdgpu_atombios_encoder_set_backlight_level()
113 amdgpu_atombios_encoder_setup_dig_transmitter(encoder, in amdgpu_atombios_encoder_set_backlight_level()
141 struct amdgpu_encoder *amdgpu_encoder = pdata->encoder; in amdgpu_atombios_encoder_update_backlight_status()
153 struct amdgpu_encoder *amdgpu_encoder = pdata->encoder; in amdgpu_atombios_encoder_get_backlight_brightness()
212 pdata->encoder = amdgpu_encoder; in amdgpu_atombios_encoder_init_backlight()
263 bool amdgpu_atombios_encoder_is_digital(struct drm_encoder *encoder) in amdgpu_atombios_encoder_is_digital() argument
265 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_is_digital()
278 bool amdgpu_atombios_encoder_mode_fixup(struct drm_encoder *encoder, in amdgpu_atombios_encoder_mode_fixup() argument
282 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_mode_fixup()
284 /* set the active encoder to connector routing */ in amdgpu_atombios_encoder_mode_fixup()
285 amdgpu_encoder_set_active_device(encoder); in amdgpu_atombios_encoder_mode_fixup()
299 amdgpu_panel_mode_fixup(encoder, adjusted_mode); in amdgpu_atombios_encoder_mode_fixup()
301 amdgpu_panel_mode_fixup(encoder, adjusted_mode); in amdgpu_atombios_encoder_mode_fixup()
304 (amdgpu_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE)) { in amdgpu_atombios_encoder_mode_fixup()
305 struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder); in amdgpu_atombios_encoder_mode_fixup()
313 amdgpu_atombios_encoder_setup_dac(struct drm_encoder *encoder, int action) in amdgpu_atombios_encoder_setup_dac() argument
315 struct drm_device *dev = encoder->dev; in amdgpu_atombios_encoder_setup_dac()
317 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_setup_dac()
342 static u8 amdgpu_atombios_encoder_get_bpc(struct drm_encoder *encoder) in amdgpu_atombios_encoder_get_bpc() argument
346 if (encoder->crtc) { in amdgpu_atombios_encoder_get_bpc()
347 struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(encoder->crtc); in amdgpu_atombios_encoder_get_bpc()
376 amdgpu_atombios_encoder_setup_dvo(struct drm_encoder *encoder, int action) in amdgpu_atombios_encoder_setup_dvo() argument
378 struct drm_device *dev = encoder->dev; in amdgpu_atombios_encoder_setup_dvo()
380 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_setup_dvo()
397 if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dvo()
409 if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dvo()
423 args.dvo_v4.ucBitPerColor = amdgpu_atombios_encoder_get_bpc(encoder); in amdgpu_atombios_encoder_setup_dvo()
438 int amdgpu_atombios_encoder_get_encoder_mode(struct drm_encoder *encoder) in amdgpu_atombios_encoder_get_encoder_mode() argument
440 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_get_encoder_mode()
446 if (amdgpu_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE) in amdgpu_atombios_encoder_get_encoder_mode()
454 connector = amdgpu_get_connector_for_encoder(encoder); in amdgpu_atombios_encoder_get_encoder_mode()
456 * the connectors tied to the encoder. in amdgpu_atombios_encoder_get_encoder_mode()
459 connector = amdgpu_get_connector_for_encoder_init(encoder); in amdgpu_atombios_encoder_get_encoder_mode()
528 * DIG Encoder/Transmitter Setup
533 * - 6 DIG encoder blocks.
543 * crtc -> dig encoder -> UNIPHY/LVTMA (1 or 2 links)
560 amdgpu_atombios_encoder_setup_dig_encoder(struct drm_encoder *encoder, in amdgpu_atombios_encoder_setup_dig_encoder() argument
563 struct drm_device *dev = encoder->dev; in amdgpu_atombios_encoder_setup_dig_encoder()
565 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_setup_dig_encoder()
567 struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder); in amdgpu_atombios_encoder_setup_dig_encoder()
585 /* no dig encoder assigned */ in amdgpu_atombios_encoder_setup_dig_encoder()
603 args.v1.ucEncoderMode = amdgpu_atombios_encoder_get_encoder_mode(encoder); in amdgpu_atombios_encoder_setup_dig_encoder()
607 else if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dig_encoder()
638 args.v3.ucEncoderMode = amdgpu_atombios_encoder_get_encoder_mode(encoder); in amdgpu_atombios_encoder_setup_dig_encoder()
642 else if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dig_encoder()
650 args.v3.ucBitPerColor = amdgpu_atombios_encoder_get_bpc(encoder); in amdgpu_atombios_encoder_setup_dig_encoder()
658 args.v4.ucEncoderMode = amdgpu_atombios_encoder_get_encoder_mode(encoder); in amdgpu_atombios_encoder_setup_dig_encoder()
662 else if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dig_encoder()
678 args.v4.ucBitPerColor = amdgpu_atombios_encoder_get_bpc(encoder); in amdgpu_atombios_encoder_setup_dig_encoder()
695 amdgpu_atombios_encoder_get_encoder_mode(encoder); in amdgpu_atombios_encoder_setup_dig_encoder()
698 else if (amdgpu_dig_monitor_is_duallink(encoder, in amdgpu_atombios_encoder_setup_dig_encoder()
706 amdgpu_atombios_encoder_get_bpc(encoder); in amdgpu_atombios_encoder_setup_dig_encoder()
749 amdgpu_atombios_encoder_setup_dig_transmitter(struct drm_encoder *encoder, int action, in amdgpu_atombios_encoder_setup_dig_transmitter() argument
752 struct drm_device *dev = encoder->dev; in amdgpu_atombios_encoder_setup_dig_transmitter()
754 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_setup_dig_transmitter()
769 connector = amdgpu_get_connector_for_encoder_init(encoder); in amdgpu_atombios_encoder_setup_dig_transmitter()
770 /* just needed to avoid bailing in the encoder check. the encoder in amdgpu_atombios_encoder_setup_dig_transmitter()
775 connector = amdgpu_get_connector_for_encoder(encoder); in amdgpu_atombios_encoder_setup_dig_transmitter()
789 if (encoder->crtc) { in amdgpu_atombios_encoder_setup_dig_transmitter()
790 struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(encoder->crtc); in amdgpu_atombios_encoder_setup_dig_transmitter()
794 /* no dig encoder assigned */ in amdgpu_atombios_encoder_setup_dig_transmitter()
798 if (ENCODER_MODE_IS_DP(amdgpu_atombios_encoder_get_encoder_mode(encoder))) in amdgpu_atombios_encoder_setup_dig_transmitter()
834 else if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dig_transmitter()
857 if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dig_transmitter()
871 else if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dig_transmitter()
899 if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dig_transmitter()
913 else if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dig_transmitter()
921 else if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dig_transmitter()
958 if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dig_transmitter()
972 else if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dig_transmitter()
980 else if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dig_transmitter()
1020 if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dig_transmitter()
1056 else if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dig_transmitter()
1061 args.v5.ucDigMode = amdgpu_atombios_encoder_get_encoder_mode(encoder); in amdgpu_atombios_encoder_setup_dig_transmitter()
1113 else if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_dig_transmitter()
1121 args.v6.ucDigMode = amdgpu_atombios_encoder_get_encoder_mode(encoder); in amdgpu_atombios_encoder_setup_dig_transmitter()
1190 amdgpu_atombios_encoder_setup_external_encoder(struct drm_encoder *encoder, in amdgpu_atombios_encoder_setup_external_encoder() argument
1194 struct drm_device *dev = encoder->dev; in amdgpu_atombios_encoder_setup_external_encoder()
1196 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_setup_external_encoder()
1208 connector = amdgpu_get_connector_for_encoder_init(encoder); in amdgpu_atombios_encoder_setup_external_encoder()
1210 connector = amdgpu_get_connector_for_encoder(encoder); in amdgpu_atombios_encoder_setup_external_encoder()
1239 amdgpu_atombios_encoder_get_encoder_mode(encoder); in amdgpu_atombios_encoder_setup_external_encoder()
1245 } else if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_external_encoder()
1257 amdgpu_atombios_encoder_get_encoder_mode(encoder); in amdgpu_atombios_encoder_setup_external_encoder()
1265 } else if (amdgpu_dig_monitor_is_duallink(encoder, amdgpu_encoder->pixel_clock)) in amdgpu_atombios_encoder_setup_external_encoder()
1280 args.v3.sExtEncoder.ucBitPerColor = amdgpu_atombios_encoder_get_bpc(encoder); in amdgpu_atombios_encoder_setup_external_encoder()
1295 amdgpu_atombios_encoder_setup_dig(struct drm_encoder *encoder, int action) in amdgpu_atombios_encoder_setup_dig() argument
1297 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_setup_dig()
1298 struct drm_encoder *ext_encoder = amdgpu_get_external_encoder(encoder); in amdgpu_atombios_encoder_setup_dig()
1300 struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder); in amdgpu_atombios_encoder_setup_dig()
1313 dig->panel_mode = amdgpu_atombios_dp_get_panel_mode(encoder, connector); in amdgpu_atombios_encoder_setup_dig()
1315 /* setup and enable the encoder */ in amdgpu_atombios_encoder_setup_dig()
1316 amdgpu_atombios_encoder_setup_dig_encoder(encoder, ATOM_ENCODER_CMD_SETUP, 0); in amdgpu_atombios_encoder_setup_dig()
1317 amdgpu_atombios_encoder_setup_dig_encoder(encoder, in amdgpu_atombios_encoder_setup_dig()
1321 amdgpu_atombios_encoder_setup_external_encoder(encoder, ext_encoder, in amdgpu_atombios_encoder_setup_dig()
1323 if (ENCODER_MODE_IS_DP(amdgpu_atombios_encoder_get_encoder_mode(encoder)) && in amdgpu_atombios_encoder_setup_dig()
1332 amdgpu_atombios_encoder_setup_dig_transmitter(encoder, in amdgpu_atombios_encoder_setup_dig()
1335 if (ENCODER_MODE_IS_DP(amdgpu_atombios_encoder_get_encoder_mode(encoder)) && in amdgpu_atombios_encoder_setup_dig()
1338 amdgpu_atombios_dp_link_train(encoder, connector); in amdgpu_atombios_encoder_setup_dig()
1339 amdgpu_atombios_encoder_setup_dig_encoder(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0); in amdgpu_atombios_encoder_setup_dig()
1344 amdgpu_atombios_encoder_setup_external_encoder(encoder, ext_encoder, ATOM_ENABLE); in amdgpu_atombios_encoder_setup_dig()
1346 if (ENCODER_MODE_IS_DP(amdgpu_atombios_encoder_get_encoder_mode(encoder)) && in amdgpu_atombios_encoder_setup_dig()
1348 amdgpu_atombios_encoder_setup_dig_encoder(encoder, in amdgpu_atombios_encoder_setup_dig()
1351 amdgpu_atombios_encoder_setup_external_encoder(encoder, ext_encoder, ATOM_DISABLE); in amdgpu_atombios_encoder_setup_dig()
1353 amdgpu_atombios_encoder_setup_dig_transmitter(encoder, in amdgpu_atombios_encoder_setup_dig()
1356 if (ENCODER_MODE_IS_DP(amdgpu_atombios_encoder_get_encoder_mode(encoder)) && in amdgpu_atombios_encoder_setup_dig()
1360 amdgpu_atombios_encoder_setup_dig_transmitter(encoder, in amdgpu_atombios_encoder_setup_dig()
1362 if (ENCODER_MODE_IS_DP(amdgpu_atombios_encoder_get_encoder_mode(encoder)) && in amdgpu_atombios_encoder_setup_dig()
1374 amdgpu_atombios_encoder_dpms(struct drm_encoder *encoder, int mode) in amdgpu_atombios_encoder_dpms() argument
1376 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_dpms()
1378 DRM_DEBUG_KMS("encoder dpms %d to mode %d, devices %08x, active_devices %08x\n", in amdgpu_atombios_encoder_dpms()
1388 amdgpu_atombios_encoder_setup_dig(encoder, ATOM_ENABLE); in amdgpu_atombios_encoder_dpms()
1393 amdgpu_atombios_encoder_setup_dig(encoder, ATOM_DISABLE); in amdgpu_atombios_encoder_dpms()
1400 amdgpu_atombios_encoder_setup_dvo(encoder, ATOM_ENABLE); in amdgpu_atombios_encoder_dpms()
1405 amdgpu_atombios_encoder_setup_dvo(encoder, ATOM_DISABLE); in amdgpu_atombios_encoder_dpms()
1412 amdgpu_atombios_encoder_setup_dac(encoder, ATOM_ENABLE); in amdgpu_atombios_encoder_dpms()
1417 amdgpu_atombios_encoder_setup_dac(encoder, ATOM_DISABLE); in amdgpu_atombios_encoder_dpms()
1433 amdgpu_atombios_encoder_set_crtc_source(struct drm_encoder *encoder) in amdgpu_atombios_encoder_set_crtc_source() argument
1435 struct drm_device *dev = encoder->dev; in amdgpu_atombios_encoder_set_crtc_source()
1437 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_set_crtc_source()
1438 struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(encoder->crtc); in amdgpu_atombios_encoder_set_crtc_source()
1494 if (amdgpu_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE) { in amdgpu_atombios_encoder_set_crtc_source()
1495 struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder); in amdgpu_atombios_encoder_set_crtc_source()
1502 args.v2.ucEncodeMode = amdgpu_atombios_encoder_get_encoder_mode(encoder); in amdgpu_atombios_encoder_set_crtc_source()
1506 args.v2.ucEncodeMode = amdgpu_atombios_encoder_get_encoder_mode(encoder); in amdgpu_atombios_encoder_set_crtc_source()
1562 if (amdgpu_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE) { in amdgpu_atombios_encoder_set_crtc_source()
1563 struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder); in amdgpu_atombios_encoder_set_crtc_source()
1570 args.v2.ucEncodeMode = amdgpu_atombios_encoder_get_encoder_mode(encoder); in amdgpu_atombios_encoder_set_crtc_source()
1574 args.v2.ucEncodeMode = amdgpu_atombios_encoder_get_encoder_mode(encoder); in amdgpu_atombios_encoder_set_crtc_source()
1576 args.v3.ucDstBpc = amdgpu_atombios_encoder_get_bpc(encoder); in amdgpu_atombios_encoder_set_crtc_source()
1644 struct drm_encoder *encoder; in amdgpu_atombios_encoder_init_dig() local
1646 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in amdgpu_atombios_encoder_init_dig()
1647 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_init_dig()
1648 struct drm_encoder *ext_encoder = amdgpu_get_external_encoder(encoder); in amdgpu_atombios_encoder_init_dig()
1655 amdgpu_atombios_encoder_setup_dig_transmitter(encoder, ATOM_TRANSMITTER_ACTION_INIT, in amdgpu_atombios_encoder_init_dig()
1661 amdgpu_atombios_encoder_setup_external_encoder(encoder, ext_encoder, in amdgpu_atombios_encoder_init_dig()
1667 amdgpu_atombios_encoder_dac_load_detect(struct drm_encoder *encoder, in amdgpu_atombios_encoder_dac_load_detect() argument
1670 struct drm_device *dev = encoder->dev; in amdgpu_atombios_encoder_dac_load_detect()
1672 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_dac_load_detect()
1717 amdgpu_atombios_encoder_dac_detect(struct drm_encoder *encoder, in amdgpu_atombios_encoder_dac_detect() argument
1720 struct drm_device *dev = encoder->dev; in amdgpu_atombios_encoder_dac_detect()
1722 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_dac_detect()
1726 if (!amdgpu_atombios_encoder_dac_load_detect(encoder, connector)) { in amdgpu_atombios_encoder_dac_detect()
1756 amdgpu_atombios_encoder_dig_detect(struct drm_encoder *encoder, in amdgpu_atombios_encoder_dig_detect() argument
1759 struct drm_device *dev = encoder->dev; in amdgpu_atombios_encoder_dig_detect()
1761 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_dig_detect()
1763 struct drm_encoder *ext_encoder = amdgpu_get_external_encoder(encoder); in amdgpu_atombios_encoder_dig_detect()
1773 amdgpu_atombios_encoder_setup_external_encoder(encoder, ext_encoder, in amdgpu_atombios_encoder_dig_detect()
1801 amdgpu_atombios_encoder_setup_ext_encoder_ddc(struct drm_encoder *encoder) in amdgpu_atombios_encoder_setup_ext_encoder_ddc() argument
1803 struct drm_encoder *ext_encoder = amdgpu_get_external_encoder(encoder); in amdgpu_atombios_encoder_setup_ext_encoder_ddc()
1807 amdgpu_atombios_encoder_setup_external_encoder(encoder, ext_encoder, in amdgpu_atombios_encoder_setup_ext_encoder_ddc()
1814 struct drm_encoder *encoder, in amdgpu_atombios_encoder_set_bios_scratch_regs() argument
1821 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in amdgpu_atombios_encoder_set_bios_scratch_regs()
1966 amdgpu_atombios_encoder_get_lcd_info(struct amdgpu_encoder *encoder) in amdgpu_atombios_encoder_get_lcd_info() argument
1968 struct drm_device *dev = encoder->base.dev; in amdgpu_atombios_encoder_get_lcd_info()
1976 int encoder_enum = (encoder->encoder_enum & ENUM_ID_MASK) >> ENUM_ID_SHIFT; in amdgpu_atombios_encoder_get_lcd_info()
2030 encoder->native_mode = lvds->native_mode; in amdgpu_atombios_encoder_get_lcd_info()