1 /* 2 # Copyright (c) 2024, Intel Corporation 3 # 4 # Permission is hereby granted, free of charge, to any person obtaining a 5 # copy of this software and associated documentation files (the "Software"), 6 # to deal in the Software without restriction, including without limitation 7 # the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 # and/or sell copies of the Software, and to permit persons to whom the 9 # Software is furnished to do so, subject to the following conditions: 10 # 11 # The above copyright notice and this permission notice shall be included 12 # in all copies or substantial portions of the Software. 13 # 14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 18 # OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19 # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20 # OTHER DEALINGS IN THE SOFTWARE. 21 */ 22 //! 23 //! \file mhw_vdbox_avp_impl_xe2_lpm.h 24 //! \brief MHW VDBOX AVP interface common base for Xe2_LPM 25 //! \details 26 //! 27 28 #ifndef __MHW_VDBOX_AVP_IMPL_XE2_LPM_H__ 29 #define __MHW_VDBOX_AVP_IMPL_XE2_LPM_H__ 30 31 #include "mhw_vdbox_avp_impl_xe2_lpm_base.h" 32 #include "mhw_vdbox_avp_hwcmd_xe2_lpm.h" 33 34 #ifdef IGFX_AVP_INTERFACE_EXT_SUPPORT 35 #include "mhw_vdbox_avp_impl_xe2_lpm_ext.h" 36 #endif 37 38 namespace mhw 39 { 40 namespace vdbox 41 { 42 namespace avp 43 { 44 namespace xe2_lpm_base 45 { 46 namespace xe2_lpm 47 { 48 class Impl : public BaseImpl<Cmd> 49 { 50 protected: 51 using cmd_t = Cmd; 52 using base_t = BaseImpl<cmd_t>; 53 54 public: Impl(PMOS_INTERFACE osItf)55 Impl(PMOS_INTERFACE osItf) : base_t(osItf){}; 56 _MHW_SETCMD_OVERRIDE_DECL(AVP_PIC_STATE)57 _MHW_SETCMD_OVERRIDE_DECL(AVP_PIC_STATE) 58 { 59 _MHW_SETCMD_CALLBASE(AVP_PIC_STATE); 60 61 #define DO_FIELDS() \ 62 DO_FIELD(DW64, VDAQMenable, params.VdaqmEnable); 63 64 #ifdef _MEDIA_RESERVED 65 #define DO_FIELDS_EXT() \ 66 __MHW_VDBOX_AVP_WRAPPER_EXT(AVP_PIC_STATE_IMPL_XE2_LPM) 67 #endif 68 #include "mhw_hwcmd_process_cmdfields.h" 69 } 70 _MHW_SETCMD_OVERRIDE_DECL(AVP_PIPE_BUF_ADDR_STATE)71 _MHW_SETCMD_OVERRIDE_DECL(AVP_PIPE_BUF_ADDR_STATE) 72 { 73 _MHW_SETCMD_CALLBASE(AVP_PIPE_BUF_ADDR_STATE); 74 75 #ifdef _MEDIA_RESERVED 76 __MHW_VDBOX_AVP_WRAPPER_EXT(AVP_PIPE_BUF_ADDR_STATE_IMPL_XE2_LPM) 77 #endif 78 return MOS_STATUS_SUCCESS; 79 } 80 MEDIA_CLASS_DEFINE_END(mhw__vdbox__avp__xe2_lpm_base__xe2_lpm__Impl) 81 }; 82 } // namespace xe2_lpm 83 } // namespace xe2_lpm_base 84 } // namespace avp 85 } // namespace vdbox 86 } // namespace mhw 87 88 #endif // __MHW_VDBOX_AVP_IMPL_XE2_LPM_H__ 89