Lines Matching refs:encoder
709 static void dce_v10_0_program_fmt(struct drm_encoder *encoder) in dce_v10_0_program_fmt() argument
711 struct drm_device *dev = encoder->dev; in dce_v10_0_program_fmt()
713 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_program_fmt()
714 struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(encoder->crtc); in dce_v10_0_program_fmt()
715 struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder); in dce_v10_0_program_fmt()
1425 static void dce_v10_0_afmt_audio_select_pin(struct drm_encoder *encoder) in dce_v10_0_afmt_audio_select_pin() argument
1427 struct amdgpu_device *adev = encoder->dev->dev_private; in dce_v10_0_afmt_audio_select_pin()
1428 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_afmt_audio_select_pin()
1440 static void dce_v10_0_audio_write_latency_fields(struct drm_encoder *encoder, in dce_v10_0_audio_write_latency_fields() argument
1443 struct amdgpu_device *adev = encoder->dev->dev_private; in dce_v10_0_audio_write_latency_fields()
1444 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_audio_write_latency_fields()
1454 list_for_each_entry(connector, &encoder->dev->mode_config.connector_list, head) { in dce_v10_0_audio_write_latency_fields()
1455 if (connector->encoder == encoder) { in dce_v10_0_audio_write_latency_fields()
1483 static void dce_v10_0_audio_write_speaker_allocation(struct drm_encoder *encoder) in dce_v10_0_audio_write_speaker_allocation() argument
1485 struct amdgpu_device *adev = encoder->dev->dev_private; in dce_v10_0_audio_write_speaker_allocation()
1486 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_audio_write_speaker_allocation()
1497 list_for_each_entry(connector, &encoder->dev->mode_config.connector_list, head) { in dce_v10_0_audio_write_speaker_allocation()
1498 if (connector->encoder == encoder) { in dce_v10_0_audio_write_speaker_allocation()
1535 static void dce_v10_0_audio_write_sad_regs(struct drm_encoder *encoder) in dce_v10_0_audio_write_sad_regs() argument
1537 struct amdgpu_device *adev = encoder->dev->dev_private; in dce_v10_0_audio_write_sad_regs()
1538 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_audio_write_sad_regs()
1563 list_for_each_entry(connector, &encoder->dev->mode_config.connector_list, head) { in dce_v10_0_audio_write_sad_regs()
1564 if (connector->encoder == encoder) { in dce_v10_0_audio_write_sad_regs()
1683 static void dce_v10_0_afmt_update_ACR(struct drm_encoder *encoder, uint32_t clock) in dce_v10_0_afmt_update_ACR() argument
1685 struct drm_device *dev = encoder->dev; in dce_v10_0_afmt_update_ACR()
1688 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_afmt_update_ACR()
1718 static void dce_v10_0_afmt_update_avi_infoframe(struct drm_encoder *encoder, in dce_v10_0_afmt_update_avi_infoframe() argument
1721 struct drm_device *dev = encoder->dev; in dce_v10_0_afmt_update_avi_infoframe()
1723 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_afmt_update_avi_infoframe()
1738 static void dce_v10_0_audio_set_dto(struct drm_encoder *encoder, u32 clock) in dce_v10_0_audio_set_dto() argument
1740 struct drm_device *dev = encoder->dev; in dce_v10_0_audio_set_dto()
1742 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_audio_set_dto()
1744 struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(encoder->crtc); in dce_v10_0_audio_set_dto()
1768 static void dce_v10_0_afmt_setmode(struct drm_encoder *encoder, in dce_v10_0_afmt_setmode() argument
1771 struct drm_device *dev = encoder->dev; in dce_v10_0_afmt_setmode()
1773 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_afmt_setmode()
1775 struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder); in dce_v10_0_afmt_setmode()
1790 if (encoder->crtc) { in dce_v10_0_afmt_setmode()
1791 struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(encoder->crtc); in dce_v10_0_afmt_setmode()
1799 dce_v10_0_audio_set_dto(encoder, mode->clock); in dce_v10_0_afmt_setmode()
1882 dce_v10_0_afmt_update_ACR(encoder, mode->clock); in dce_v10_0_afmt_setmode()
1901 dce_v10_0_audio_write_speaker_allocation(encoder); in dce_v10_0_afmt_setmode()
1906 dce_v10_0_afmt_audio_select_pin(encoder); in dce_v10_0_afmt_setmode()
1907 dce_v10_0_audio_write_sad_regs(encoder); in dce_v10_0_afmt_setmode()
1908 dce_v10_0_audio_write_latency_fields(encoder, mode); in dce_v10_0_afmt_setmode()
1922 dce_v10_0_afmt_update_avi_infoframe(encoder, buffer, sizeof(buffer)); in dce_v10_0_afmt_setmode()
1949 static void dce_v10_0_afmt_enable(struct drm_encoder *encoder, bool enable) in dce_v10_0_afmt_enable() argument
1951 struct drm_device *dev = encoder->dev; in dce_v10_0_afmt_enable()
1953 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_afmt_enable()
2376 static int dce_v10_0_pick_dig_encoder(struct drm_encoder *encoder) in dce_v10_0_pick_dig_encoder() argument
2378 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_pick_dig_encoder()
2439 if (ENCODER_MODE_IS_DP(amdgpu_atombios_encoder_get_encoder_mode(amdgpu_crtc->encoder))) { in dce_v10_0_pick_pll()
2793 amdgpu_crtc->encoder = NULL; in dce_v10_0_crtc_disable()
2825 struct drm_encoder *encoder; in dce_v10_0_crtc_mode_fixup() local
2828 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in dce_v10_0_crtc_mode_fixup()
2829 if (encoder->crtc == crtc) { in dce_v10_0_crtc_mode_fixup()
2830 amdgpu_crtc->encoder = encoder; in dce_v10_0_crtc_mode_fixup()
2831 amdgpu_crtc->connector = amdgpu_get_connector_for_encoder(encoder); in dce_v10_0_crtc_mode_fixup()
2835 if ((amdgpu_crtc->encoder == NULL) || (amdgpu_crtc->connector == NULL)) { in dce_v10_0_crtc_mode_fixup()
2836 amdgpu_crtc->encoder = NULL; in dce_v10_0_crtc_mode_fixup()
2848 !ENCODER_MODE_IS_DP(amdgpu_atombios_encoder_get_encoder_mode(amdgpu_crtc->encoder))) in dce_v10_0_crtc_mode_fixup()
2931 amdgpu_crtc->encoder = NULL; in dce_v10_0_crtc_init()
3512 dce_v10_0_encoder_mode_set(struct drm_encoder *encoder, in dce_v10_0_encoder_mode_set() argument
3516 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_encoder_mode_set()
3521 amdgpu_atombios_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); in dce_v10_0_encoder_mode_set()
3524 dce_v10_0_set_interleave(encoder->crtc, mode); in dce_v10_0_encoder_mode_set()
3526 if (amdgpu_atombios_encoder_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_HDMI) { in dce_v10_0_encoder_mode_set()
3527 dce_v10_0_afmt_enable(encoder, true); in dce_v10_0_encoder_mode_set()
3528 dce_v10_0_afmt_setmode(encoder, adjusted_mode); in dce_v10_0_encoder_mode_set()
3532 static void dce_v10_0_encoder_prepare(struct drm_encoder *encoder) in dce_v10_0_encoder_prepare() argument
3534 struct amdgpu_device *adev = encoder->dev->dev_private; in dce_v10_0_encoder_prepare()
3535 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_encoder_prepare()
3536 struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder); in dce_v10_0_encoder_prepare()
3540 (amdgpu_encoder_get_dp_bridge_encoder_id(encoder) != in dce_v10_0_encoder_prepare()
3544 dig->dig_encoder = dce_v10_0_pick_dig_encoder(encoder); in dce_v10_0_encoder_prepare()
3566 amdgpu_atombios_encoder_set_crtc_source(encoder); in dce_v10_0_encoder_prepare()
3568 dce_v10_0_program_fmt(encoder); in dce_v10_0_encoder_prepare()
3571 static void dce_v10_0_encoder_commit(struct drm_encoder *encoder) in dce_v10_0_encoder_commit() argument
3573 struct drm_device *dev = encoder->dev; in dce_v10_0_encoder_commit()
3577 amdgpu_atombios_encoder_dpms(encoder, DRM_MODE_DPMS_ON); in dce_v10_0_encoder_commit()
3581 static void dce_v10_0_encoder_disable(struct drm_encoder *encoder) in dce_v10_0_encoder_disable() argument
3583 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_encoder_disable()
3586 amdgpu_atombios_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); in dce_v10_0_encoder_disable()
3588 if (amdgpu_atombios_encoder_is_digital(encoder)) { in dce_v10_0_encoder_disable()
3589 if (amdgpu_atombios_encoder_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_HDMI) in dce_v10_0_encoder_disable()
3590 dce_v10_0_afmt_enable(encoder, false); in dce_v10_0_encoder_disable()
3598 static void dce_v10_0_ext_prepare(struct drm_encoder *encoder) in dce_v10_0_ext_prepare() argument
3603 static void dce_v10_0_ext_commit(struct drm_encoder *encoder) in dce_v10_0_ext_commit() argument
3609 dce_v10_0_ext_mode_set(struct drm_encoder *encoder, in dce_v10_0_ext_mode_set() argument
3616 static void dce_v10_0_ext_disable(struct drm_encoder *encoder) in dce_v10_0_ext_disable() argument
3622 dce_v10_0_ext_dpms(struct drm_encoder *encoder, int mode) in dce_v10_0_ext_dpms() argument
3627 static bool dce_v10_0_ext_mode_fixup(struct drm_encoder *encoder, in dce_v10_0_ext_mode_fixup() argument
3663 static void dce_v10_0_encoder_destroy(struct drm_encoder *encoder) in dce_v10_0_encoder_destroy() argument
3665 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_encoder_destroy()
3669 drm_encoder_cleanup(encoder); in dce_v10_0_encoder_destroy()
3683 struct drm_encoder *encoder; in dce_v10_0_encoder_add() local
3687 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in dce_v10_0_encoder_add()
3688 amdgpu_encoder = to_amdgpu_encoder(encoder); in dce_v10_0_encoder_add()
3701 encoder = &amdgpu_encoder->base; in dce_v10_0_encoder_add()
3704 encoder->possible_crtcs = 0x1; in dce_v10_0_encoder_add()
3708 encoder->possible_crtcs = 0x3; in dce_v10_0_encoder_add()
3711 encoder->possible_crtcs = 0xf; in dce_v10_0_encoder_add()
3714 encoder->possible_crtcs = 0x3f; in dce_v10_0_encoder_add()
3731 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs, in dce_v10_0_encoder_add()
3733 drm_encoder_helper_add(encoder, &dce_v10_0_dac_helper_funcs); in dce_v10_0_encoder_add()
3742 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs, in dce_v10_0_encoder_add()
3746 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs, in dce_v10_0_encoder_add()
3750 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs, in dce_v10_0_encoder_add()
3754 drm_encoder_helper_add(encoder, &dce_v10_0_dig_helper_funcs); in dce_v10_0_encoder_add()
3768 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs, in dce_v10_0_encoder_add()
3771 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs, in dce_v10_0_encoder_add()
3774 drm_encoder_init(dev, encoder, &dce_v10_0_encoder_funcs, in dce_v10_0_encoder_add()
3776 drm_encoder_helper_add(encoder, &dce_v10_0_ext_helper_funcs); in dce_v10_0_encoder_add()