1 #define NVOC_KERN_DISP_H_PRIVATE_ACCESS_ALLOWED
2 #include "nvoc/runtime.h"
3 #include "nvoc/rtti.h"
4 #include "nvtypes.h"
5 #include "nvport/nvport.h"
6 #include "nvport/inline/util_valist.h"
7 #include "utils/nvassert.h"
8 #include "g_kern_disp_nvoc.h"
9 
10 #ifdef DEBUG
11 char __nvoc_class_id_uniqueness_check_0x55952e = 1;
12 #endif
13 
14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_KernelDisplay;
15 
16 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object;
17 
18 extern const struct NVOC_CLASS_DEF __nvoc_class_def_OBJENGSTATE;
19 
20 extern const struct NVOC_CLASS_DEF __nvoc_class_def_IntrService;
21 
22 void __nvoc_init_KernelDisplay(KernelDisplay*, RmHalspecOwner* );
23 void __nvoc_init_funcTable_KernelDisplay(KernelDisplay*, RmHalspecOwner* );
24 NV_STATUS __nvoc_ctor_KernelDisplay(KernelDisplay*, RmHalspecOwner* );
25 void __nvoc_init_dataField_KernelDisplay(KernelDisplay*, RmHalspecOwner* );
26 void __nvoc_dtor_KernelDisplay(KernelDisplay*);
27 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelDisplay;
28 
29 static const struct NVOC_RTTI __nvoc_rtti_KernelDisplay_KernelDisplay = {
30     /*pClassDef=*/          &__nvoc_class_def_KernelDisplay,
31     /*dtor=*/               (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_KernelDisplay,
32     /*offset=*/             0,
33 };
34 
35 static const struct NVOC_RTTI __nvoc_rtti_KernelDisplay_Object = {
36     /*pClassDef=*/          &__nvoc_class_def_Object,
37     /*dtor=*/               &__nvoc_destructFromBase,
38     /*offset=*/             NV_OFFSETOF(KernelDisplay, __nvoc_base_OBJENGSTATE.__nvoc_base_Object),
39 };
40 
41 static const struct NVOC_RTTI __nvoc_rtti_KernelDisplay_OBJENGSTATE = {
42     /*pClassDef=*/          &__nvoc_class_def_OBJENGSTATE,
43     /*dtor=*/               &__nvoc_destructFromBase,
44     /*offset=*/             NV_OFFSETOF(KernelDisplay, __nvoc_base_OBJENGSTATE),
45 };
46 
47 static const struct NVOC_RTTI __nvoc_rtti_KernelDisplay_IntrService = {
48     /*pClassDef=*/          &__nvoc_class_def_IntrService,
49     /*dtor=*/               &__nvoc_destructFromBase,
50     /*offset=*/             NV_OFFSETOF(KernelDisplay, __nvoc_base_IntrService),
51 };
52 
53 static const struct NVOC_CASTINFO __nvoc_castinfo_KernelDisplay = {
54     /*numRelatives=*/       4,
55     /*relatives=*/ {
56         &__nvoc_rtti_KernelDisplay_KernelDisplay,
57         &__nvoc_rtti_KernelDisplay_IntrService,
58         &__nvoc_rtti_KernelDisplay_OBJENGSTATE,
59         &__nvoc_rtti_KernelDisplay_Object,
60     },
61 };
62 
63 const struct NVOC_CLASS_DEF __nvoc_class_def_KernelDisplay =
64 {
65     /*classInfo=*/ {
66         /*size=*/               sizeof(KernelDisplay),
67         /*classId=*/            classId(KernelDisplay),
68         /*providerId=*/         &__nvoc_rtti_provider,
69 #if NV_PRINTF_STRINGS_ALLOWED
70         /*name=*/               "KernelDisplay",
71 #endif
72     },
73     /*objCreatefn=*/        (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_KernelDisplay,
74     /*pCastInfo=*/          &__nvoc_castinfo_KernelDisplay,
75     /*pExportInfo=*/        &__nvoc_export_info_KernelDisplay
76 };
77 
__nvoc_thunk_KernelDisplay_engstateConstructEngine(OBJGPU * pGpu,struct OBJENGSTATE * pKernelDisplay,ENGDESCRIPTOR engDesc)78 static NV_STATUS __nvoc_thunk_KernelDisplay_engstateConstructEngine(OBJGPU *pGpu, struct OBJENGSTATE *pKernelDisplay, ENGDESCRIPTOR engDesc) {
79     return kdispConstructEngine(pGpu, (struct KernelDisplay *)(((unsigned char *)pKernelDisplay) - __nvoc_rtti_KernelDisplay_OBJENGSTATE.offset), engDesc);
80 }
81 
__nvoc_thunk_KernelDisplay_engstateStatePreInitLocked(OBJGPU * pGpu,struct OBJENGSTATE * pKernelDisplay)82 static NV_STATUS __nvoc_thunk_KernelDisplay_engstateStatePreInitLocked(OBJGPU *pGpu, struct OBJENGSTATE *pKernelDisplay) {
83     return kdispStatePreInitLocked(pGpu, (struct KernelDisplay *)(((unsigned char *)pKernelDisplay) - __nvoc_rtti_KernelDisplay_OBJENGSTATE.offset));
84 }
85 
__nvoc_thunk_KernelDisplay_engstateStateInitLocked(OBJGPU * pGpu,struct OBJENGSTATE * pKernelDisplay)86 static NV_STATUS __nvoc_thunk_KernelDisplay_engstateStateInitLocked(OBJGPU *pGpu, struct OBJENGSTATE *pKernelDisplay) {
87     return kdispStateInitLocked(pGpu, (struct KernelDisplay *)(((unsigned char *)pKernelDisplay) - __nvoc_rtti_KernelDisplay_OBJENGSTATE.offset));
88 }
89 
__nvoc_thunk_KernelDisplay_engstateStateDestroy(OBJGPU * pGpu,struct OBJENGSTATE * pKernelDisplay)90 static void __nvoc_thunk_KernelDisplay_engstateStateDestroy(OBJGPU *pGpu, struct OBJENGSTATE *pKernelDisplay) {
91     kdispStateDestroy(pGpu, (struct KernelDisplay *)(((unsigned char *)pKernelDisplay) - __nvoc_rtti_KernelDisplay_OBJENGSTATE.offset));
92 }
93 
__nvoc_thunk_KernelDisplay_engstateStateLoad(OBJGPU * pGpu,struct OBJENGSTATE * pKernelDisplay,NvU32 flags)94 static NV_STATUS __nvoc_thunk_KernelDisplay_engstateStateLoad(OBJGPU *pGpu, struct OBJENGSTATE *pKernelDisplay, NvU32 flags) {
95     return kdispStateLoad(pGpu, (struct KernelDisplay *)(((unsigned char *)pKernelDisplay) - __nvoc_rtti_KernelDisplay_OBJENGSTATE.offset), flags);
96 }
97 
__nvoc_thunk_KernelDisplay_engstateStateUnload(OBJGPU * pGpu,struct OBJENGSTATE * pKernelDisplay,NvU32 flags)98 static NV_STATUS __nvoc_thunk_KernelDisplay_engstateStateUnload(OBJGPU *pGpu, struct OBJENGSTATE *pKernelDisplay, NvU32 flags) {
99     return kdispStateUnload(pGpu, (struct KernelDisplay *)(((unsigned char *)pKernelDisplay) - __nvoc_rtti_KernelDisplay_OBJENGSTATE.offset), flags);
100 }
101 
__nvoc_thunk_KernelDisplay_intrservRegisterIntrService(OBJGPU * pGpu,struct IntrService * pKernelDisplay,IntrServiceRecord pRecords[171])102 static void __nvoc_thunk_KernelDisplay_intrservRegisterIntrService(OBJGPU *pGpu, struct IntrService *pKernelDisplay, IntrServiceRecord pRecords[171]) {
103     kdispRegisterIntrService(pGpu, (struct KernelDisplay *)(((unsigned char *)pKernelDisplay) - __nvoc_rtti_KernelDisplay_IntrService.offset), pRecords);
104 }
105 
__nvoc_thunk_KernelDisplay_intrservServiceInterrupt(OBJGPU * pGpu,struct IntrService * pKernelDisplay,IntrServiceServiceInterruptArguments * pParams)106 static NvU32 __nvoc_thunk_KernelDisplay_intrservServiceInterrupt(OBJGPU *pGpu, struct IntrService *pKernelDisplay, IntrServiceServiceInterruptArguments *pParams) {
107     return kdispServiceInterrupt(pGpu, (struct KernelDisplay *)(((unsigned char *)pKernelDisplay) - __nvoc_rtti_KernelDisplay_IntrService.offset), pParams);
108 }
109 
__nvoc_thunk_IntrService_kdispServiceNotificationInterrupt(OBJGPU * pGpu,struct KernelDisplay * pIntrService,IntrServiceServiceNotificationInterruptArguments * pParams)110 static NV_STATUS __nvoc_thunk_IntrService_kdispServiceNotificationInterrupt(OBJGPU *pGpu, struct KernelDisplay *pIntrService, IntrServiceServiceNotificationInterruptArguments *pParams) {
111     return intrservServiceNotificationInterrupt(pGpu, (struct IntrService *)(((unsigned char *)pIntrService) + __nvoc_rtti_KernelDisplay_IntrService.offset), pParams);
112 }
113 
__nvoc_thunk_OBJENGSTATE_kdispStatePreLoad(POBJGPU pGpu,struct KernelDisplay * pEngstate,NvU32 arg0)114 static NV_STATUS __nvoc_thunk_OBJENGSTATE_kdispStatePreLoad(POBJGPU pGpu, struct KernelDisplay *pEngstate, NvU32 arg0) {
115     return engstateStatePreLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelDisplay_OBJENGSTATE.offset), arg0);
116 }
117 
__nvoc_thunk_OBJENGSTATE_kdispStatePostUnload(POBJGPU pGpu,struct KernelDisplay * pEngstate,NvU32 arg0)118 static NV_STATUS __nvoc_thunk_OBJENGSTATE_kdispStatePostUnload(POBJGPU pGpu, struct KernelDisplay *pEngstate, NvU32 arg0) {
119     return engstateStatePostUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelDisplay_OBJENGSTATE.offset), arg0);
120 }
121 
__nvoc_thunk_OBJENGSTATE_kdispStatePreUnload(POBJGPU pGpu,struct KernelDisplay * pEngstate,NvU32 arg0)122 static NV_STATUS __nvoc_thunk_OBJENGSTATE_kdispStatePreUnload(POBJGPU pGpu, struct KernelDisplay *pEngstate, NvU32 arg0) {
123     return engstateStatePreUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelDisplay_OBJENGSTATE.offset), arg0);
124 }
125 
__nvoc_thunk_OBJENGSTATE_kdispStateInitUnlocked(POBJGPU pGpu,struct KernelDisplay * pEngstate)126 static NV_STATUS __nvoc_thunk_OBJENGSTATE_kdispStateInitUnlocked(POBJGPU pGpu, struct KernelDisplay *pEngstate) {
127     return engstateStateInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelDisplay_OBJENGSTATE.offset));
128 }
129 
__nvoc_thunk_OBJENGSTATE_kdispInitMissing(POBJGPU pGpu,struct KernelDisplay * pEngstate)130 static void __nvoc_thunk_OBJENGSTATE_kdispInitMissing(POBJGPU pGpu, struct KernelDisplay *pEngstate) {
131     engstateInitMissing(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelDisplay_OBJENGSTATE.offset));
132 }
133 
__nvoc_thunk_OBJENGSTATE_kdispStatePreInitUnlocked(POBJGPU pGpu,struct KernelDisplay * pEngstate)134 static NV_STATUS __nvoc_thunk_OBJENGSTATE_kdispStatePreInitUnlocked(POBJGPU pGpu, struct KernelDisplay *pEngstate) {
135     return engstateStatePreInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelDisplay_OBJENGSTATE.offset));
136 }
137 
__nvoc_thunk_IntrService_kdispClearInterrupt(OBJGPU * pGpu,struct KernelDisplay * pIntrService,IntrServiceClearInterruptArguments * pParams)138 static NvBool __nvoc_thunk_IntrService_kdispClearInterrupt(OBJGPU *pGpu, struct KernelDisplay *pIntrService, IntrServiceClearInterruptArguments *pParams) {
139     return intrservClearInterrupt(pGpu, (struct IntrService *)(((unsigned char *)pIntrService) + __nvoc_rtti_KernelDisplay_IntrService.offset), pParams);
140 }
141 
__nvoc_thunk_OBJENGSTATE_kdispStatePostLoad(POBJGPU pGpu,struct KernelDisplay * pEngstate,NvU32 arg0)142 static NV_STATUS __nvoc_thunk_OBJENGSTATE_kdispStatePostLoad(POBJGPU pGpu, struct KernelDisplay *pEngstate, NvU32 arg0) {
143     return engstateStatePostLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelDisplay_OBJENGSTATE.offset), arg0);
144 }
145 
__nvoc_thunk_OBJENGSTATE_kdispIsPresent(POBJGPU pGpu,struct KernelDisplay * pEngstate)146 static NvBool __nvoc_thunk_OBJENGSTATE_kdispIsPresent(POBJGPU pGpu, struct KernelDisplay *pEngstate) {
147     return engstateIsPresent(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelDisplay_OBJENGSTATE.offset));
148 }
149 
150 const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelDisplay =
151 {
152     /*numEntries=*/     0,
153     /*pExportEntries=*/  0
154 };
155 
156 void __nvoc_dtor_OBJENGSTATE(OBJENGSTATE*);
157 void __nvoc_dtor_IntrService(IntrService*);
__nvoc_dtor_KernelDisplay(KernelDisplay * pThis)158 void __nvoc_dtor_KernelDisplay(KernelDisplay *pThis) {
159     __nvoc_kdispDestruct(pThis);
160     __nvoc_dtor_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
161     __nvoc_dtor_IntrService(&pThis->__nvoc_base_IntrService);
162     PORT_UNREFERENCED_VARIABLE(pThis);
163 }
164 
__nvoc_init_dataField_KernelDisplay(KernelDisplay * pThis,RmHalspecOwner * pRmhalspecowner)165 void __nvoc_init_dataField_KernelDisplay(KernelDisplay *pThis, RmHalspecOwner *pRmhalspecowner) {
166     RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
167     const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
168     ChipHal *chipHal = &pRmhalspecowner->chipHal;
169     const unsigned long chipHal_HalVarIdx = (unsigned long)chipHal->__nvoc_HalVarIdx;
170     DispIpHal *dispIpHal = &pRmhalspecowner->dispIpHal;
171     const unsigned long dispIpHal_HalVarIdx = (unsigned long)dispIpHal->__nvoc_HalVarIdx;
172     PORT_UNREFERENCED_VARIABLE(pThis);
173     PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
174     PORT_UNREFERENCED_VARIABLE(rmVariantHal);
175     PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
176     PORT_UNREFERENCED_VARIABLE(chipHal);
177     PORT_UNREFERENCED_VARIABLE(chipHal_HalVarIdx);
178     PORT_UNREFERENCED_VARIABLE(dispIpHal);
179     PORT_UNREFERENCED_VARIABLE(dispIpHal_HalVarIdx);
180 
181     // NVOC Property Hal field -- PDB_PROP_KDISP_IS_MISSING
182     if (( ((rmVariantHal_HalVarIdx >> 5) == 0UL) && ((1UL << (rmVariantHal_HalVarIdx & 0x1f)) & 0x00000001UL) )) /* RmVariantHal: VF */
183     {
184         pThis->setProperty(pThis, PDB_PROP_KDISP_IS_MISSING, ((NvBool)(0 == 0)));
185     }
186     else if (( ((rmVariantHal_HalVarIdx >> 5) == 0UL) && ((1UL << (rmVariantHal_HalVarIdx & 0x1f)) & 0x00000002UL) )) /* RmVariantHal: PF_KERNEL_ONLY */
187     {
188         pThis->setProperty(pThis, PDB_PROP_KDISP_IS_MISSING, ((NvBool)(0 != 0)));
189     }
190 
191     // NVOC Property Hal field -- PDB_PROP_KDISP_IMP_ENABLE
192     if (((( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x11f0ffe0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 | GA100 | GA102 | GA103 | GA104 | GA106 | GA107 | AD102 | AD103 | AD104 | AD106 | AD107 | GH100 */  && (( ((rmVariantHal_HalVarIdx >> 5) == 0UL) && ((1UL << (rmVariantHal_HalVarIdx & 0x1f)) & 0x00000003UL) )) /* RmVariantHal: VF | PF_KERNEL_ONLY */ ))
193     {
194         pThis->setProperty(pThis, PDB_PROP_KDISP_IMP_ENABLE, ((NvBool)(0 == 0)));
195     }
196 
197     // NVOC Property Hal field -- PDB_PROP_KDISP_BUG_2089053_SERIALIZE_AGGRESSIVE_VBLANK_ALWAYS
198     if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x11f0ffe0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 | GA100 | GA102 | GA103 | GA104 | GA106 | GA107 | AD102 | AD103 | AD104 | AD106 | AD107 | GH100 */
199     {
200         pThis->setProperty(pThis, PDB_PROP_KDISP_BUG_2089053_SERIALIZE_AGGRESSIVE_VBLANK_ALWAYS, ((NvBool)(0 == 0)));
201     }
202 
203     pThis->pStaticInfo = ((void *)0);
204 
205     pThis->bWarPurgeSatellitesOnCoreFree = ((NvBool)(0 != 0));
206 
207     pThis->bExtdevIntrSupported = ((NvBool)(0 != 0));
208 }
209 
210 NV_STATUS __nvoc_ctor_OBJENGSTATE(OBJENGSTATE* );
211 NV_STATUS __nvoc_ctor_IntrService(IntrService* );
__nvoc_ctor_KernelDisplay(KernelDisplay * pThis,RmHalspecOwner * pRmhalspecowner)212 NV_STATUS __nvoc_ctor_KernelDisplay(KernelDisplay *pThis, RmHalspecOwner *pRmhalspecowner) {
213     NV_STATUS status = NV_OK;
214     status = __nvoc_ctor_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
215     if (status != NV_OK) goto __nvoc_ctor_KernelDisplay_fail_OBJENGSTATE;
216     status = __nvoc_ctor_IntrService(&pThis->__nvoc_base_IntrService);
217     if (status != NV_OK) goto __nvoc_ctor_KernelDisplay_fail_IntrService;
218     __nvoc_init_dataField_KernelDisplay(pThis, pRmhalspecowner);
219     goto __nvoc_ctor_KernelDisplay_exit; // Success
220 
221 __nvoc_ctor_KernelDisplay_fail_IntrService:
222     __nvoc_dtor_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
223 __nvoc_ctor_KernelDisplay_fail_OBJENGSTATE:
224 __nvoc_ctor_KernelDisplay_exit:
225 
226     return status;
227 }
228 
__nvoc_init_funcTable_KernelDisplay_1(KernelDisplay * pThis,RmHalspecOwner * pRmhalspecowner)229 static void __nvoc_init_funcTable_KernelDisplay_1(KernelDisplay *pThis, RmHalspecOwner *pRmhalspecowner) {
230     RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
231     const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
232     ChipHal *chipHal = &pRmhalspecowner->chipHal;
233     const unsigned long chipHal_HalVarIdx = (unsigned long)chipHal->__nvoc_HalVarIdx;
234     DispIpHal *dispIpHal = &pRmhalspecowner->dispIpHal;
235     const unsigned long dispIpHal_HalVarIdx = (unsigned long)dispIpHal->__nvoc_HalVarIdx;
236     PORT_UNREFERENCED_VARIABLE(pThis);
237     PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
238     PORT_UNREFERENCED_VARIABLE(rmVariantHal);
239     PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
240     PORT_UNREFERENCED_VARIABLE(chipHal);
241     PORT_UNREFERENCED_VARIABLE(chipHal_HalVarIdx);
242     PORT_UNREFERENCED_VARIABLE(dispIpHal);
243     PORT_UNREFERENCED_VARIABLE(dispIpHal_HalVarIdx);
244 
245     pThis->__kdispConstructEngine__ = &kdispConstructEngine_IMPL;
246 
247     pThis->__kdispStatePreInitLocked__ = &kdispStatePreInitLocked_IMPL;
248 
249     pThis->__kdispStateInitLocked__ = &kdispStateInitLocked_IMPL;
250 
251     pThis->__kdispStateDestroy__ = &kdispStateDestroy_IMPL;
252 
253     pThis->__kdispStateLoad__ = &kdispStateLoad_IMPL;
254 
255     pThis->__kdispStateUnload__ = &kdispStateUnload_IMPL;
256 
257     pThis->__kdispRegisterIntrService__ = &kdispRegisterIntrService_IMPL;
258 
259     // Hal function -- kdispServiceInterrupt
260     pThis->__kdispServiceInterrupt__ = &kdispServiceInterrupt_acff5e;
261 
262     // Hal function -- kdispSelectClass
263     if (( ((dispIpHal_HalVarIdx >> 5) == 0UL) && ((1UL << (dispIpHal_HalVarIdx & 0x1f)) & 0x00020000UL) )) /* DispIpHal: DISPv0000 */
264     {
265         pThis->__kdispSelectClass__ = &kdispSelectClass_46f6a7;
266     }
267     else
268     {
269         pThis->__kdispSelectClass__ = &kdispSelectClass_v03_00_KERNEL;
270     }
271 
272     // Hal function -- kdispGetChannelNum
273     if (( ((dispIpHal_HalVarIdx >> 5) == 0UL) && ((1UL << (dispIpHal_HalVarIdx & 0x1f)) & 0x00020000UL) )) /* DispIpHal: DISPv0000 */
274     {
275         pThis->__kdispGetChannelNum__ = &kdispGetChannelNum_46f6a7;
276     }
277     else
278     {
279         pThis->__kdispGetChannelNum__ = &kdispGetChannelNum_v03_00;
280     }
281 
282     // Hal function -- kdispGetDisplayCapsBaseAndSize
283     if (((( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000400UL) )) /* ChipHal: GA100 | GH100 */  && (( ((dispIpHal_HalVarIdx >> 5) == 0UL) && ((1UL << (dispIpHal_HalVarIdx & 0x1f)) & 0x00020000UL) )) /* DispIpHal: DISPv0000 */ ))
284     {
285         pThis->__kdispGetDisplayCapsBaseAndSize__ = &kdispGetDisplayCapsBaseAndSize_b3696a;
286     }
287     else
288     {
289         pThis->__kdispGetDisplayCapsBaseAndSize__ = &kdispGetDisplayCapsBaseAndSize_v03_00;
290     }
291 
292     // Hal function -- kdispGetDisplaySfUserBaseAndSize
293     if (( ((dispIpHal_HalVarIdx >> 5) == 0UL) && ((1UL << (dispIpHal_HalVarIdx & 0x1f)) & 0x00020000UL) )) /* DispIpHal: DISPv0000 */
294     {
295         pThis->__kdispGetDisplaySfUserBaseAndSize__ = &kdispGetDisplaySfUserBaseAndSize_b3696a;
296     }
297     else
298     {
299         pThis->__kdispGetDisplaySfUserBaseAndSize__ = &kdispGetDisplaySfUserBaseAndSize_v03_00;
300     }
301 
302     // Hal function -- kdispGetDisplayChannelUserBaseAndSize
303     if (( ((dispIpHal_HalVarIdx >> 5) == 0UL) && ((1UL << (dispIpHal_HalVarIdx & 0x1f)) & 0x00020000UL) )) /* DispIpHal: DISPv0000 */
304     {
305         pThis->__kdispGetDisplayChannelUserBaseAndSize__ = &kdispGetDisplayChannelUserBaseAndSize_46f6a7;
306     }
307     else
308     {
309         pThis->__kdispGetDisplayChannelUserBaseAndSize__ = &kdispGetDisplayChannelUserBaseAndSize_v03_00;
310     }
311 
312     // Hal function -- kdispGetVgaWorkspaceBase
313     if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000400UL) )) /* ChipHal: GA100 | GH100 */
314     {
315         pThis->__kdispGetVgaWorkspaceBase__ = &kdispGetVgaWorkspaceBase_491d52;
316     }
317     else
318     {
319         pThis->__kdispGetVgaWorkspaceBase__ = &kdispGetVgaWorkspaceBase_v04_00;
320     }
321 
322     // Hal function -- kdispReadRgLineCountAndFrameCount
323     if (( ((dispIpHal_HalVarIdx >> 5) == 0UL) && ((1UL << (dispIpHal_HalVarIdx & 0x1f)) & 0x00004c00UL) )) /* DispIpHal: DISPv0400 | DISPv0401 | DISPv0404 */
324     {
325         pThis->__kdispReadRgLineCountAndFrameCount__ = &kdispReadRgLineCountAndFrameCount_v03_00_KERNEL;
326     }
327     // default
328     else
329     {
330         pThis->__kdispReadRgLineCountAndFrameCount__ = &kdispReadRgLineCountAndFrameCount_46f6a7;
331     }
332 
333     // Hal function -- kdispRestoreOriginalLsrMinTime
334     if (((( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000400UL) )) /* ChipHal: GA100 | GH100 */  && (( ((dispIpHal_HalVarIdx >> 5) == 0UL) && ((1UL << (dispIpHal_HalVarIdx & 0x1f)) & 0x00020000UL) )) /* DispIpHal: DISPv0000 */ ))
335     {
336         pThis->__kdispRestoreOriginalLsrMinTime__ = &kdispRestoreOriginalLsrMinTime_b3696a;
337     }
338     else
339     {
340         pThis->__kdispRestoreOriginalLsrMinTime__ = &kdispRestoreOriginalLsrMinTime_v03_00;
341     }
342 
343     // Hal function -- kdispComputeLsrMinTimeValue
344     if (( ((dispIpHal_HalVarIdx >> 5) == 0UL) && ((1UL << (dispIpHal_HalVarIdx & 0x1f)) & 0x00020000UL) )) /* DispIpHal: DISPv0000 */
345     {
346         pThis->__kdispComputeLsrMinTimeValue__ = &kdispComputeLsrMinTimeValue_56cd7a;
347     }
348     else
349     {
350         pThis->__kdispComputeLsrMinTimeValue__ = &kdispComputeLsrMinTimeValue_v02_07;
351     }
352 
353     // Hal function -- kdispSetSwapBarrierLsrMinTime
354     if (((( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000400UL) )) /* ChipHal: GA100 | GH100 */  && (( ((dispIpHal_HalVarIdx >> 5) == 0UL) && ((1UL << (dispIpHal_HalVarIdx & 0x1f)) & 0x00020000UL) )) /* DispIpHal: DISPv0000 */ ))
355     {
356         pThis->__kdispSetSwapBarrierLsrMinTime__ = &kdispSetSwapBarrierLsrMinTime_b3696a;
357     }
358     else
359     {
360         pThis->__kdispSetSwapBarrierLsrMinTime__ = &kdispSetSwapBarrierLsrMinTime_v03_00;
361     }
362 
363     // Hal function -- kdispGetRgScanLock
364     if (( ((dispIpHal_HalVarIdx >> 5) == 0UL) && ((1UL << (dispIpHal_HalVarIdx & 0x1f)) & 0x00004c00UL) )) /* DispIpHal: DISPv0400 | DISPv0401 | DISPv0404 */
365     {
366         pThis->__kdispGetRgScanLock__ = &kdispGetRgScanLock_v02_01;
367     }
368     // default
369     else
370     {
371         pThis->__kdispGetRgScanLock__ = &kdispGetRgScanLock_92bfc3;
372     }
373 
374     // Hal function -- kdispDetectSliLink
375     if (( ((dispIpHal_HalVarIdx >> 5) == 0UL) && ((1UL << (dispIpHal_HalVarIdx & 0x1f)) & 0x00004c00UL) )) /* DispIpHal: DISPv0400 | DISPv0401 | DISPv0404 */
376     {
377         pThis->__kdispDetectSliLink__ = &kdispDetectSliLink_v04_00;
378     }
379     // default
380     else
381     {
382         pThis->__kdispDetectSliLink__ = &kdispDetectSliLink_92bfc3;
383     }
384 
385     // Hal function -- kdispInitRegistryOverrides
386     if (((( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000400UL) )) /* ChipHal: GA100 | GH100 */  && (( ((dispIpHal_HalVarIdx >> 5) == 0UL) && ((1UL << (dispIpHal_HalVarIdx & 0x1f)) & 0x00020000UL) )) /* DispIpHal: DISPv0000 */ ))
387     {
388         pThis->__kdispInitRegistryOverrides__ = &kdispInitRegistryOverrides_b3696a;
389     }
390     // default
391     else
392     {
393         pThis->__kdispInitRegistryOverrides__ = &kdispInitRegistryOverrides_IMPL;
394     }
395 
396     // Hal function -- kdispGetPBTargetAperture
397     if (( ((dispIpHal_HalVarIdx >> 5) == 0UL) && ((1UL << (dispIpHal_HalVarIdx & 0x1f)) & 0x00004c00UL) )) /* DispIpHal: DISPv0400 | DISPv0401 | DISPv0404 */
398     {
399         pThis->__kdispGetPBTargetAperture__ = &kdispGetPBTargetAperture_v03_00;
400     }
401     // default
402     else
403     {
404         pThis->__kdispGetPBTargetAperture__ = &kdispGetPBTargetAperture_15a734;
405     }
406 
407     pThis->__nvoc_base_OBJENGSTATE.__engstateConstructEngine__ = &__nvoc_thunk_KernelDisplay_engstateConstructEngine;
408 
409     pThis->__nvoc_base_OBJENGSTATE.__engstateStatePreInitLocked__ = &__nvoc_thunk_KernelDisplay_engstateStatePreInitLocked;
410 
411     pThis->__nvoc_base_OBJENGSTATE.__engstateStateInitLocked__ = &__nvoc_thunk_KernelDisplay_engstateStateInitLocked;
412 
413     pThis->__nvoc_base_OBJENGSTATE.__engstateStateDestroy__ = &__nvoc_thunk_KernelDisplay_engstateStateDestroy;
414 
415     pThis->__nvoc_base_OBJENGSTATE.__engstateStateLoad__ = &__nvoc_thunk_KernelDisplay_engstateStateLoad;
416 
417     pThis->__nvoc_base_OBJENGSTATE.__engstateStateUnload__ = &__nvoc_thunk_KernelDisplay_engstateStateUnload;
418 
419     pThis->__nvoc_base_IntrService.__intrservRegisterIntrService__ = &__nvoc_thunk_KernelDisplay_intrservRegisterIntrService;
420 
421     pThis->__nvoc_base_IntrService.__intrservServiceInterrupt__ = &__nvoc_thunk_KernelDisplay_intrservServiceInterrupt;
422 
423     pThis->__kdispServiceNotificationInterrupt__ = &__nvoc_thunk_IntrService_kdispServiceNotificationInterrupt;
424 
425     pThis->__kdispStatePreLoad__ = &__nvoc_thunk_OBJENGSTATE_kdispStatePreLoad;
426 
427     pThis->__kdispStatePostUnload__ = &__nvoc_thunk_OBJENGSTATE_kdispStatePostUnload;
428 
429     pThis->__kdispStatePreUnload__ = &__nvoc_thunk_OBJENGSTATE_kdispStatePreUnload;
430 
431     pThis->__kdispStateInitUnlocked__ = &__nvoc_thunk_OBJENGSTATE_kdispStateInitUnlocked;
432 
433     pThis->__kdispInitMissing__ = &__nvoc_thunk_OBJENGSTATE_kdispInitMissing;
434 
435     pThis->__kdispStatePreInitUnlocked__ = &__nvoc_thunk_OBJENGSTATE_kdispStatePreInitUnlocked;
436 
437     pThis->__kdispClearInterrupt__ = &__nvoc_thunk_IntrService_kdispClearInterrupt;
438 
439     pThis->__kdispStatePostLoad__ = &__nvoc_thunk_OBJENGSTATE_kdispStatePostLoad;
440 
441     pThis->__kdispIsPresent__ = &__nvoc_thunk_OBJENGSTATE_kdispIsPresent;
442 }
443 
__nvoc_init_funcTable_KernelDisplay(KernelDisplay * pThis,RmHalspecOwner * pRmhalspecowner)444 void __nvoc_init_funcTable_KernelDisplay(KernelDisplay *pThis, RmHalspecOwner *pRmhalspecowner) {
445     __nvoc_init_funcTable_KernelDisplay_1(pThis, pRmhalspecowner);
446 }
447 
448 void __nvoc_init_OBJENGSTATE(OBJENGSTATE*);
449 void __nvoc_init_IntrService(IntrService*);
__nvoc_init_KernelDisplay(KernelDisplay * pThis,RmHalspecOwner * pRmhalspecowner)450 void __nvoc_init_KernelDisplay(KernelDisplay *pThis, RmHalspecOwner *pRmhalspecowner) {
451     pThis->__nvoc_pbase_KernelDisplay = pThis;
452     pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object;
453     pThis->__nvoc_pbase_OBJENGSTATE = &pThis->__nvoc_base_OBJENGSTATE;
454     pThis->__nvoc_pbase_IntrService = &pThis->__nvoc_base_IntrService;
455     __nvoc_init_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
456     __nvoc_init_IntrService(&pThis->__nvoc_base_IntrService);
457     __nvoc_init_funcTable_KernelDisplay(pThis, pRmhalspecowner);
458 }
459 
__nvoc_objCreate_KernelDisplay(KernelDisplay ** ppThis,Dynamic * pParent,NvU32 createFlags)460 NV_STATUS __nvoc_objCreate_KernelDisplay(KernelDisplay **ppThis, Dynamic *pParent, NvU32 createFlags)
461 {
462     NV_STATUS status;
463     Object *pParentObj = NULL;
464     KernelDisplay *pThis;
465     RmHalspecOwner *pRmhalspecowner;
466 
467     // Assign `pThis`, allocating memory unless suppressed by flag.
468     status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(KernelDisplay), (void**)&pThis, (void**)ppThis);
469     if (status != NV_OK)
470         return status;
471 
472     // Zero is the initial value for everything.
473     portMemSet(pThis, 0, sizeof(KernelDisplay));
474 
475     // Initialize runtime type information.
476     __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_KernelDisplay);
477 
478     pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object.createFlags = createFlags;
479 
480     // pParent must be a valid object that derives from a halspec owner class.
481     NV_ASSERT_OR_RETURN(pParent != NULL, NV_ERR_INVALID_ARGUMENT);
482 
483     // Link the child into the parent unless flagged not to do so.
484     if (!(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
485     {
486         pParentObj = dynamicCast(pParent, Object);
487         objAddChild(pParentObj, &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object);
488     }
489     else
490     {
491         pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object.pParent = NULL;
492     }
493 
494     if ((pRmhalspecowner = dynamicCast(pParent, RmHalspecOwner)) == NULL)
495         pRmhalspecowner = objFindAncestorOfType(RmHalspecOwner, pParent);
496     NV_ASSERT_OR_RETURN(pRmhalspecowner != NULL, NV_ERR_INVALID_ARGUMENT);
497 
498     __nvoc_init_KernelDisplay(pThis, pRmhalspecowner);
499     status = __nvoc_ctor_KernelDisplay(pThis, pRmhalspecowner);
500     if (status != NV_OK) goto __nvoc_objCreate_KernelDisplay_cleanup;
501 
502     // Assignment has no effect if NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT is set.
503     *ppThis = pThis;
504 
505     return NV_OK;
506 
507 __nvoc_objCreate_KernelDisplay_cleanup:
508 
509     // Unlink the child from the parent if it was linked above.
510     if (pParentObj != NULL)
511         objRemoveChild(pParentObj, &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object);
512 
513     // Do not call destructors here since the constructor already called them.
514     if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
515         portMemSet(pThis, 0, sizeof(KernelDisplay));
516     else
517     {
518         portMemFree(pThis);
519         *ppThis = NULL;
520     }
521 
522     // coverity[leaked_storage:FALSE]
523     return status;
524 }
525 
__nvoc_objCreateDynamic_KernelDisplay(KernelDisplay ** ppThis,Dynamic * pParent,NvU32 createFlags,va_list args)526 NV_STATUS __nvoc_objCreateDynamic_KernelDisplay(KernelDisplay **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
527     NV_STATUS status;
528 
529     status = __nvoc_objCreate_KernelDisplay(ppThis, pParent, createFlags);
530 
531     return status;
532 }
533 
534