1*7735a7c9SLee Jones /* dce6_afmt.h -- Private header for radeon driver -*- linux-c -*- 2*7735a7c9SLee Jones * 3*7735a7c9SLee Jones * Copyright 2013 Advanced Micro Devices, Inc. 4*7735a7c9SLee Jones * 5*7735a7c9SLee Jones * Permission is hereby granted, free of charge, to any person obtaining a 6*7735a7c9SLee Jones * copy of this software and associated documentation files (the "Software"), 7*7735a7c9SLee Jones * to deal in the Software without restriction, including without limitation 8*7735a7c9SLee Jones * the rights to use, copy, modify, merge, publish, distribute, sublicense, 9*7735a7c9SLee Jones * and/or sell copies of the Software, and to permit persons to whom the 10*7735a7c9SLee Jones * Software is furnished to do so, subject to the following conditions: 11*7735a7c9SLee Jones * 12*7735a7c9SLee Jones * The above copyright notice and this permission notice shall be included in 13*7735a7c9SLee Jones * all copies or substantial portions of the Software. 14*7735a7c9SLee Jones * 15*7735a7c9SLee Jones * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16*7735a7c9SLee Jones * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17*7735a7c9SLee Jones * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18*7735a7c9SLee Jones * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 19*7735a7c9SLee Jones * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 20*7735a7c9SLee Jones * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 21*7735a7c9SLee Jones * OTHER DEALINGS IN THE SOFTWARE. 22*7735a7c9SLee Jones * 23*7735a7c9SLee Jones */ 24*7735a7c9SLee Jones 25*7735a7c9SLee Jones #ifndef __DCE6_AFMT_H__ 26*7735a7c9SLee Jones #define __DCE6_AFMT_H__ 27*7735a7c9SLee Jones 28*7735a7c9SLee Jones struct cea_sad; 29*7735a7c9SLee Jones struct drm_connector; 30*7735a7c9SLee Jones struct drm_display_mode; 31*7735a7c9SLee Jones struct drm_encoder; 32*7735a7c9SLee Jones struct radeon_crtc; 33*7735a7c9SLee Jones struct radeon_device; 34*7735a7c9SLee Jones 35*7735a7c9SLee Jones u32 dce6_endpoint_rreg(struct radeon_device *rdev, u32 offset, u32 reg); 36*7735a7c9SLee Jones void dce6_endpoint_wreg(struct radeon_device *rdev, u32 offset, u32 reg, u32 v); 37*7735a7c9SLee Jones void dce6_afmt_write_sad_regs(struct drm_encoder *encoder, 38*7735a7c9SLee Jones struct cea_sad *sads, int sad_count); 39*7735a7c9SLee Jones void dce6_afmt_hdmi_write_speaker_allocation(struct drm_encoder *encoder, 40*7735a7c9SLee Jones u8 *sadb, int sad_count); 41*7735a7c9SLee Jones void dce6_afmt_dp_write_speaker_allocation(struct drm_encoder *encoder, 42*7735a7c9SLee Jones u8 *sadb, int sad_count); 43*7735a7c9SLee Jones void dce6_afmt_write_latency_fields(struct drm_encoder *encoder, 44*7735a7c9SLee Jones struct drm_connector *connector, 45*7735a7c9SLee Jones struct drm_display_mode *mode); 46*7735a7c9SLee Jones void dce6_afmt_select_pin(struct drm_encoder *encoder); 47*7735a7c9SLee Jones void dce6_hdmi_audio_set_dto(struct radeon_device *rdev, 48*7735a7c9SLee Jones struct radeon_crtc *crtc, unsigned int clock); 49*7735a7c9SLee Jones void dce6_dp_audio_set_dto(struct radeon_device *rdev, 50*7735a7c9SLee Jones struct radeon_crtc *crtc, unsigned int clock); 51*7735a7c9SLee Jones 52*7735a7c9SLee Jones #endif /* __DCE6_AFMT_H__ */ 53