Lines Matching full:encoder
99 struct drm_encoder *encoder = &radeon_encoder->base; in atombios_set_backlight_level() local
135 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_LCD_BLOFF, 0, 0); in atombios_set_backlight_level()
137 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_BL_BRIGHTNESS_CONTROL, 0, 0); in atombios_set_backlight_level()
138 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_LCD_BLON, 0, 0); in atombios_set_backlight_level()
165 struct radeon_encoder *radeon_encoder = pdata->encoder; in radeon_atom_backlight_update_status()
175 struct radeon_encoder *radeon_encoder = pdata->encoder; in radeon_atom_backlight_get_brightness()
238 pdata->encoder = radeon_encoder; in radeon_atom_backlight_init()
295 static bool radeon_atom_mode_fixup(struct drm_encoder *encoder, in radeon_atom_mode_fixup() argument
299 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_mode_fixup()
300 struct drm_device *dev = encoder->dev; in radeon_atom_mode_fixup()
303 /* set the active encoder to connector routing */ in radeon_atom_mode_fixup()
304 radeon_encoder_set_active_device(encoder); in radeon_atom_mode_fixup()
318 radeon_panel_mode_fixup(encoder, adjusted_mode); in radeon_atom_mode_fixup()
330 radeon_panel_mode_fixup(encoder, adjusted_mode); in radeon_atom_mode_fixup()
335 (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE))) { in radeon_atom_mode_fixup()
336 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in radeon_atom_mode_fixup()
344 atombios_dac_setup(struct drm_encoder *encoder, int action) in atombios_dac_setup() argument
346 struct drm_device *dev = encoder->dev; in atombios_dac_setup()
348 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_dac_setup()
396 atombios_tv_setup(struct drm_encoder *encoder, int action) in atombios_tv_setup() argument
398 struct drm_device *dev = encoder->dev; in atombios_tv_setup()
400 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_tv_setup()
451 static u8 radeon_atom_get_bpc(struct drm_encoder *encoder) in radeon_atom_get_bpc() argument
455 if (encoder->crtc) { in radeon_atom_get_bpc()
456 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in radeon_atom_get_bpc()
485 atombios_dvo_setup(struct drm_encoder *encoder, int action) in atombios_dvo_setup() argument
487 struct drm_device *dev = encoder->dev; in atombios_dvo_setup()
489 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_dvo_setup()
510 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dvo_setup()
522 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dvo_setup()
536 args.dvo_v4.ucBitPerColor = radeon_atom_get_bpc(encoder); in atombios_dvo_setup()
557 atombios_digital_setup(struct drm_encoder *encoder, int action) in atombios_digital_setup() argument
559 struct drm_device *dev = encoder->dev; in atombios_digital_setup()
561 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_digital_setup()
571 if (atombios_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_HDMI) in atombios_digital_setup()
613 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_digital_setup()
652 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_digital_setup()
670 atombios_get_encoder_mode(struct drm_encoder *encoder) in atombios_get_encoder_mode() argument
672 struct drm_device *dev = encoder->dev; in atombios_get_encoder_mode()
674 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_get_encoder_mode()
680 if (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE) in atombios_get_encoder_mode()
688 connector = radeon_get_connector_for_encoder(encoder); in atombios_get_encoder_mode()
690 * the connectors tied to the encoder. in atombios_get_encoder_mode()
693 connector = radeon_get_connector_for_encoder_init(encoder); in atombios_get_encoder_mode()
776 * DIG Encoder/Transmitter Setup
781 * - 2 DIG encoder blocks.
788 * - 2 DIG encoder blocks.
794 * - 6 DIG encoder blocks.
806 * - 2 DIG encoder blocks.
814 * crtc -> dig encoder -> UNIPHY/LVTMA (1 or 2 links)
830 atombios_dig_encoder_setup2(struct drm_encoder *encoder, int action, int panel_mode, int enc_overri… in atombios_dig_encoder_setup2() argument
832 struct drm_device *dev = encoder->dev; in atombios_dig_encoder_setup2()
834 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_dig_encoder_setup2()
836 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in atombios_dig_encoder_setup2()
854 /* no dig encoder assigned */ in atombios_dig_encoder_setup2()
881 args.v1.ucEncoderMode = atombios_get_encoder_mode(encoder); in atombios_dig_encoder_setup2()
885 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_encoder_setup2()
918 args.v3.ucEncoderMode = atombios_get_encoder_mode(encoder); in atombios_dig_encoder_setup2()
922 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_encoder_setup2()
933 args.v3.ucBitPerColor = radeon_atom_get_bpc(encoder); in atombios_dig_encoder_setup2()
941 args.v4.ucEncoderMode = atombios_get_encoder_mode(encoder); in atombios_dig_encoder_setup2()
945 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_encoder_setup2()
965 args.v4.ucBitPerColor = radeon_atom_get_bpc(encoder); in atombios_dig_encoder_setup2()
986 atombios_dig_encoder_setup(struct drm_encoder *encoder, int action, int panel_mode) in atombios_dig_encoder_setup() argument
988 atombios_dig_encoder_setup2(encoder, action, panel_mode, -1); in atombios_dig_encoder_setup()
1000 atombios_dig_transmitter_setup2(struct drm_encoder *encoder, int action, uint8_t lane_num, uint8_t … in atombios_dig_transmitter_setup2() argument
1002 struct drm_device *dev = encoder->dev; in atombios_dig_transmitter_setup2()
1004 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_dig_transmitter_setup2()
1020 connector = radeon_get_connector_for_encoder_init(encoder); in atombios_dig_transmitter_setup2()
1021 /* just needed to avoid bailing in the encoder check. the encoder in atombios_dig_transmitter_setup2()
1026 connector = radeon_get_connector_for_encoder(encoder); in atombios_dig_transmitter_setup2()
1041 if (encoder->crtc) { in atombios_dig_transmitter_setup2()
1042 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in atombios_dig_transmitter_setup2()
1046 /* no dig encoder assigned */ in atombios_dig_transmitter_setup2()
1050 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder))) in atombios_dig_transmitter_setup2()
1086 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1102 !radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) { in atombios_dig_transmitter_setup2()
1129 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1143 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1171 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1185 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1193 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1230 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1244 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1252 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1292 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1328 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1333 args.v5.ucDigMode = atombios_get_encoder_mode(encoder); in atombios_dig_transmitter_setup2()
1367 atombios_dig_transmitter_setup(struct drm_encoder *encoder, int action, uint8_t lane_num, uint8_t l… in atombios_dig_transmitter_setup() argument
1369 atombios_dig_transmitter_setup2(encoder, action, lane_num, lane_set, -1); in atombios_dig_transmitter_setup()
1422 atombios_external_encoder_setup(struct drm_encoder *encoder, in atombios_external_encoder_setup() argument
1426 struct drm_device *dev = encoder->dev; in atombios_external_encoder_setup()
1428 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_external_encoder_setup()
1440 connector = radeon_get_connector_for_encoder_init(encoder); in atombios_external_encoder_setup()
1442 connector = radeon_get_connector_for_encoder(encoder); in atombios_external_encoder_setup()
1470 args.v1.sDigEncoder.ucEncoderMode = atombios_get_encoder_mode(encoder); in atombios_external_encoder_setup()
1476 } else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_external_encoder_setup()
1487 args.v3.sExtEncoder.ucEncoderMode = atombios_get_encoder_mode(encoder); in atombios_external_encoder_setup()
1495 } else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_external_encoder_setup()
1510 args.v3.sExtEncoder.ucBitPerColor = radeon_atom_get_bpc(encoder); in atombios_external_encoder_setup()
1525 atombios_yuv_setup(struct drm_encoder *encoder, bool enable) in atombios_yuv_setup() argument
1527 struct drm_device *dev = encoder->dev; in atombios_yuv_setup()
1529 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_yuv_setup()
1530 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in atombios_yuv_setup()
1562 radeon_atom_encoder_dpms_avivo(struct drm_encoder *encoder, int mode) in radeon_atom_encoder_dpms_avivo() argument
1564 struct drm_device *dev = encoder->dev; in radeon_atom_encoder_dpms_avivo()
1566 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_dpms_avivo()
1649 radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode) in radeon_atom_encoder_dpms_dig() argument
1651 struct drm_device *dev = encoder->dev; in radeon_atom_encoder_dpms_dig()
1653 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_dpms_dig()
1654 struct drm_encoder *ext_encoder = radeon_get_external_encoder(encoder); in radeon_atom_encoder_dpms_dig()
1656 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in radeon_atom_encoder_dpms_dig()
1677 dig->panel_mode = radeon_dp_get_panel_mode(encoder, connector); in radeon_atom_encoder_dpms_dig()
1679 /* setup and enable the encoder */ in radeon_atom_encoder_dpms_dig()
1680 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_SETUP, 0); in radeon_atom_encoder_dpms_dig()
1681 atombios_dig_encoder_setup(encoder, in radeon_atom_encoder_dpms_dig()
1686 atombios_external_encoder_setup(encoder, ext_encoder, in radeon_atom_encoder_dpms_dig()
1690 /* setup and enable the encoder */ in radeon_atom_encoder_dpms_dig()
1691 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_SETUP, 0); in radeon_atom_encoder_dpms_dig()
1693 /* setup and enable the encoder and transmitter */ in radeon_atom_encoder_dpms_dig()
1694 atombios_dig_encoder_setup(encoder, ATOM_ENABLE, 0); in radeon_atom_encoder_dpms_dig()
1695 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_SETUP, 0, 0); in radeon_atom_encoder_dpms_dig()
1697 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) { in radeon_atom_encoder_dpms_dig()
1705 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE, 0, 0); in radeon_atom_encoder_dpms_dig()
1706 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) { in radeon_atom_encoder_dpms_dig()
1708 radeon_dp_link_train(encoder, connector); in radeon_atom_encoder_dpms_dig()
1710 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0); in radeon_atom_encoder_dpms_dig()
1716 atombios_dig_transmitter_setup(encoder, in radeon_atom_encoder_dpms_dig()
1720 atombios_external_encoder_setup(encoder, ext_encoder, ATOM_ENABLE); in radeon_atom_encoder_dpms_dig()
1727 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) in radeon_atom_encoder_dpms_dig()
1728 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_OFF, 0); in radeon_atom_encoder_dpms_dig()
1731 atombios_external_encoder_setup(encoder, ext_encoder, ATOM_DISABLE); in radeon_atom_encoder_dpms_dig()
1733 atombios_dig_transmitter_setup(encoder, in radeon_atom_encoder_dpms_dig()
1736 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && in radeon_atom_encoder_dpms_dig()
1741 atombios_dig_transmitter_setup(encoder, in radeon_atom_encoder_dpms_dig()
1744 /* disable the encoder and transmitter */ in radeon_atom_encoder_dpms_dig()
1745 atombios_dig_transmitter_setup(encoder, in radeon_atom_encoder_dpms_dig()
1747 atombios_dig_encoder_setup(encoder, ATOM_DISABLE, 0); in radeon_atom_encoder_dpms_dig()
1749 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) { in radeon_atom_encoder_dpms_dig()
1763 radeon_atom_encoder_dpms(struct drm_encoder *encoder, int mode) in radeon_atom_encoder_dpms() argument
1765 struct drm_device *dev = encoder->dev; in radeon_atom_encoder_dpms()
1767 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_dpms()
1768 int encoder_mode = atombios_get_encoder_mode(encoder); in radeon_atom_encoder_dpms()
1770 DRM_DEBUG_KMS("encoder dpms %d to mode %d, devices %08x, active_devices %08x\n", in radeon_atom_encoder_dpms()
1777 radeon_audio_dpms(encoder, mode); in radeon_atom_encoder_dpms()
1788 radeon_atom_encoder_dpms_avivo(encoder, mode); in radeon_atom_encoder_dpms()
1795 radeon_atom_encoder_dpms_dig(encoder, mode); in radeon_atom_encoder_dpms()
1801 atombios_dvo_setup(encoder, ATOM_ENABLE); in radeon_atom_encoder_dpms()
1806 atombios_dvo_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_dpms()
1810 radeon_atom_encoder_dpms_dig(encoder, mode); in radeon_atom_encoder_dpms()
1812 radeon_atom_encoder_dpms_avivo(encoder, mode); in radeon_atom_encoder_dpms()
1819 atombios_dac_setup(encoder, ATOM_ENABLE); in radeon_atom_encoder_dpms()
1824 atombios_dac_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_dpms()
1828 radeon_atom_encoder_dpms_avivo(encoder, mode); in radeon_atom_encoder_dpms()
1834 radeon_atombios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); in radeon_atom_encoder_dpms()
1844 atombios_set_encoder_crtc_source(struct drm_encoder *encoder) in atombios_set_encoder_crtc_source() argument
1846 struct drm_device *dev = encoder->dev; in atombios_set_encoder_crtc_source()
1848 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_set_encoder_crtc_source()
1849 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in atombios_set_encoder_crtc_source()
1912 if (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE) { in atombios_set_encoder_crtc_source()
1913 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in atombios_set_encoder_crtc_source()
1920 args.v2.ucEncodeMode = atombios_get_encoder_mode(encoder); in atombios_set_encoder_crtc_source()
1924 args.v2.ucEncodeMode = atombios_get_encoder_mode(encoder); in atombios_set_encoder_crtc_source()
1988 radeon_atombios_encoder_crtc_scratch_regs(encoder, radeon_crtc->crtc_id); in atombios_set_encoder_crtc_source()
1992 atombios_apply_encoder_quirks(struct drm_encoder *encoder, in atombios_apply_encoder_quirks() argument
1995 struct drm_device *dev = encoder->dev; in atombios_apply_encoder_quirks()
1997 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_apply_encoder_quirks()
1998 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in atombios_apply_encoder_quirks()
2046 int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx) in radeon_atom_pick_dig_encoder() argument
2048 struct drm_device *dev = encoder->dev; in radeon_atom_pick_dig_encoder()
2050 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in radeon_atom_pick_dig_encoder()
2051 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_pick_dig_encoder()
2125 * On DCE32 any encoder can drive any block so usually just use crtc id, in radeon_atom_pick_dig_encoder()
2143 if (encoder == test_encoder) in radeon_atom_pick_dig_encoder()
2158 DRM_ERROR("LVDS required digital encoder 2 but it was in use - stealing\n"); in radeon_atom_pick_dig_encoder()
2167 DRM_ERROR("Got encoder index incorrect - returning 0\n"); in radeon_atom_pick_dig_encoder()
2171 DRM_ERROR("chosen encoder in use %d\n", enc_idx); in radeon_atom_pick_dig_encoder()
2182 struct drm_encoder *encoder; in radeon_atom_encoder_init() local
2184 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in radeon_atom_encoder_init()
2185 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_init()
2186 struct drm_encoder *ext_encoder = radeon_get_external_encoder(encoder); in radeon_atom_encoder_init()
2194 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_INIT, 0, 0); in radeon_atom_encoder_init()
2201 atombios_external_encoder_setup(encoder, ext_encoder, in radeon_atom_encoder_init()
2207 radeon_atom_encoder_mode_set(struct drm_encoder *encoder, in radeon_atom_encoder_mode_set() argument
2211 struct drm_device *dev = encoder->dev; in radeon_atom_encoder_mode_set()
2213 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_mode_set()
2214 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in radeon_atom_encoder_mode_set()
2220 radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); in radeon_atom_encoder_mode_set()
2224 atombios_yuv_setup(encoder, true); in radeon_atom_encoder_mode_set()
2226 atombios_yuv_setup(encoder, false); in radeon_atom_encoder_mode_set()
2234 atombios_digital_setup(encoder, PANEL_ENCODER_ACTION_ENABLE); in radeon_atom_encoder_mode_set()
2246 atombios_dvo_setup(encoder, ATOM_ENABLE); in radeon_atom_encoder_mode_set()
2252 atombios_dac_setup(encoder, ATOM_ENABLE); in radeon_atom_encoder_mode_set()
2255 atombios_tv_setup(encoder, ATOM_ENABLE); in radeon_atom_encoder_mode_set()
2257 atombios_tv_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_mode_set()
2262 atombios_apply_encoder_quirks(encoder, adjusted_mode); in radeon_atom_encoder_mode_set()
2264 encoder_mode = atombios_get_encoder_mode(encoder); in radeon_atom_encoder_mode_set()
2268 radeon_audio_mode_set(encoder, adjusted_mode); in radeon_atom_encoder_mode_set()
2272 atombios_dac_load_detect(struct drm_encoder *encoder, struct drm_connector *connector) in atombios_dac_load_detect() argument
2274 struct drm_device *dev = encoder->dev; in atombios_dac_load_detect()
2276 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_dac_load_detect()
2321 radeon_atom_dac_detect(struct drm_encoder *encoder, struct drm_connector *connector) in radeon_atom_dac_detect() argument
2323 struct drm_device *dev = encoder->dev; in radeon_atom_dac_detect()
2325 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_dac_detect()
2329 if (!atombios_dac_load_detect(encoder, connector)) { in radeon_atom_dac_detect()
2362 radeon_atom_dig_detect(struct drm_encoder *encoder, struct drm_connector *connector) in radeon_atom_dig_detect() argument
2364 struct drm_device *dev = encoder->dev; in radeon_atom_dig_detect()
2366 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_dig_detect()
2368 struct drm_encoder *ext_encoder = radeon_get_external_encoder(encoder); in radeon_atom_dig_detect()
2381 atombios_external_encoder_setup(encoder, ext_encoder, in radeon_atom_dig_detect()
2409 radeon_atom_ext_encoder_setup_ddc(struct drm_encoder *encoder) in radeon_atom_ext_encoder_setup_ddc() argument
2411 struct drm_encoder *ext_encoder = radeon_get_external_encoder(encoder); in radeon_atom_ext_encoder_setup_ddc()
2415 atombios_external_encoder_setup(encoder, ext_encoder, in radeon_atom_ext_encoder_setup_ddc()
2420 static void radeon_atom_encoder_prepare(struct drm_encoder *encoder) in radeon_atom_encoder_prepare() argument
2422 struct radeon_device *rdev = encoder->dev->dev_private; in radeon_atom_encoder_prepare()
2423 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_prepare()
2424 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in radeon_atom_encoder_prepare()
2428 (radeon_encoder_get_dp_bridge_encoder_id(encoder) != in radeon_atom_encoder_prepare()
2434 dig->dig_encoder = radeon_atom_pick_dig_encoder(encoder, -1); in radeon_atom_encoder_prepare()
2445 radeon_atom_output_lock(encoder, true); in radeon_atom_encoder_prepare()
2461 atombios_set_encoder_crtc_source(encoder); in radeon_atom_encoder_prepare()
2464 dce8_program_fmt(encoder); in radeon_atom_encoder_prepare()
2466 dce4_program_fmt(encoder); in radeon_atom_encoder_prepare()
2468 dce3_program_fmt(encoder); in radeon_atom_encoder_prepare()
2470 avivo_program_fmt(encoder); in radeon_atom_encoder_prepare()
2473 static void radeon_atom_encoder_commit(struct drm_encoder *encoder) in radeon_atom_encoder_commit() argument
2476 radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_ON); in radeon_atom_encoder_commit()
2477 radeon_atom_output_lock(encoder, false); in radeon_atom_encoder_commit()
2480 static void radeon_atom_encoder_disable(struct drm_encoder *encoder) in radeon_atom_encoder_disable() argument
2482 struct drm_device *dev = encoder->dev; in radeon_atom_encoder_disable()
2484 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_disable()
2489 * the encoder if it's in use by another connector in radeon_atom_encoder_disable()
2503 radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); in radeon_atom_encoder_disable()
2510 atombios_digital_setup(encoder, PANEL_ENCODER_ACTION_DISABLE); in radeon_atom_encoder_disable()
2522 atombios_dvo_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_disable()
2528 atombios_dac_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_disable()
2530 atombios_tv_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_disable()
2535 if (radeon_encoder_is_digital(encoder)) { in radeon_atom_encoder_disable()
2536 if (atombios_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_HDMI) { in radeon_atom_encoder_disable()
2538 radeon_hdmi_enable(rdev, encoder, false); in radeon_atom_encoder_disable()
2540 if (atombios_get_encoder_mode(encoder) != ATOM_ENCODER_MODE_DP_MST) { in radeon_atom_encoder_disable()
2551 static void radeon_atom_ext_prepare(struct drm_encoder *encoder) in radeon_atom_ext_prepare() argument
2556 static void radeon_atom_ext_commit(struct drm_encoder *encoder) in radeon_atom_ext_commit() argument
2562 radeon_atom_ext_mode_set(struct drm_encoder *encoder, in radeon_atom_ext_mode_set() argument
2569 static void radeon_atom_ext_disable(struct drm_encoder *encoder) in radeon_atom_ext_disable() argument
2575 radeon_atom_ext_dpms(struct drm_encoder *encoder, int mode) in radeon_atom_ext_dpms() argument
2608 void radeon_enc_destroy(struct drm_encoder *encoder) in radeon_enc_destroy() argument
2610 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_enc_destroy()
2614 drm_encoder_cleanup(encoder); in radeon_enc_destroy()
2664 struct drm_encoder *encoder; in radeon_add_atom_encoder() local
2668 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in radeon_add_atom_encoder()
2669 radeon_encoder = to_radeon_encoder(encoder); in radeon_add_atom_encoder()
2682 encoder = &radeon_encoder->base; in radeon_add_atom_encoder()
2685 encoder->possible_crtcs = 0x1; in radeon_add_atom_encoder()
2689 encoder->possible_crtcs = 0x3; in radeon_add_atom_encoder()
2692 encoder->possible_crtcs = 0xf; in radeon_add_atom_encoder()
2695 encoder->possible_crtcs = 0x3f; in radeon_add_atom_encoder()
2716 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2720 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2724 drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs); in radeon_add_atom_encoder()
2727 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2730 drm_encoder_helper_add(encoder, &radeon_atom_dac_helper_funcs); in radeon_add_atom_encoder()
2735 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2738 drm_encoder_helper_add(encoder, &radeon_atom_dac_helper_funcs); in radeon_add_atom_encoder()
2750 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2754 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2758 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2762 drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs); in radeon_add_atom_encoder()
2776 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2779 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2782 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2784 drm_encoder_helper_add(encoder, &radeon_atom_ext_helper_funcs); in radeon_add_atom_encoder()