Rev 6105 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6105 | Rev 6321 | ||
---|---|---|---|
Line 20... | Line 20... | ||
20 | * OTHER DEALINGS IN THE SOFTWARE. |
20 | * OTHER DEALINGS IN THE SOFTWARE. |
21 | * |
21 | * |
22 | * Authors: Slava Grigorev |
22 | * Authors: Slava Grigorev |
23 | */ |
23 | */ |
Line 24... | Line 24... | ||
24 | 24 | ||
25 | //#include |
25 | #include |
26 | #include |
26 | #include |
27 | #include |
27 | #include |
28 | #include "radeon.h" |
28 | #include "radeon.h" |
29 | #include "atom.h" |
29 | #include "atom.h" |
Line 737... | Line 737... | ||
737 | struct drm_device *dev = encoder->dev; |
737 | struct drm_device *dev = encoder->dev; |
738 | struct radeon_device *rdev = dev->dev_private; |
738 | struct radeon_device *rdev = dev->dev_private; |
739 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); |
739 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); |
740 | struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; |
740 | struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; |
741 | struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); |
741 | struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); |
742 | struct radeon_connector *radeon_connector = to_radeon_connector(connector); |
- | |
743 | struct radeon_connector_atom_dig *dig_connector = |
- | |
744 | radeon_connector->con_priv; |
- | |
Line 745... | Line 742... | ||
745 | 742 | ||
746 | if (!dig || !dig->afmt) |
743 | if (!dig || !dig->afmt) |
Line 747... | Line 744... | ||
747 | return; |
744 | return; |
Line 751... | Line 748... | ||
751 | 748 | ||
752 | if (drm_detect_monitor_audio(radeon_connector_edid(connector))) { |
749 | if (drm_detect_monitor_audio(radeon_connector_edid(connector))) { |
753 | radeon_audio_write_speaker_allocation(encoder); |
750 | radeon_audio_write_speaker_allocation(encoder); |
754 | radeon_audio_write_sad_regs(encoder); |
751 | radeon_audio_write_sad_regs(encoder); |
755 | radeon_audio_write_latency_fields(encoder, mode); |
- | |
756 | if (rdev->clock.dp_extclk || ASIC_IS_DCE5(rdev)) |
752 | radeon_audio_write_latency_fields(encoder, mode); |
757 | radeon_audio_set_dto(encoder, rdev->clock.default_dispclk * 10); |
- | |
758 | else |
- | |
759 | radeon_audio_set_dto(encoder, dig_connector->dp_clock); |
753 | radeon_audio_set_dto(encoder, rdev->clock.vco_freq * 10); |
760 | radeon_audio_set_audio_packet(encoder); |
754 | radeon_audio_set_audio_packet(encoder); |
Line 761... | Line 755... | ||
761 | radeon_audio_select_pin(encoder); |
755 | radeon_audio_select_pin(encoder); |
762 | 756 | ||
Line 779... | Line 773... | ||
779 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); |
773 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); |
Line 780... | Line 774... | ||
780 | 774 | ||
781 | if (radeon_encoder->audio && radeon_encoder->audio->dpms) |
775 | if (radeon_encoder->audio && radeon_encoder->audio->dpms) |
782 | radeon_encoder->audio->dpms(encoder, mode == DRM_MODE_DPMS_ON); |
776 | radeon_encoder->audio->dpms(encoder, mode == DRM_MODE_DPMS_ON); |
- | 777 | } |
|
- | 778 | ||
- | 779 | unsigned int radeon_audio_decode_dfs_div(unsigned int div) |
|
- | 780 | { |
|
- | 781 | if (div >= 8 && div < 64) |
|
- | 782 | return (div - 8) * 25 + 200; |
|
- | 783 | else if (div >= 64 && div < 96) |
|
- | 784 | return (div - 64) * 50 + 1600; |
|
- | 785 | else if (div >= 96 && div < 128) |
|
- | 786 | return (div - 96) * 100 + 3200; |
|
- | 787 | else |
|
- | 788 | return 0; |