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