Lines Matching +full:- +full:dig +full:- +full:div
48 (0x5e00 - 0x5e00),
49 (0x5e18 - 0x5e00),
50 (0x5e30 - 0x5e00),
51 (0x5e48 - 0x5e00),
52 (0x5e60 - 0x5e00),
53 (0x5e78 - 0x5e00),
54 (0x5e90 - 0x5e00),
192 struct radeon_encoder_atom_dig *dig; in radeon_audio_enable() local
198 if (rdev->mode_info.mode_config_initialized) { in radeon_audio_enable()
199 list_for_each_entry(encoder, &rdev_to_drm(rdev)->mode_config.encoder_list, head) { in radeon_audio_enable()
202 dig = radeon_encoder->enc_priv; in radeon_audio_enable()
203 if (dig->pin == pin) in radeon_audio_enable()
212 if (rdev->audio.funcs->enable) in radeon_audio_enable()
213 rdev->audio.funcs->enable(rdev, pin, enable_mask); in radeon_audio_enable()
215 radeon_audio_component_notify(rdev, pin->id); in radeon_audio_enable()
221 rdev->audio.funcs = &dce6_funcs; in radeon_audio_interface_init()
222 rdev->audio.hdmi_funcs = &dce6_hdmi_funcs; in radeon_audio_interface_init()
223 rdev->audio.dp_funcs = &dce6_dp_funcs; in radeon_audio_interface_init()
225 rdev->audio.funcs = &dce4_funcs; in radeon_audio_interface_init()
226 rdev->audio.hdmi_funcs = &dce4_hdmi_funcs; in radeon_audio_interface_init()
227 rdev->audio.dp_funcs = &dce4_dp_funcs; in radeon_audio_interface_init()
229 rdev->audio.funcs = &dce32_funcs; in radeon_audio_interface_init()
230 rdev->audio.hdmi_funcs = &dce32_hdmi_funcs; in radeon_audio_interface_init()
231 rdev->audio.dp_funcs = &dce32_dp_funcs; in radeon_audio_interface_init()
233 rdev->audio.funcs = &r600_funcs; in radeon_audio_interface_init()
234 rdev->audio.hdmi_funcs = &r600_hdmi_funcs; in radeon_audio_interface_init()
235 rdev->audio.dp_funcs = NULL; in radeon_audio_interface_init()
251 rdev->audio.enabled = true; in radeon_audio_init()
254 rdev->audio.num_pins = 3; in radeon_audio_init()
256 rdev->audio.num_pins = 7; in radeon_audio_init()
258 rdev->audio.num_pins = 7; in radeon_audio_init()
260 rdev->audio.num_pins = 2; in radeon_audio_init()
262 rdev->audio.num_pins = 6; in radeon_audio_init()
264 rdev->audio.num_pins = 6; in radeon_audio_init()
266 rdev->audio.num_pins = 1; in radeon_audio_init()
268 for (i = 0; i < rdev->audio.num_pins; i++) { in radeon_audio_init()
269 rdev->audio.pin[i].channels = -1; in radeon_audio_init()
270 rdev->audio.pin[i].rate = -1; in radeon_audio_init()
271 rdev->audio.pin[i].bits_per_sample = -1; in radeon_audio_init()
272 rdev->audio.pin[i].status_bits = 0; in radeon_audio_init()
273 rdev->audio.pin[i].category_code = 0; in radeon_audio_init()
274 rdev->audio.pin[i].connected = false; in radeon_audio_init()
275 rdev->audio.pin[i].offset = pin_offsets[i]; in radeon_audio_init()
276 rdev->audio.pin[i].id = i; in radeon_audio_init()
282 for (i = 0; i < rdev->audio.num_pins; i++) in radeon_audio_init()
283 radeon_audio_enable(rdev, &rdev->audio.pin[i], 0); in radeon_audio_init()
290 if (rdev->audio.funcs->endpoint_rreg) in radeon_audio_endpoint_rreg()
291 return rdev->audio.funcs->endpoint_rreg(rdev, offset, reg); in radeon_audio_endpoint_rreg()
299 if (rdev->audio.funcs->endpoint_wreg) in radeon_audio_endpoint_wreg()
300 rdev->audio.funcs->endpoint_wreg(rdev, offset, reg, v); in radeon_audio_endpoint_wreg()
314 sad_count = drm_edid_to_sad(radeon_connector->edid, &sads); in radeon_audio_write_sad_regs()
321 if (radeon_encoder->audio && radeon_encoder->audio->write_sad_regs) in radeon_audio_write_sad_regs()
322 radeon_encoder->audio->write_sad_regs(encoder, sads, sad_count); in radeon_audio_write_sad_regs()
338 sad_count = drm_edid_to_speaker_allocation(radeon_connector->edid, &sadb); in radeon_audio_write_speaker_allocation()
345 if (radeon_encoder->audio && radeon_encoder->audio->write_speaker_allocation) in radeon_audio_write_speaker_allocation()
346 radeon_encoder->audio->write_speaker_allocation(encoder, sadb, sad_count); in radeon_audio_write_speaker_allocation()
360 if (radeon_encoder->audio && radeon_encoder->audio->write_latency_fields) in radeon_audio_write_latency_fields()
361 radeon_encoder->audio->write_latency_fields(encoder, connector, mode); in radeon_audio_write_latency_fields()
366 struct radeon_device *rdev = encoder->dev->dev_private; in radeon_audio_get_pin()
369 if (radeon_encoder->audio && radeon_encoder->audio->get_pin) in radeon_audio_get_pin()
370 return radeon_encoder->audio->get_pin(rdev); in radeon_audio_get_pin()
379 if (radeon_encoder->audio && radeon_encoder->audio->select_pin) in radeon_audio_select_pin()
380 radeon_encoder->audio->select_pin(encoder); in radeon_audio_select_pin()
387 struct drm_device *dev = connector->dev; in radeon_audio_detect()
388 struct radeon_device *rdev = dev->dev_private; in radeon_audio_detect()
390 struct radeon_encoder_atom_dig *dig; in radeon_audio_detect() local
398 dig = radeon_encoder->enc_priv; in radeon_audio_detect()
401 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { in radeon_audio_detect()
406 radeon_encoder->audio = rdev->audio.dp_funcs; in radeon_audio_detect()
408 radeon_encoder->audio = rdev->audio.hdmi_funcs; in radeon_audio_detect()
410 radeon_encoder->audio = rdev->audio.hdmi_funcs; in radeon_audio_detect()
413 if (connector->display_info.has_audio) { in radeon_audio_detect()
414 if (!dig->pin) in radeon_audio_detect()
415 dig->pin = radeon_audio_get_pin(encoder); in radeon_audio_detect()
416 radeon_audio_enable(rdev, dig->pin, 0xf); in radeon_audio_detect()
418 radeon_audio_enable(rdev, dig->pin, 0); in radeon_audio_detect()
419 dig->pin = NULL; in radeon_audio_detect()
422 radeon_audio_enable(rdev, dig->pin, 0); in radeon_audio_detect()
423 dig->pin = NULL; in radeon_audio_detect()
431 if (!rdev->audio.enabled) in radeon_audio_fini()
434 for (i = 0; i < rdev->audio.num_pins; i++) in radeon_audio_fini()
435 radeon_audio_enable(rdev, &rdev->audio.pin[i], 0); in radeon_audio_fini()
437 rdev->audio.enabled = false; in radeon_audio_fini()
442 struct radeon_device *rdev = encoder->dev->dev_private; in radeon_audio_set_dto()
444 struct radeon_crtc *crtc = to_radeon_crtc(encoder->crtc); in radeon_audio_set_dto()
446 if (radeon_encoder->audio && radeon_encoder->audio->set_dto) in radeon_audio_set_dto()
447 radeon_encoder->audio->set_dto(rdev, crtc, clock); in radeon_audio_set_dto()
453 struct radeon_device *rdev = encoder->dev->dev_private; in radeon_audio_set_avi_packet()
455 struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; in radeon_audio_set_avi_packet() local
462 return -EINVAL; in radeon_audio_set_avi_packet()
470 if (radeon_encoder->output_csc != RADEON_OUTPUT_CSC_BYPASS) { in radeon_audio_set_avi_packet()
472 radeon_encoder->output_csc == RADEON_OUTPUT_CSC_TVRGB ? in radeon_audio_set_avi_packet()
483 if (dig && dig->afmt && radeon_encoder->audio && in radeon_audio_set_avi_packet()
484 radeon_encoder->audio->set_avi_packet) in radeon_audio_set_avi_packet()
485 radeon_encoder->audio->set_avi_packet(rdev, dig->afmt->offset, in radeon_audio_set_avi_packet()
497 unsigned long div, mul; in radeon_audio_calc_cts() local
504 div = gcd(n, cts); in radeon_audio_calc_cts()
506 n /= div; in radeon_audio_calc_cts()
507 cts /= div; in radeon_audio_calc_cts()
513 mul = ((128*freq/1000) + (n-1))/n; in radeon_audio_calc_cts()
571 struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; in radeon_audio_update_acr() local
573 if (!dig || !dig->afmt) in radeon_audio_update_acr()
576 if (radeon_encoder->audio && radeon_encoder->audio->update_acr) in radeon_audio_update_acr()
577 radeon_encoder->audio->update_acr(encoder, dig->afmt->offset, acr); in radeon_audio_update_acr()
583 struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; in radeon_audio_set_vbi_packet() local
585 if (!dig || !dig->afmt) in radeon_audio_set_vbi_packet()
588 if (radeon_encoder->audio && radeon_encoder->audio->set_vbi_packet) in radeon_audio_set_vbi_packet()
589 radeon_encoder->audio->set_vbi_packet(encoder, dig->afmt->offset); in radeon_audio_set_vbi_packet()
596 struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; in radeon_hdmi_set_color_depth() local
598 if (!dig || !dig->afmt) in radeon_hdmi_set_color_depth()
601 if (encoder->crtc) { in radeon_hdmi_set_color_depth()
602 struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); in radeon_hdmi_set_color_depth()
603 bpc = radeon_crtc->bpc; in radeon_hdmi_set_color_depth()
606 if (radeon_encoder->audio && radeon_encoder->audio->set_color_depth) in radeon_hdmi_set_color_depth()
607 radeon_encoder->audio->set_color_depth(encoder, dig->afmt->offset, bpc); in radeon_hdmi_set_color_depth()
613 struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; in radeon_audio_set_audio_packet() local
615 if (!dig || !dig->afmt) in radeon_audio_set_audio_packet()
618 if (radeon_encoder->audio && radeon_encoder->audio->set_audio_packet) in radeon_audio_set_audio_packet()
619 radeon_encoder->audio->set_audio_packet(encoder, dig->afmt->offset); in radeon_audio_set_audio_packet()
625 struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; in radeon_audio_set_mute() local
627 if (!dig || !dig->afmt) in radeon_audio_set_mute()
630 if (radeon_encoder->audio && radeon_encoder->audio->set_mute) in radeon_audio_set_mute()
631 radeon_encoder->audio->set_mute(encoder, dig->afmt->offset, mute); in radeon_audio_set_mute()
641 struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; in radeon_audio_hdmi_mode_set() local
644 if (!dig || !dig->afmt) in radeon_audio_hdmi_mode_set()
650 if (connector->display_info.has_audio) { in radeon_audio_hdmi_mode_set()
656 radeon_audio_set_dto(encoder, mode->clock); in radeon_audio_hdmi_mode_set()
659 radeon_audio_update_acr(encoder, mode->clock); in radeon_audio_hdmi_mode_set()
678 struct drm_device *dev = encoder->dev; in radeon_audio_dp_mode_set()
679 struct radeon_device *rdev = dev->dev_private; in radeon_audio_dp_mode_set()
681 struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; in radeon_audio_dp_mode_set() local
684 if (!dig || !dig->afmt) in radeon_audio_dp_mode_set()
690 if (connector->display_info.has_audio) { in radeon_audio_dp_mode_set()
694 radeon_audio_set_dto(encoder, rdev->clock.vco_freq * 10); in radeon_audio_dp_mode_set()
708 if (radeon_encoder->audio && radeon_encoder->audio->mode_set) in radeon_audio_mode_set()
709 radeon_encoder->audio->mode_set(encoder, mode); in radeon_audio_mode_set()
716 if (radeon_encoder->audio && radeon_encoder->audio->dpms) in radeon_audio_dpms()
717 radeon_encoder->audio->dpms(encoder, mode == DRM_MODE_DPMS_ON); in radeon_audio_dpms()
720 unsigned int radeon_audio_decode_dfs_div(unsigned int div) in radeon_audio_decode_dfs_div() argument
722 if (div >= 8 && div < 64) in radeon_audio_decode_dfs_div()
723 return (div - 8) * 25 + 200; in radeon_audio_decode_dfs_div()
724 else if (div >= 64 && div < 96) in radeon_audio_decode_dfs_div()
725 return (div - 64) * 50 + 1600; in radeon_audio_decode_dfs_div()
726 else if (div >= 96 && div < 128) in radeon_audio_decode_dfs_div()
727 return (div - 96) * 100 + 3200; in radeon_audio_decode_dfs_div()
739 mutex_lock(&rdev->audio.component_mutex); in radeon_audio_component_notify()
740 acomp = rdev->audio.component; in radeon_audio_component_notify()
741 if (acomp && acomp->audio_ops && acomp->audio_ops->pin_eld_notify) in radeon_audio_component_notify()
742 acomp->audio_ops->pin_eld_notify(acomp->audio_ops->audio_ptr, in radeon_audio_component_notify()
743 port, -1); in radeon_audio_component_notify()
744 mutex_unlock(&rdev->audio.component_mutex); in radeon_audio_component_notify()
752 struct radeon_device *rdev = dev->dev_private; in radeon_audio_component_get_eld()
755 struct radeon_encoder_atom_dig *dig; in radeon_audio_component_get_eld() local
760 if (!rdev->audio.enabled || !rdev->mode_info.mode_config_initialized) in radeon_audio_component_get_eld()
763 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in radeon_audio_component_get_eld()
765 connector->helper_private; in radeon_audio_component_get_eld()
766 encoder = connector_funcs->best_encoder(connector); in radeon_audio_component_get_eld()
774 dig = radeon_encoder->enc_priv; in radeon_audio_component_get_eld()
775 if (!dig->pin || dig->pin->id != port) in radeon_audio_component_get_eld()
778 mutex_lock(&connector->eld_mutex); in radeon_audio_component_get_eld()
779 ret = drm_eld_size(connector->eld); in radeon_audio_component_get_eld()
780 memcpy(buf, connector->eld, min(max_bytes, ret)); in radeon_audio_component_get_eld()
781 mutex_unlock(&connector->eld_mutex); in radeon_audio_component_get_eld()
796 struct radeon_device *rdev = dev->dev_private; in radeon_audio_component_bind()
800 return -ENOMEM; in radeon_audio_component_bind()
802 mutex_lock(&rdev->audio.component_mutex); in radeon_audio_component_bind()
803 acomp->ops = &radeon_audio_component_ops; in radeon_audio_component_bind()
804 acomp->dev = kdev; in radeon_audio_component_bind()
805 rdev->audio.component = acomp; in radeon_audio_component_bind()
806 mutex_unlock(&rdev->audio.component_mutex); in radeon_audio_component_bind()
815 struct radeon_device *rdev = dev->dev_private; in radeon_audio_component_unbind()
820 mutex_lock(&rdev->audio.component_mutex); in radeon_audio_component_unbind()
821 rdev->audio.component = NULL; in radeon_audio_component_unbind()
822 acomp->ops = NULL; in radeon_audio_component_unbind()
823 acomp->dev = NULL; in radeon_audio_component_unbind()
824 mutex_unlock(&rdev->audio.component_mutex); in radeon_audio_component_unbind()
834 if (rdev->audio.component_registered || in radeon_audio_component_init()
838 if (!component_add(rdev->dev, &radeon_audio_component_bind_ops)) in radeon_audio_component_init()
839 rdev->audio.component_registered = true; in radeon_audio_component_init()
844 if (rdev->audio.component_registered) { in radeon_audio_component_fini()
845 component_del(rdev->dev, &radeon_audio_component_bind_ops); in radeon_audio_component_fini()
846 rdev->audio.component_registered = false; in radeon_audio_component_fini()