Lines Matching full:encoder
95 struct drm_encoder *encoder = &radeon_encoder->base; in atombios_set_backlight_level() local
131 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_LCD_BLOFF, 0, 0); in atombios_set_backlight_level()
133 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_BL_BRIGHTNESS_CONTROL, 0, 0); in atombios_set_backlight_level()
134 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_LCD_BLON, 0, 0); in atombios_set_backlight_level()
163 struct radeon_encoder *radeon_encoder = pdata->encoder; in radeon_atom_backlight_update_status()
173 struct radeon_encoder *radeon_encoder = pdata->encoder; in radeon_atom_backlight_get_brightness()
230 pdata->encoder = radeon_encoder; in radeon_atom_backlight_init()
289 void radeon_atom_backlight_init(struct radeon_encoder *encoder) in radeon_atom_backlight_init() argument
293 static void radeon_atom_backlight_exit(struct radeon_encoder *encoder) in radeon_atom_backlight_exit() argument
303 static bool radeon_atom_mode_fixup(struct drm_encoder *encoder, in radeon_atom_mode_fixup() argument
307 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_mode_fixup()
308 struct drm_device *dev = encoder->dev; in radeon_atom_mode_fixup()
311 /* set the active encoder to connector routing */ in radeon_atom_mode_fixup()
312 radeon_encoder_set_active_device(encoder); in radeon_atom_mode_fixup()
326 radeon_panel_mode_fixup(encoder, adjusted_mode); in radeon_atom_mode_fixup()
338 radeon_panel_mode_fixup(encoder, adjusted_mode); in radeon_atom_mode_fixup()
343 (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE))) { in radeon_atom_mode_fixup()
344 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in radeon_atom_mode_fixup()
352 atombios_dac_setup(struct drm_encoder *encoder, int action) in atombios_dac_setup() argument
354 struct drm_device *dev = encoder->dev; in atombios_dac_setup()
356 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_dac_setup()
404 atombios_tv_setup(struct drm_encoder *encoder, int action) in atombios_tv_setup() argument
406 struct drm_device *dev = encoder->dev; in atombios_tv_setup()
408 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_tv_setup()
459 static u8 radeon_atom_get_bpc(struct drm_encoder *encoder) in radeon_atom_get_bpc() argument
463 if (encoder->crtc) { in radeon_atom_get_bpc()
464 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in radeon_atom_get_bpc()
493 atombios_dvo_setup(struct drm_encoder *encoder, int action) in atombios_dvo_setup() argument
495 struct drm_device *dev = encoder->dev; in atombios_dvo_setup()
497 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_dvo_setup()
518 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dvo_setup()
530 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dvo_setup()
544 args.dvo_v4.ucBitPerColor = radeon_atom_get_bpc(encoder); in atombios_dvo_setup()
565 atombios_digital_setup(struct drm_encoder *encoder, int action) in atombios_digital_setup() argument
567 struct drm_device *dev = encoder->dev; in atombios_digital_setup()
569 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_digital_setup()
579 if (atombios_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_HDMI) in atombios_digital_setup()
621 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_digital_setup()
660 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_digital_setup()
678 atombios_get_encoder_mode(struct drm_encoder *encoder) in atombios_get_encoder_mode() argument
680 struct drm_device *dev = encoder->dev; in atombios_get_encoder_mode()
682 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_get_encoder_mode()
688 if (radeon_encoder_is_digital(encoder)) { in atombios_get_encoder_mode()
696 if (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE) in atombios_get_encoder_mode()
704 connector = radeon_get_connector_for_encoder(encoder); in atombios_get_encoder_mode()
706 * the connectors tied to the encoder. in atombios_get_encoder_mode()
709 connector = radeon_get_connector_for_encoder_init(encoder); in atombios_get_encoder_mode()
792 * DIG Encoder/Transmitter Setup
797 * - 2 DIG encoder blocks.
804 * - 2 DIG encoder blocks.
810 * - 6 DIG encoder blocks.
822 * - 2 DIG encoder blocks.
830 * crtc -> dig encoder -> UNIPHY/LVTMA (1 or 2 links)
846 atombios_dig_encoder_setup2(struct drm_encoder *encoder, int action, int panel_mode, int enc_overri… in atombios_dig_encoder_setup2() argument
848 struct drm_device *dev = encoder->dev; in atombios_dig_encoder_setup2()
850 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_dig_encoder_setup2()
852 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in atombios_dig_encoder_setup2()
870 /* no dig encoder assigned */ in atombios_dig_encoder_setup2()
897 args.v1.ucEncoderMode = atombios_get_encoder_mode(encoder); in atombios_dig_encoder_setup2()
901 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_encoder_setup2()
934 args.v3.ucEncoderMode = atombios_get_encoder_mode(encoder); in atombios_dig_encoder_setup2()
938 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_encoder_setup2()
949 args.v3.ucBitPerColor = radeon_atom_get_bpc(encoder); in atombios_dig_encoder_setup2()
957 args.v4.ucEncoderMode = atombios_get_encoder_mode(encoder); in atombios_dig_encoder_setup2()
961 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_encoder_setup2()
981 args.v4.ucBitPerColor = radeon_atom_get_bpc(encoder); in atombios_dig_encoder_setup2()
1002 atombios_dig_encoder_setup(struct drm_encoder *encoder, int action, int panel_mode) in atombios_dig_encoder_setup() argument
1004 atombios_dig_encoder_setup2(encoder, action, panel_mode, -1); in atombios_dig_encoder_setup()
1016 atombios_dig_transmitter_setup2(struct drm_encoder *encoder, int action, uint8_t lane_num, uint8_t … in atombios_dig_transmitter_setup2() argument
1018 struct drm_device *dev = encoder->dev; in atombios_dig_transmitter_setup2()
1020 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_dig_transmitter_setup2()
1036 connector = radeon_get_connector_for_encoder_init(encoder); in atombios_dig_transmitter_setup2()
1037 /* just needed to avoid bailing in the encoder check. the encoder in atombios_dig_transmitter_setup2()
1042 connector = radeon_get_connector_for_encoder(encoder); in atombios_dig_transmitter_setup2()
1057 if (encoder->crtc) { in atombios_dig_transmitter_setup2()
1058 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in atombios_dig_transmitter_setup2()
1062 /* no dig encoder assigned */ in atombios_dig_transmitter_setup2()
1066 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder))) in atombios_dig_transmitter_setup2()
1102 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1118 !radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) { in atombios_dig_transmitter_setup2()
1145 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1159 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1187 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1201 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1209 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1246 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1260 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1268 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1308 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1344 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1349 args.v5.ucDigMode = atombios_get_encoder_mode(encoder); in atombios_dig_transmitter_setup2()
1383 atombios_dig_transmitter_setup(struct drm_encoder *encoder, int action, uint8_t lane_num, uint8_t l… in atombios_dig_transmitter_setup() argument
1385 atombios_dig_transmitter_setup2(encoder, action, lane_num, lane_set, -1); in atombios_dig_transmitter_setup()
1438 atombios_external_encoder_setup(struct drm_encoder *encoder, in atombios_external_encoder_setup() argument
1442 struct drm_device *dev = encoder->dev; in atombios_external_encoder_setup()
1444 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_external_encoder_setup()
1456 connector = radeon_get_connector_for_encoder_init(encoder); in atombios_external_encoder_setup()
1458 connector = radeon_get_connector_for_encoder(encoder); in atombios_external_encoder_setup()
1486 args.v1.sDigEncoder.ucEncoderMode = atombios_get_encoder_mode(encoder); in atombios_external_encoder_setup()
1492 } else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_external_encoder_setup()
1503 args.v3.sExtEncoder.ucEncoderMode = atombios_get_encoder_mode(encoder); in atombios_external_encoder_setup()
1511 } else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_external_encoder_setup()
1526 args.v3.sExtEncoder.ucBitPerColor = radeon_atom_get_bpc(encoder); in atombios_external_encoder_setup()
1541 atombios_yuv_setup(struct drm_encoder *encoder, bool enable) in atombios_yuv_setup() argument
1543 struct drm_device *dev = encoder->dev; in atombios_yuv_setup()
1545 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_yuv_setup()
1546 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in atombios_yuv_setup()
1578 radeon_atom_encoder_dpms_avivo(struct drm_encoder *encoder, int mode) in radeon_atom_encoder_dpms_avivo() argument
1580 struct drm_device *dev = encoder->dev; in radeon_atom_encoder_dpms_avivo()
1582 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_dpms_avivo()
1665 radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode) in radeon_atom_encoder_dpms_dig() argument
1667 struct drm_device *dev = encoder->dev; in radeon_atom_encoder_dpms_dig()
1669 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_dpms_dig()
1670 struct drm_encoder *ext_encoder = radeon_get_external_encoder(encoder); in radeon_atom_encoder_dpms_dig()
1672 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in radeon_atom_encoder_dpms_dig()
1693 dig->panel_mode = radeon_dp_get_panel_mode(encoder, connector); in radeon_atom_encoder_dpms_dig()
1695 /* setup and enable the encoder */ in radeon_atom_encoder_dpms_dig()
1696 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_SETUP, 0); in radeon_atom_encoder_dpms_dig()
1697 atombios_dig_encoder_setup(encoder, in radeon_atom_encoder_dpms_dig()
1702 atombios_external_encoder_setup(encoder, ext_encoder, in radeon_atom_encoder_dpms_dig()
1706 /* setup and enable the encoder */ in radeon_atom_encoder_dpms_dig()
1707 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_SETUP, 0); in radeon_atom_encoder_dpms_dig()
1709 /* setup and enable the encoder and transmitter */ in radeon_atom_encoder_dpms_dig()
1710 atombios_dig_encoder_setup(encoder, ATOM_ENABLE, 0); in radeon_atom_encoder_dpms_dig()
1711 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_SETUP, 0, 0); in radeon_atom_encoder_dpms_dig()
1713 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) { in radeon_atom_encoder_dpms_dig()
1721 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE, 0, 0); in radeon_atom_encoder_dpms_dig()
1722 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) { in radeon_atom_encoder_dpms_dig()
1724 radeon_dp_link_train(encoder, connector); in radeon_atom_encoder_dpms_dig()
1726 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0); in radeon_atom_encoder_dpms_dig()
1732 atombios_dig_transmitter_setup(encoder, in radeon_atom_encoder_dpms_dig()
1736 atombios_external_encoder_setup(encoder, ext_encoder, ATOM_ENABLE); in radeon_atom_encoder_dpms_dig()
1747 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) in radeon_atom_encoder_dpms_dig()
1748 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_OFF, 0); in radeon_atom_encoder_dpms_dig()
1751 atombios_external_encoder_setup(encoder, ext_encoder, ATOM_DISABLE); in radeon_atom_encoder_dpms_dig()
1753 atombios_dig_transmitter_setup(encoder, in radeon_atom_encoder_dpms_dig()
1756 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && in radeon_atom_encoder_dpms_dig()
1761 atombios_dig_transmitter_setup(encoder, in radeon_atom_encoder_dpms_dig()
1764 /* disable the encoder and transmitter */ in radeon_atom_encoder_dpms_dig()
1765 atombios_dig_transmitter_setup(encoder, in radeon_atom_encoder_dpms_dig()
1767 atombios_dig_encoder_setup(encoder, ATOM_DISABLE, 0); in radeon_atom_encoder_dpms_dig()
1769 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) { in radeon_atom_encoder_dpms_dig()
1783 radeon_atom_encoder_dpms(struct drm_encoder *encoder, int mode) in radeon_atom_encoder_dpms() argument
1785 struct drm_device *dev = encoder->dev; in radeon_atom_encoder_dpms()
1787 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_dpms()
1788 int encoder_mode = atombios_get_encoder_mode(encoder); in radeon_atom_encoder_dpms()
1790 DRM_DEBUG_KMS("encoder dpms %d to mode %d, devices %08x, active_devices %08x\n", in radeon_atom_encoder_dpms()
1797 radeon_audio_dpms(encoder, mode); in radeon_atom_encoder_dpms()
1808 radeon_atom_encoder_dpms_avivo(encoder, mode); in radeon_atom_encoder_dpms()
1815 radeon_atom_encoder_dpms_dig(encoder, mode); in radeon_atom_encoder_dpms()
1821 atombios_dvo_setup(encoder, ATOM_ENABLE); in radeon_atom_encoder_dpms()
1826 atombios_dvo_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_dpms()
1830 radeon_atom_encoder_dpms_dig(encoder, mode); in radeon_atom_encoder_dpms()
1832 radeon_atom_encoder_dpms_avivo(encoder, mode); in radeon_atom_encoder_dpms()
1839 atombios_dac_setup(encoder, ATOM_ENABLE); in radeon_atom_encoder_dpms()
1844 atombios_dac_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_dpms()
1848 radeon_atom_encoder_dpms_avivo(encoder, mode); in radeon_atom_encoder_dpms()
1854 radeon_atombios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); in radeon_atom_encoder_dpms()
1864 atombios_set_encoder_crtc_source(struct drm_encoder *encoder) in atombios_set_encoder_crtc_source() argument
1866 struct drm_device *dev = encoder->dev; in atombios_set_encoder_crtc_source()
1868 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_set_encoder_crtc_source()
1869 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in atombios_set_encoder_crtc_source()
1932 if (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE) { in atombios_set_encoder_crtc_source()
1933 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in atombios_set_encoder_crtc_source()
1940 args.v2.ucEncodeMode = atombios_get_encoder_mode(encoder); in atombios_set_encoder_crtc_source()
1944 args.v2.ucEncodeMode = atombios_get_encoder_mode(encoder); in atombios_set_encoder_crtc_source()
2008 radeon_atombios_encoder_crtc_scratch_regs(encoder, radeon_crtc->crtc_id); in atombios_set_encoder_crtc_source()
2012 atombios_set_mst_encoder_crtc_source(struct drm_encoder *encoder, int fe) in atombios_set_mst_encoder_crtc_source() argument
2014 struct drm_device *dev = encoder->dev; in atombios_set_mst_encoder_crtc_source()
2016 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in atombios_set_mst_encoder_crtc_source()
2059 atombios_apply_encoder_quirks(struct drm_encoder *encoder, in atombios_apply_encoder_quirks() argument
2062 struct drm_device *dev = encoder->dev; in atombios_apply_encoder_quirks()
2064 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_apply_encoder_quirks()
2065 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in atombios_apply_encoder_quirks()
2113 int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx) in radeon_atom_pick_dig_encoder() argument
2115 struct drm_device *dev = encoder->dev; in radeon_atom_pick_dig_encoder()
2117 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in radeon_atom_pick_dig_encoder()
2118 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_pick_dig_encoder()
2192 * On DCE32 any encoder can drive any block so usually just use crtc id, in radeon_atom_pick_dig_encoder()
2209 if (encoder == test_encoder) in radeon_atom_pick_dig_encoder()
2224 DRM_ERROR("LVDS required digital encoder 2 but it was in use - stealing\n"); in radeon_atom_pick_dig_encoder()
2233 DRM_ERROR("Got encoder index incorrect - returning 0\n"); in radeon_atom_pick_dig_encoder()
2237 DRM_ERROR("chosen encoder in use %d\n", enc_idx); in radeon_atom_pick_dig_encoder()
2248 struct drm_encoder *encoder; in radeon_atom_encoder_init() local
2250 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in radeon_atom_encoder_init()
2251 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_init()
2252 struct drm_encoder *ext_encoder = radeon_get_external_encoder(encoder); in radeon_atom_encoder_init()
2260 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_INIT, 0, 0); in radeon_atom_encoder_init()
2267 atombios_external_encoder_setup(encoder, ext_encoder, in radeon_atom_encoder_init()
2273 radeon_atom_encoder_mode_set(struct drm_encoder *encoder, in radeon_atom_encoder_mode_set() argument
2277 struct drm_device *dev = encoder->dev; in radeon_atom_encoder_mode_set()
2279 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_mode_set()
2280 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in radeon_atom_encoder_mode_set()
2286 radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); in radeon_atom_encoder_mode_set()
2290 atombios_yuv_setup(encoder, true); in radeon_atom_encoder_mode_set()
2292 atombios_yuv_setup(encoder, false); in radeon_atom_encoder_mode_set()
2300 atombios_digital_setup(encoder, PANEL_ENCODER_ACTION_ENABLE); in radeon_atom_encoder_mode_set()
2312 atombios_dvo_setup(encoder, ATOM_ENABLE); in radeon_atom_encoder_mode_set()
2318 atombios_dac_setup(encoder, ATOM_ENABLE); in radeon_atom_encoder_mode_set()
2321 atombios_tv_setup(encoder, ATOM_ENABLE); in radeon_atom_encoder_mode_set()
2323 atombios_tv_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_mode_set()
2328 atombios_apply_encoder_quirks(encoder, adjusted_mode); in radeon_atom_encoder_mode_set()
2330 encoder_mode = atombios_get_encoder_mode(encoder); in radeon_atom_encoder_mode_set()
2334 radeon_audio_mode_set(encoder, adjusted_mode); in radeon_atom_encoder_mode_set()
2338 atombios_dac_load_detect(struct drm_encoder *encoder, struct drm_connector *connector) in atombios_dac_load_detect() argument
2340 struct drm_device *dev = encoder->dev; in atombios_dac_load_detect()
2342 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_dac_load_detect()
2387 radeon_atom_dac_detect(struct drm_encoder *encoder, struct drm_connector *connector) in radeon_atom_dac_detect() argument
2389 struct drm_device *dev = encoder->dev; in radeon_atom_dac_detect()
2391 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_dac_detect()
2395 if (!atombios_dac_load_detect(encoder, connector)) { in radeon_atom_dac_detect()
2428 radeon_atom_dig_detect(struct drm_encoder *encoder, struct drm_connector *connector) in radeon_atom_dig_detect() argument
2430 struct drm_device *dev = encoder->dev; in radeon_atom_dig_detect()
2432 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_dig_detect()
2434 struct drm_encoder *ext_encoder = radeon_get_external_encoder(encoder); in radeon_atom_dig_detect()
2447 atombios_external_encoder_setup(encoder, ext_encoder, in radeon_atom_dig_detect()
2475 radeon_atom_ext_encoder_setup_ddc(struct drm_encoder *encoder) in radeon_atom_ext_encoder_setup_ddc() argument
2477 struct drm_encoder *ext_encoder = radeon_get_external_encoder(encoder); in radeon_atom_ext_encoder_setup_ddc()
2481 atombios_external_encoder_setup(encoder, ext_encoder, in radeon_atom_ext_encoder_setup_ddc()
2486 static void radeon_atom_encoder_prepare(struct drm_encoder *encoder) in radeon_atom_encoder_prepare() argument
2488 struct radeon_device *rdev = encoder->dev->dev_private; in radeon_atom_encoder_prepare()
2489 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_prepare()
2490 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in radeon_atom_encoder_prepare()
2494 (radeon_encoder_get_dp_bridge_encoder_id(encoder) != in radeon_atom_encoder_prepare()
2500 dig->dig_encoder = radeon_atom_pick_dig_encoder(encoder, -1); in radeon_atom_encoder_prepare()
2511 radeon_atom_output_lock(encoder, true); in radeon_atom_encoder_prepare()
2527 atombios_set_encoder_crtc_source(encoder); in radeon_atom_encoder_prepare()
2530 dce8_program_fmt(encoder); in radeon_atom_encoder_prepare()
2532 dce4_program_fmt(encoder); in radeon_atom_encoder_prepare()
2534 dce3_program_fmt(encoder); in radeon_atom_encoder_prepare()
2536 avivo_program_fmt(encoder); in radeon_atom_encoder_prepare()
2539 static void radeon_atom_encoder_commit(struct drm_encoder *encoder) in radeon_atom_encoder_commit() argument
2542 radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_ON); in radeon_atom_encoder_commit()
2543 radeon_atom_output_lock(encoder, false); in radeon_atom_encoder_commit()
2546 static void radeon_atom_encoder_disable(struct drm_encoder *encoder) in radeon_atom_encoder_disable() argument
2548 struct drm_device *dev = encoder->dev; in radeon_atom_encoder_disable()
2550 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_disable()
2555 * the encoder if it's in use by another connector in radeon_atom_encoder_disable()
2569 radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); in radeon_atom_encoder_disable()
2576 atombios_digital_setup(encoder, PANEL_ENCODER_ACTION_DISABLE); in radeon_atom_encoder_disable()
2588 atombios_dvo_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_disable()
2594 atombios_dac_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_disable()
2596 atombios_tv_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_disable()
2601 if (radeon_encoder_is_digital(encoder)) { in radeon_atom_encoder_disable()
2602 if (atombios_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_HDMI) { in radeon_atom_encoder_disable()
2604 radeon_hdmi_enable(rdev, encoder, false); in radeon_atom_encoder_disable()
2606 if (atombios_get_encoder_mode(encoder) != ATOM_ENCODER_MODE_DP_MST) { in radeon_atom_encoder_disable()
2617 static void radeon_atom_ext_prepare(struct drm_encoder *encoder) in radeon_atom_ext_prepare() argument
2622 static void radeon_atom_ext_commit(struct drm_encoder *encoder) in radeon_atom_ext_commit() argument
2628 radeon_atom_ext_mode_set(struct drm_encoder *encoder, in radeon_atom_ext_mode_set() argument
2635 static void radeon_atom_ext_disable(struct drm_encoder *encoder) in radeon_atom_ext_disable() argument
2641 radeon_atom_ext_dpms(struct drm_encoder *encoder, int mode) in radeon_atom_ext_dpms() argument
2674 void radeon_enc_destroy(struct drm_encoder *encoder) in radeon_enc_destroy() argument
2676 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_enc_destroy()
2680 drm_encoder_cleanup(encoder); in radeon_enc_destroy()
2730 struct drm_encoder *encoder; in radeon_add_atom_encoder() local
2734 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in radeon_add_atom_encoder()
2735 radeon_encoder = to_radeon_encoder(encoder); in radeon_add_atom_encoder()
2748 encoder = &radeon_encoder->base; in radeon_add_atom_encoder()
2751 encoder->possible_crtcs = 0x1; in radeon_add_atom_encoder()
2755 encoder->possible_crtcs = 0x3; in radeon_add_atom_encoder()
2758 encoder->possible_crtcs = 0xf; in radeon_add_atom_encoder()
2761 encoder->possible_crtcs = 0x3f; in radeon_add_atom_encoder()
2782 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2786 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2790 drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs); in radeon_add_atom_encoder()
2793 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2796 drm_encoder_helper_add(encoder, &radeon_atom_dac_helper_funcs); in radeon_add_atom_encoder()
2801 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2804 drm_encoder_helper_add(encoder, &radeon_atom_dac_helper_funcs); in radeon_add_atom_encoder()
2816 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2820 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2824 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2828 drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs); in radeon_add_atom_encoder()
2842 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2845 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2848 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2850 drm_encoder_helper_add(encoder, &radeon_atom_ext_helper_funcs); in radeon_add_atom_encoder()