Lines Matching full:encoder

96 	struct drm_encoder *encoder = &radeon_encoder->base;  in atombios_set_backlight_level()  local
132 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_LCD_BLOFF, 0, 0); in atombios_set_backlight_level()
134 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_BL_BRIGHTNESS_CONTROL, 0, 0); in atombios_set_backlight_level()
135 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_LCD_BLON, 0, 0); in atombios_set_backlight_level()
164 struct radeon_encoder *radeon_encoder = pdata->encoder; in radeon_atom_backlight_update_status()
174 struct radeon_encoder *radeon_encoder = pdata->encoder; in radeon_atom_backlight_get_brightness()
231 pdata->encoder = radeon_encoder; in radeon_atom_backlight_init()
290 void radeon_atom_backlight_init(struct radeon_encoder *encoder) in radeon_atom_backlight_init() argument
294 static void radeon_atom_backlight_exit(struct radeon_encoder *encoder) in radeon_atom_backlight_exit() argument
300 static bool radeon_atom_mode_fixup(struct drm_encoder *encoder, in radeon_atom_mode_fixup() argument
304 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_mode_fixup()
305 struct drm_device *dev = encoder->dev; in radeon_atom_mode_fixup()
308 /* set the active encoder to connector routing */ in radeon_atom_mode_fixup()
309 radeon_encoder_set_active_device(encoder); in radeon_atom_mode_fixup()
323 radeon_panel_mode_fixup(encoder, adjusted_mode); in radeon_atom_mode_fixup()
335 radeon_panel_mode_fixup(encoder, adjusted_mode); in radeon_atom_mode_fixup()
340 (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE))) { in radeon_atom_mode_fixup()
341 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in radeon_atom_mode_fixup()
349 atombios_dac_setup(struct drm_encoder *encoder, int action) in atombios_dac_setup() argument
351 struct drm_device *dev = encoder->dev; in atombios_dac_setup()
353 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_dac_setup()
401 atombios_tv_setup(struct drm_encoder *encoder, int action) in atombios_tv_setup() argument
403 struct drm_device *dev = encoder->dev; in atombios_tv_setup()
405 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_tv_setup()
456 static u8 radeon_atom_get_bpc(struct drm_encoder *encoder) in radeon_atom_get_bpc() argument
460 if (encoder->crtc) { in radeon_atom_get_bpc()
461 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in radeon_atom_get_bpc()
490 atombios_dvo_setup(struct drm_encoder *encoder, int action) in atombios_dvo_setup() argument
492 struct drm_device *dev = encoder->dev; in atombios_dvo_setup()
494 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_dvo_setup()
515 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dvo_setup()
527 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dvo_setup()
541 args.dvo_v4.ucBitPerColor = radeon_atom_get_bpc(encoder); in atombios_dvo_setup()
562 atombios_digital_setup(struct drm_encoder *encoder, int action) in atombios_digital_setup() argument
564 struct drm_device *dev = encoder->dev; in atombios_digital_setup()
566 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_digital_setup()
576 if (atombios_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_HDMI) in atombios_digital_setup()
618 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_digital_setup()
657 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_digital_setup()
675 atombios_get_encoder_mode(struct drm_encoder *encoder) in atombios_get_encoder_mode() argument
677 struct drm_device *dev = encoder->dev; in atombios_get_encoder_mode()
679 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_get_encoder_mode()
685 if (radeon_encoder_is_digital(encoder)) { in atombios_get_encoder_mode()
693 if (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE) in atombios_get_encoder_mode()
701 connector = radeon_get_connector_for_encoder(encoder); in atombios_get_encoder_mode()
703 * the connectors tied to the encoder. in atombios_get_encoder_mode()
706 connector = radeon_get_connector_for_encoder_init(encoder); in atombios_get_encoder_mode()
789 * DIG Encoder/Transmitter Setup
794 * - 2 DIG encoder blocks.
801 * - 2 DIG encoder blocks.
807 * - 6 DIG encoder blocks.
819 * - 2 DIG encoder blocks.
827 * crtc -> dig encoder -> UNIPHY/LVTMA (1 or 2 links)
843 atombios_dig_encoder_setup2(struct drm_encoder *encoder, int action, int panel_mode, int enc_overri… in atombios_dig_encoder_setup2() argument
845 struct drm_device *dev = encoder->dev; in atombios_dig_encoder_setup2()
847 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_dig_encoder_setup2()
849 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in atombios_dig_encoder_setup2()
867 /* no dig encoder assigned */ in atombios_dig_encoder_setup2()
894 args.v1.ucEncoderMode = atombios_get_encoder_mode(encoder); in atombios_dig_encoder_setup2()
898 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_encoder_setup2()
931 args.v3.ucEncoderMode = atombios_get_encoder_mode(encoder); in atombios_dig_encoder_setup2()
935 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_encoder_setup2()
946 args.v3.ucBitPerColor = radeon_atom_get_bpc(encoder); in atombios_dig_encoder_setup2()
954 args.v4.ucEncoderMode = atombios_get_encoder_mode(encoder); in atombios_dig_encoder_setup2()
958 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_encoder_setup2()
978 args.v4.ucBitPerColor = radeon_atom_get_bpc(encoder); in atombios_dig_encoder_setup2()
999 atombios_dig_encoder_setup(struct drm_encoder *encoder, int action, int panel_mode) in atombios_dig_encoder_setup() argument
1001 atombios_dig_encoder_setup2(encoder, action, panel_mode, -1); in atombios_dig_encoder_setup()
1013 atombios_dig_transmitter_setup2(struct drm_encoder *encoder, int action, uint8_t lane_num, uint8_t … in atombios_dig_transmitter_setup2() argument
1015 struct drm_device *dev = encoder->dev; in atombios_dig_transmitter_setup2()
1017 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_dig_transmitter_setup2()
1033 connector = radeon_get_connector_for_encoder_init(encoder); in atombios_dig_transmitter_setup2()
1034 /* just needed to avoid bailing in the encoder check. the encoder in atombios_dig_transmitter_setup2()
1039 connector = radeon_get_connector_for_encoder(encoder); in atombios_dig_transmitter_setup2()
1054 if (encoder->crtc) { in atombios_dig_transmitter_setup2()
1055 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in atombios_dig_transmitter_setup2()
1059 /* no dig encoder assigned */ in atombios_dig_transmitter_setup2()
1063 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder))) in atombios_dig_transmitter_setup2()
1099 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1115 !radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) { in atombios_dig_transmitter_setup2()
1142 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1156 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1184 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1198 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1206 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1243 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1257 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1265 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1305 if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1341 else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_dig_transmitter_setup2()
1346 args.v5.ucDigMode = atombios_get_encoder_mode(encoder); in atombios_dig_transmitter_setup2()
1380 atombios_dig_transmitter_setup(struct drm_encoder *encoder, int action, uint8_t lane_num, uint8_t l… in atombios_dig_transmitter_setup() argument
1382 atombios_dig_transmitter_setup2(encoder, action, lane_num, lane_set, -1); in atombios_dig_transmitter_setup()
1435 atombios_external_encoder_setup(struct drm_encoder *encoder, in atombios_external_encoder_setup() argument
1439 struct drm_device *dev = encoder->dev; in atombios_external_encoder_setup()
1441 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_external_encoder_setup()
1453 connector = radeon_get_connector_for_encoder_init(encoder); in atombios_external_encoder_setup()
1455 connector = radeon_get_connector_for_encoder(encoder); in atombios_external_encoder_setup()
1483 args.v1.sDigEncoder.ucEncoderMode = atombios_get_encoder_mode(encoder); in atombios_external_encoder_setup()
1489 } else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_external_encoder_setup()
1500 args.v3.sExtEncoder.ucEncoderMode = atombios_get_encoder_mode(encoder); in atombios_external_encoder_setup()
1508 } else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) in atombios_external_encoder_setup()
1523 args.v3.sExtEncoder.ucBitPerColor = radeon_atom_get_bpc(encoder); in atombios_external_encoder_setup()
1538 atombios_yuv_setup(struct drm_encoder *encoder, bool enable) in atombios_yuv_setup() argument
1540 struct drm_device *dev = encoder->dev; in atombios_yuv_setup()
1542 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_yuv_setup()
1543 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in atombios_yuv_setup()
1575 radeon_atom_encoder_dpms_avivo(struct drm_encoder *encoder, int mode) in radeon_atom_encoder_dpms_avivo() argument
1577 struct drm_device *dev = encoder->dev; in radeon_atom_encoder_dpms_avivo()
1579 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_dpms_avivo()
1662 radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode) in radeon_atom_encoder_dpms_dig() argument
1664 struct drm_device *dev = encoder->dev; in radeon_atom_encoder_dpms_dig()
1666 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_dpms_dig()
1667 struct drm_encoder *ext_encoder = radeon_get_external_encoder(encoder); in radeon_atom_encoder_dpms_dig()
1669 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in radeon_atom_encoder_dpms_dig()
1690 dig->panel_mode = radeon_dp_get_panel_mode(encoder, connector); in radeon_atom_encoder_dpms_dig()
1692 /* setup and enable the encoder */ in radeon_atom_encoder_dpms_dig()
1693 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_SETUP, 0); in radeon_atom_encoder_dpms_dig()
1694 atombios_dig_encoder_setup(encoder, in radeon_atom_encoder_dpms_dig()
1699 atombios_external_encoder_setup(encoder, ext_encoder, in radeon_atom_encoder_dpms_dig()
1703 /* setup and enable the encoder */ in radeon_atom_encoder_dpms_dig()
1704 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_SETUP, 0); in radeon_atom_encoder_dpms_dig()
1706 /* setup and enable the encoder and transmitter */ in radeon_atom_encoder_dpms_dig()
1707 atombios_dig_encoder_setup(encoder, ATOM_ENABLE, 0); in radeon_atom_encoder_dpms_dig()
1708 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_SETUP, 0, 0); in radeon_atom_encoder_dpms_dig()
1710 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) { in radeon_atom_encoder_dpms_dig()
1718 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE, 0, 0); in radeon_atom_encoder_dpms_dig()
1719 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) { in radeon_atom_encoder_dpms_dig()
1721 radeon_dp_link_train(encoder, connector); in radeon_atom_encoder_dpms_dig()
1723 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0); in radeon_atom_encoder_dpms_dig()
1729 atombios_dig_transmitter_setup(encoder, in radeon_atom_encoder_dpms_dig()
1733 atombios_external_encoder_setup(encoder, ext_encoder, ATOM_ENABLE); in radeon_atom_encoder_dpms_dig()
1744 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) in radeon_atom_encoder_dpms_dig()
1745 atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_OFF, 0); in radeon_atom_encoder_dpms_dig()
1748 atombios_external_encoder_setup(encoder, ext_encoder, ATOM_DISABLE); in radeon_atom_encoder_dpms_dig()
1750 atombios_dig_transmitter_setup(encoder, in radeon_atom_encoder_dpms_dig()
1753 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && in radeon_atom_encoder_dpms_dig()
1758 atombios_dig_transmitter_setup(encoder, in radeon_atom_encoder_dpms_dig()
1761 /* disable the encoder and transmitter */ in radeon_atom_encoder_dpms_dig()
1762 atombios_dig_transmitter_setup(encoder, in radeon_atom_encoder_dpms_dig()
1764 atombios_dig_encoder_setup(encoder, ATOM_DISABLE, 0); in radeon_atom_encoder_dpms_dig()
1766 if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) { in radeon_atom_encoder_dpms_dig()
1780 radeon_atom_encoder_dpms(struct drm_encoder *encoder, int mode) in radeon_atom_encoder_dpms() argument
1782 struct drm_device *dev = encoder->dev; in radeon_atom_encoder_dpms()
1784 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_dpms()
1785 int encoder_mode = atombios_get_encoder_mode(encoder); in radeon_atom_encoder_dpms()
1787 DRM_DEBUG_KMS("encoder dpms %d to mode %d, devices %08x, active_devices %08x\n", in radeon_atom_encoder_dpms()
1794 radeon_audio_dpms(encoder, mode); in radeon_atom_encoder_dpms()
1805 radeon_atom_encoder_dpms_avivo(encoder, mode); in radeon_atom_encoder_dpms()
1812 radeon_atom_encoder_dpms_dig(encoder, mode); in radeon_atom_encoder_dpms()
1818 atombios_dvo_setup(encoder, ATOM_ENABLE); in radeon_atom_encoder_dpms()
1823 atombios_dvo_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_dpms()
1827 radeon_atom_encoder_dpms_dig(encoder, mode); in radeon_atom_encoder_dpms()
1829 radeon_atom_encoder_dpms_avivo(encoder, mode); in radeon_atom_encoder_dpms()
1836 atombios_dac_setup(encoder, ATOM_ENABLE); in radeon_atom_encoder_dpms()
1841 atombios_dac_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_dpms()
1845 radeon_atom_encoder_dpms_avivo(encoder, mode); in radeon_atom_encoder_dpms()
1851 radeon_atombios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); in radeon_atom_encoder_dpms()
1861 atombios_set_encoder_crtc_source(struct drm_encoder *encoder) in atombios_set_encoder_crtc_source() argument
1863 struct drm_device *dev = encoder->dev; in atombios_set_encoder_crtc_source()
1865 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_set_encoder_crtc_source()
1866 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in atombios_set_encoder_crtc_source()
1929 if (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE) { in atombios_set_encoder_crtc_source()
1930 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in atombios_set_encoder_crtc_source()
1937 args.v2.ucEncodeMode = atombios_get_encoder_mode(encoder); in atombios_set_encoder_crtc_source()
1941 args.v2.ucEncodeMode = atombios_get_encoder_mode(encoder); in atombios_set_encoder_crtc_source()
2005 radeon_atombios_encoder_crtc_scratch_regs(encoder, radeon_crtc->crtc_id); in atombios_set_encoder_crtc_source()
2009 atombios_set_mst_encoder_crtc_source(struct drm_encoder *encoder, int fe) in atombios_set_mst_encoder_crtc_source() argument
2011 struct drm_device *dev = encoder->dev; in atombios_set_mst_encoder_crtc_source()
2013 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in atombios_set_mst_encoder_crtc_source()
2056 atombios_apply_encoder_quirks(struct drm_encoder *encoder, in atombios_apply_encoder_quirks() argument
2059 struct drm_device *dev = encoder->dev; in atombios_apply_encoder_quirks()
2061 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_apply_encoder_quirks()
2062 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in atombios_apply_encoder_quirks()
2110 int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx) in radeon_atom_pick_dig_encoder() argument
2112 struct drm_device *dev = encoder->dev; in radeon_atom_pick_dig_encoder()
2114 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in radeon_atom_pick_dig_encoder()
2115 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_pick_dig_encoder()
2189 * On DCE32 any encoder can drive any block so usually just use crtc id, in radeon_atom_pick_dig_encoder()
2206 if (encoder == test_encoder) in radeon_atom_pick_dig_encoder()
2221 DRM_ERROR("LVDS required digital encoder 2 but it was in use - stealing\n"); in radeon_atom_pick_dig_encoder()
2230 DRM_ERROR("Got encoder index incorrect - returning 0\n"); in radeon_atom_pick_dig_encoder()
2234 DRM_ERROR("chosen encoder in use %d\n", enc_idx); in radeon_atom_pick_dig_encoder()
2245 struct drm_encoder *encoder; in radeon_atom_encoder_init() local
2247 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in radeon_atom_encoder_init()
2248 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_init()
2249 struct drm_encoder *ext_encoder = radeon_get_external_encoder(encoder); in radeon_atom_encoder_init()
2257 atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_INIT, 0, 0); in radeon_atom_encoder_init()
2264 atombios_external_encoder_setup(encoder, ext_encoder, in radeon_atom_encoder_init()
2270 radeon_atom_encoder_mode_set(struct drm_encoder *encoder, in radeon_atom_encoder_mode_set() argument
2274 struct drm_device *dev = encoder->dev; in radeon_atom_encoder_mode_set()
2276 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_mode_set()
2277 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in radeon_atom_encoder_mode_set()
2283 radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); in radeon_atom_encoder_mode_set()
2287 atombios_yuv_setup(encoder, true); in radeon_atom_encoder_mode_set()
2289 atombios_yuv_setup(encoder, false); in radeon_atom_encoder_mode_set()
2297 atombios_digital_setup(encoder, PANEL_ENCODER_ACTION_ENABLE); in radeon_atom_encoder_mode_set()
2309 atombios_dvo_setup(encoder, ATOM_ENABLE); in radeon_atom_encoder_mode_set()
2315 atombios_dac_setup(encoder, ATOM_ENABLE); in radeon_atom_encoder_mode_set()
2318 atombios_tv_setup(encoder, ATOM_ENABLE); in radeon_atom_encoder_mode_set()
2320 atombios_tv_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_mode_set()
2325 atombios_apply_encoder_quirks(encoder, adjusted_mode); in radeon_atom_encoder_mode_set()
2327 encoder_mode = atombios_get_encoder_mode(encoder); in radeon_atom_encoder_mode_set()
2331 radeon_audio_mode_set(encoder, adjusted_mode); in radeon_atom_encoder_mode_set()
2335 atombios_dac_load_detect(struct drm_encoder *encoder, struct drm_connector *connector) in atombios_dac_load_detect() argument
2337 struct drm_device *dev = encoder->dev; in atombios_dac_load_detect()
2339 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in atombios_dac_load_detect()
2384 radeon_atom_dac_detect(struct drm_encoder *encoder, struct drm_connector *connector) in radeon_atom_dac_detect() argument
2386 struct drm_device *dev = encoder->dev; in radeon_atom_dac_detect()
2388 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_dac_detect()
2392 if (!atombios_dac_load_detect(encoder, connector)) { in radeon_atom_dac_detect()
2425 radeon_atom_dig_detect(struct drm_encoder *encoder, struct drm_connector *connector) in radeon_atom_dig_detect() argument
2427 struct drm_device *dev = encoder->dev; in radeon_atom_dig_detect()
2429 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_dig_detect()
2431 struct drm_encoder *ext_encoder = radeon_get_external_encoder(encoder); in radeon_atom_dig_detect()
2444 atombios_external_encoder_setup(encoder, ext_encoder, in radeon_atom_dig_detect()
2472 radeon_atom_ext_encoder_setup_ddc(struct drm_encoder *encoder) in radeon_atom_ext_encoder_setup_ddc() argument
2474 struct drm_encoder *ext_encoder = radeon_get_external_encoder(encoder); in radeon_atom_ext_encoder_setup_ddc()
2478 atombios_external_encoder_setup(encoder, ext_encoder, in radeon_atom_ext_encoder_setup_ddc()
2483 static void radeon_atom_encoder_prepare(struct drm_encoder *encoder) in radeon_atom_encoder_prepare() argument
2485 struct radeon_device *rdev = encoder->dev->dev_private; in radeon_atom_encoder_prepare()
2486 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_prepare()
2487 struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); in radeon_atom_encoder_prepare()
2491 (radeon_encoder_get_dp_bridge_encoder_id(encoder) != in radeon_atom_encoder_prepare()
2497 dig->dig_encoder = radeon_atom_pick_dig_encoder(encoder, -1); in radeon_atom_encoder_prepare()
2508 radeon_atom_output_lock(encoder, true); in radeon_atom_encoder_prepare()
2524 atombios_set_encoder_crtc_source(encoder); in radeon_atom_encoder_prepare()
2527 dce8_program_fmt(encoder); in radeon_atom_encoder_prepare()
2529 dce4_program_fmt(encoder); in radeon_atom_encoder_prepare()
2531 dce3_program_fmt(encoder); in radeon_atom_encoder_prepare()
2533 avivo_program_fmt(encoder); in radeon_atom_encoder_prepare()
2536 static void radeon_atom_encoder_commit(struct drm_encoder *encoder) in radeon_atom_encoder_commit() argument
2539 radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_ON); in radeon_atom_encoder_commit()
2540 radeon_atom_output_lock(encoder, false); in radeon_atom_encoder_commit()
2543 static void radeon_atom_encoder_disable(struct drm_encoder *encoder) in radeon_atom_encoder_disable() argument
2545 struct drm_device *dev = encoder->dev; in radeon_atom_encoder_disable()
2547 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_atom_encoder_disable()
2552 * the encoder if it's in use by another connector in radeon_atom_encoder_disable()
2566 radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); in radeon_atom_encoder_disable()
2573 atombios_digital_setup(encoder, PANEL_ENCODER_ACTION_DISABLE); in radeon_atom_encoder_disable()
2585 atombios_dvo_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_disable()
2591 atombios_dac_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_disable()
2593 atombios_tv_setup(encoder, ATOM_DISABLE); in radeon_atom_encoder_disable()
2598 if (radeon_encoder_is_digital(encoder)) { in radeon_atom_encoder_disable()
2599 if (atombios_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_HDMI) { in radeon_atom_encoder_disable()
2601 radeon_hdmi_enable(rdev, encoder, false); in radeon_atom_encoder_disable()
2603 if (atombios_get_encoder_mode(encoder) != ATOM_ENCODER_MODE_DP_MST) { in radeon_atom_encoder_disable()
2614 static void radeon_atom_ext_prepare(struct drm_encoder *encoder) in radeon_atom_ext_prepare() argument
2619 static void radeon_atom_ext_commit(struct drm_encoder *encoder) in radeon_atom_ext_commit() argument
2625 radeon_atom_ext_mode_set(struct drm_encoder *encoder, in radeon_atom_ext_mode_set() argument
2632 static void radeon_atom_ext_disable(struct drm_encoder *encoder) in radeon_atom_ext_disable() argument
2638 radeon_atom_ext_dpms(struct drm_encoder *encoder, int mode) in radeon_atom_ext_dpms() argument
2671 void radeon_enc_destroy(struct drm_encoder *encoder) in radeon_enc_destroy() argument
2673 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_enc_destroy()
2677 drm_encoder_cleanup(encoder); in radeon_enc_destroy()
2727 struct drm_encoder *encoder; in radeon_add_atom_encoder() local
2731 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in radeon_add_atom_encoder()
2732 radeon_encoder = to_radeon_encoder(encoder); in radeon_add_atom_encoder()
2745 encoder = &radeon_encoder->base; in radeon_add_atom_encoder()
2748 encoder->possible_crtcs = 0x1; in radeon_add_atom_encoder()
2752 encoder->possible_crtcs = 0x3; in radeon_add_atom_encoder()
2755 encoder->possible_crtcs = 0xf; in radeon_add_atom_encoder()
2758 encoder->possible_crtcs = 0x3f; in radeon_add_atom_encoder()
2779 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2783 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2787 drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs); in radeon_add_atom_encoder()
2790 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2793 drm_encoder_helper_add(encoder, &radeon_atom_dac_helper_funcs); in radeon_add_atom_encoder()
2798 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2801 drm_encoder_helper_add(encoder, &radeon_atom_dac_helper_funcs); in radeon_add_atom_encoder()
2813 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2817 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2821 drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, in radeon_add_atom_encoder()
2825 drm_encoder_helper_add(encoder, &radeon_atom_dig_helper_funcs); in radeon_add_atom_encoder()
2839 drm_encoder_init(dev, encoder, &radeon_atom_enc_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()
2847 drm_encoder_helper_add(encoder, &radeon_atom_ext_helper_funcs); in radeon_add_atom_encoder()