Lines Matching refs:encoder
657 static void dce_v8_0_program_fmt(struct drm_encoder *encoder) in dce_v8_0_program_fmt() argument
659 struct drm_device *dev = encoder->dev; in dce_v8_0_program_fmt()
661 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_program_fmt()
662 struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(encoder->crtc); in dce_v8_0_program_fmt()
663 struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder); in dce_v8_0_program_fmt()
1370 static void dce_v8_0_afmt_audio_select_pin(struct drm_encoder *encoder) in dce_v8_0_afmt_audio_select_pin() argument
1372 struct amdgpu_device *adev = encoder->dev->dev_private; in dce_v8_0_afmt_audio_select_pin()
1373 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_afmt_audio_select_pin()
1386 static void dce_v8_0_audio_write_latency_fields(struct drm_encoder *encoder, in dce_v8_0_audio_write_latency_fields() argument
1389 struct amdgpu_device *adev = encoder->dev->dev_private; in dce_v8_0_audio_write_latency_fields()
1390 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_audio_write_latency_fields()
1401 list_for_each_entry(connector, &encoder->dev->mode_config.connector_list, head) { in dce_v8_0_audio_write_latency_fields()
1402 if (connector->encoder == encoder) { in dce_v8_0_audio_write_latency_fields()
1444 static void dce_v8_0_audio_write_speaker_allocation(struct drm_encoder *encoder) in dce_v8_0_audio_write_speaker_allocation() argument
1446 struct amdgpu_device *adev = encoder->dev->dev_private; in dce_v8_0_audio_write_speaker_allocation()
1447 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_audio_write_speaker_allocation()
1460 list_for_each_entry(connector, &encoder->dev->mode_config.connector_list, head) { in dce_v8_0_audio_write_speaker_allocation()
1461 if (connector->encoder == encoder) { in dce_v8_0_audio_write_speaker_allocation()
1493 static void dce_v8_0_audio_write_sad_regs(struct drm_encoder *encoder) in dce_v8_0_audio_write_sad_regs() argument
1495 struct amdgpu_device *adev = encoder->dev->dev_private; in dce_v8_0_audio_write_sad_regs()
1496 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_audio_write_sad_regs()
1524 list_for_each_entry(connector, &encoder->dev->mode_config.connector_list, head) { in dce_v8_0_audio_write_sad_regs()
1525 if (connector->encoder == encoder) { in dce_v8_0_audio_write_sad_regs()
1654 static void dce_v8_0_afmt_update_ACR(struct drm_encoder *encoder, uint32_t clock) in dce_v8_0_afmt_update_ACR() argument
1656 struct drm_device *dev = encoder->dev; in dce_v8_0_afmt_update_ACR()
1659 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_afmt_update_ACR()
1676 static void dce_v8_0_afmt_update_avi_infoframe(struct drm_encoder *encoder, in dce_v8_0_afmt_update_avi_infoframe() argument
1679 struct drm_device *dev = encoder->dev; in dce_v8_0_afmt_update_avi_infoframe()
1681 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_afmt_update_avi_infoframe()
1697 static void dce_v8_0_audio_set_dto(struct drm_encoder *encoder, u32 clock) in dce_v8_0_audio_set_dto() argument
1699 struct drm_device *dev = encoder->dev; in dce_v8_0_audio_set_dto()
1701 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_audio_set_dto()
1703 struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(encoder->crtc); in dce_v8_0_audio_set_dto()
1723 static void dce_v8_0_afmt_setmode(struct drm_encoder *encoder, in dce_v8_0_afmt_setmode() argument
1726 struct drm_device *dev = encoder->dev; in dce_v8_0_afmt_setmode()
1728 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_afmt_setmode()
1730 struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder); in dce_v8_0_afmt_setmode()
1746 if (encoder->crtc) { in dce_v8_0_afmt_setmode()
1747 struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(encoder->crtc); in dce_v8_0_afmt_setmode()
1755 dce_v8_0_audio_set_dto(encoder, mode->clock); in dce_v8_0_afmt_setmode()
1825 dce_v8_0_afmt_update_ACR(encoder, mode->clock); in dce_v8_0_afmt_setmode()
1841 dce_v8_0_audio_write_speaker_allocation(encoder); in dce_v8_0_afmt_setmode()
1847 dce_v8_0_afmt_audio_select_pin(encoder); in dce_v8_0_afmt_setmode()
1848 dce_v8_0_audio_write_sad_regs(encoder); in dce_v8_0_afmt_setmode()
1849 dce_v8_0_audio_write_latency_fields(encoder, mode); in dce_v8_0_afmt_setmode()
1863 dce_v8_0_afmt_update_avi_infoframe(encoder, buffer, sizeof(buffer)); in dce_v8_0_afmt_setmode()
1886 static void dce_v8_0_afmt_enable(struct drm_encoder *encoder, bool enable) in dce_v8_0_afmt_enable() argument
1888 struct drm_device *dev = encoder->dev; in dce_v8_0_afmt_enable()
1890 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_afmt_enable()
2277 static int dce_v8_0_pick_dig_encoder(struct drm_encoder *encoder) in dce_v8_0_pick_dig_encoder() argument
2279 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_pick_dig_encoder()
2340 if (ENCODER_MODE_IS_DP(amdgpu_atombios_encoder_get_encoder_mode(amdgpu_crtc->encoder))) { in dce_v8_0_pick_pll()
2712 amdgpu_crtc->encoder = NULL; in dce_v8_0_crtc_disable()
2744 struct drm_encoder *encoder; in dce_v8_0_crtc_mode_fixup() local
2747 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in dce_v8_0_crtc_mode_fixup()
2748 if (encoder->crtc == crtc) { in dce_v8_0_crtc_mode_fixup()
2749 amdgpu_crtc->encoder = encoder; in dce_v8_0_crtc_mode_fixup()
2750 amdgpu_crtc->connector = amdgpu_get_connector_for_encoder(encoder); in dce_v8_0_crtc_mode_fixup()
2754 if ((amdgpu_crtc->encoder == NULL) || (amdgpu_crtc->connector == NULL)) { in dce_v8_0_crtc_mode_fixup()
2755 amdgpu_crtc->encoder = NULL; in dce_v8_0_crtc_mode_fixup()
2767 !ENCODER_MODE_IS_DP(amdgpu_atombios_encoder_get_encoder_mode(amdgpu_crtc->encoder))) in dce_v8_0_crtc_mode_fixup()
2830 amdgpu_crtc->encoder = NULL; in dce_v8_0_crtc_init()
3442 dce_v8_0_encoder_mode_set(struct drm_encoder *encoder, in dce_v8_0_encoder_mode_set() argument
3446 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_encoder_mode_set()
3451 amdgpu_atombios_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); in dce_v8_0_encoder_mode_set()
3454 dce_v8_0_set_interleave(encoder->crtc, mode); in dce_v8_0_encoder_mode_set()
3456 if (amdgpu_atombios_encoder_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_HDMI) { in dce_v8_0_encoder_mode_set()
3457 dce_v8_0_afmt_enable(encoder, true); in dce_v8_0_encoder_mode_set()
3458 dce_v8_0_afmt_setmode(encoder, adjusted_mode); in dce_v8_0_encoder_mode_set()
3462 static void dce_v8_0_encoder_prepare(struct drm_encoder *encoder) in dce_v8_0_encoder_prepare() argument
3464 struct amdgpu_device *adev = encoder->dev->dev_private; in dce_v8_0_encoder_prepare()
3465 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_encoder_prepare()
3466 struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder); in dce_v8_0_encoder_prepare()
3470 (amdgpu_encoder_get_dp_bridge_encoder_id(encoder) != in dce_v8_0_encoder_prepare()
3474 dig->dig_encoder = dce_v8_0_pick_dig_encoder(encoder); in dce_v8_0_encoder_prepare()
3496 amdgpu_atombios_encoder_set_crtc_source(encoder); in dce_v8_0_encoder_prepare()
3498 dce_v8_0_program_fmt(encoder); in dce_v8_0_encoder_prepare()
3501 static void dce_v8_0_encoder_commit(struct drm_encoder *encoder) in dce_v8_0_encoder_commit() argument
3503 struct drm_device *dev = encoder->dev; in dce_v8_0_encoder_commit()
3507 amdgpu_atombios_encoder_dpms(encoder, DRM_MODE_DPMS_ON); in dce_v8_0_encoder_commit()
3511 static void dce_v8_0_encoder_disable(struct drm_encoder *encoder) in dce_v8_0_encoder_disable() argument
3513 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_encoder_disable()
3516 amdgpu_atombios_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); in dce_v8_0_encoder_disable()
3518 if (amdgpu_atombios_encoder_is_digital(encoder)) { in dce_v8_0_encoder_disable()
3519 if (amdgpu_atombios_encoder_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_HDMI) in dce_v8_0_encoder_disable()
3520 dce_v8_0_afmt_enable(encoder, false); in dce_v8_0_encoder_disable()
3528 static void dce_v8_0_ext_prepare(struct drm_encoder *encoder) in dce_v8_0_ext_prepare() argument
3533 static void dce_v8_0_ext_commit(struct drm_encoder *encoder) in dce_v8_0_ext_commit() argument
3539 dce_v8_0_ext_mode_set(struct drm_encoder *encoder, in dce_v8_0_ext_mode_set() argument
3546 static void dce_v8_0_ext_disable(struct drm_encoder *encoder) in dce_v8_0_ext_disable() argument
3552 dce_v8_0_ext_dpms(struct drm_encoder *encoder, int mode) in dce_v8_0_ext_dpms() argument
3557 static bool dce_v8_0_ext_mode_fixup(struct drm_encoder *encoder, in dce_v8_0_ext_mode_fixup() argument
3593 static void dce_v8_0_encoder_destroy(struct drm_encoder *encoder) in dce_v8_0_encoder_destroy() argument
3595 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_encoder_destroy()
3599 drm_encoder_cleanup(encoder); in dce_v8_0_encoder_destroy()
3613 struct drm_encoder *encoder; in dce_v8_0_encoder_add() local
3617 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in dce_v8_0_encoder_add()
3618 amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v8_0_encoder_add()
3631 encoder = &amdgpu_encoder->base; in dce_v8_0_encoder_add()
3634 encoder->possible_crtcs = 0x1; in dce_v8_0_encoder_add()
3638 encoder->possible_crtcs = 0x3; in dce_v8_0_encoder_add()
3641 encoder->possible_crtcs = 0xf; in dce_v8_0_encoder_add()
3644 encoder->possible_crtcs = 0x3f; in dce_v8_0_encoder_add()
3661 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs, in dce_v8_0_encoder_add()
3663 drm_encoder_helper_add(encoder, &dce_v8_0_dac_helper_funcs); in dce_v8_0_encoder_add()
3672 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs, in dce_v8_0_encoder_add()
3676 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs, in dce_v8_0_encoder_add()
3680 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs, in dce_v8_0_encoder_add()
3684 drm_encoder_helper_add(encoder, &dce_v8_0_dig_helper_funcs); in dce_v8_0_encoder_add()
3698 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs, in dce_v8_0_encoder_add()
3701 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs, in dce_v8_0_encoder_add()
3704 drm_encoder_init(dev, encoder, &dce_v8_0_encoder_funcs, in dce_v8_0_encoder_add()
3706 drm_encoder_helper_add(encoder, &dce_v8_0_ext_helper_funcs); in dce_v8_0_encoder_add()