This source file includes following definitions.
- dcn10_ipp_destroy
- dcn10_ipp_construct
- dcn20_ipp_construct
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #include <linux/slab.h>
27
28 #include "dm_services.h"
29 #include "dcn10_ipp.h"
30 #include "reg_helper.h"
31
32 #define REG(reg) \
33 (ippn10->regs->reg)
34
35 #undef FN
36 #define FN(reg_name, field_name) \
37 ippn10->ipp_shift->field_name, ippn10->ipp_mask->field_name
38
39 #define CTX \
40 ippn10->base.ctx
41
42
43
44
45
46 static void dcn10_ipp_destroy(struct input_pixel_processor **ipp)
47 {
48 kfree(TO_DCN10_IPP(*ipp));
49 *ipp = NULL;
50 }
51
52 static const struct ipp_funcs dcn10_ipp_funcs = {
53 .ipp_destroy = dcn10_ipp_destroy
54 };
55
56 #if defined(CONFIG_DRM_AMD_DC_DCN2_0)
57 static const struct ipp_funcs dcn20_ipp_funcs = {
58 .ipp_destroy = dcn10_ipp_destroy
59 };
60 #endif
61
62 void dcn10_ipp_construct(
63 struct dcn10_ipp *ippn10,
64 struct dc_context *ctx,
65 int inst,
66 const struct dcn10_ipp_registers *regs,
67 const struct dcn10_ipp_shift *ipp_shift,
68 const struct dcn10_ipp_mask *ipp_mask)
69 {
70 ippn10->base.ctx = ctx;
71 ippn10->base.inst = inst;
72 ippn10->base.funcs = &dcn10_ipp_funcs;
73
74 ippn10->regs = regs;
75 ippn10->ipp_shift = ipp_shift;
76 ippn10->ipp_mask = ipp_mask;
77 }
78
79 #if defined(CONFIG_DRM_AMD_DC_DCN2_0)
80 void dcn20_ipp_construct(
81 struct dcn10_ipp *ippn10,
82 struct dc_context *ctx,
83 int inst,
84 const struct dcn10_ipp_registers *regs,
85 const struct dcn10_ipp_shift *ipp_shift,
86 const struct dcn10_ipp_mask *ipp_mask)
87 {
88 ippn10->base.ctx = ctx;
89 ippn10->base.inst = inst;
90 ippn10->base.funcs = &dcn20_ipp_funcs;
91
92 ippn10->regs = regs;
93 ippn10->ipp_shift = ipp_shift;
94 ippn10->ipp_mask = ipp_mask;
95 }
96 #endif