14562236bSHarry Wentland /* 24562236bSHarry Wentland * Copyright 2012-15 Advanced Micro Devices, Inc. 34562236bSHarry Wentland * 44562236bSHarry Wentland * Permission is hereby granted, free of charge, to any person obtaining a 54562236bSHarry Wentland * copy of this software and associated documentation files (the "Software"), 64562236bSHarry Wentland * to deal in the Software without restriction, including without limitation 74562236bSHarry Wentland * the rights to use, copy, modify, merge, publish, distribute, sublicense, 84562236bSHarry Wentland * and/or sell copies of the Software, and to permit persons to whom the 94562236bSHarry Wentland * Software is furnished to do so, subject to the following conditions: 104562236bSHarry Wentland * 114562236bSHarry Wentland * The above copyright notice and this permission notice shall be included in 124562236bSHarry Wentland * all copies or substantial portions of the Software. 134562236bSHarry Wentland * 144562236bSHarry Wentland * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 154562236bSHarry Wentland * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 164562236bSHarry Wentland * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 174562236bSHarry Wentland * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 184562236bSHarry Wentland * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 194562236bSHarry Wentland * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 204562236bSHarry Wentland * OTHER DEALINGS IN THE SOFTWARE. 214562236bSHarry Wentland * 224562236bSHarry Wentland * Authors: AMD 234562236bSHarry Wentland * 244562236bSHarry Wentland */ 254562236bSHarry Wentland 264562236bSHarry Wentland #ifndef __DAL_AUDIO_H__ 274562236bSHarry Wentland #define __DAL_AUDIO_H__ 284562236bSHarry Wentland 294562236bSHarry Wentland #include "audio_types.h" 304562236bSHarry Wentland 314562236bSHarry Wentland struct audio; 324562236bSHarry Wentland 334562236bSHarry Wentland struct audio_funcs { 344562236bSHarry Wentland 354562236bSHarry Wentland bool (*endpoint_valid)(struct audio *audio); 364562236bSHarry Wentland 374562236bSHarry Wentland void (*hw_init)(struct audio *audio); 384562236bSHarry Wentland 394562236bSHarry Wentland void (*az_enable)(struct audio *audio); 404562236bSHarry Wentland 414562236bSHarry Wentland void (*az_disable)(struct audio *audio); 424562236bSHarry Wentland 434562236bSHarry Wentland void (*az_configure)(struct audio *audio, 444562236bSHarry Wentland enum signal_type signal, 454562236bSHarry Wentland const struct audio_crtc_info *crtc_info, 464562236bSHarry Wentland const struct audio_info *audio_info); 474562236bSHarry Wentland 484562236bSHarry Wentland void (*wall_dto_setup)(struct audio *audio, 494562236bSHarry Wentland enum signal_type signal, 504562236bSHarry Wentland const struct audio_crtc_info *crtc_info, 514562236bSHarry Wentland const struct audio_pll_info *pll_info); 524562236bSHarry Wentland 534562236bSHarry Wentland void (*destroy)(struct audio **audio); 544562236bSHarry Wentland }; 554562236bSHarry Wentland 564562236bSHarry Wentland struct audio { 574562236bSHarry Wentland const struct audio_funcs *funcs; 584562236bSHarry Wentland struct dc_context *ctx; 594562236bSHarry Wentland unsigned int inst; 600a32df9cSEryk Brol bool enabled; 614562236bSHarry Wentland }; 624562236bSHarry Wentland 634562236bSHarry Wentland #endif /* __DAL_AUDIO__ */ 64