forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/drivers/gpu/drm/amd/display/dc/gpio/dcn10/hw_factory_dcn10.c
....@@ -31,6 +31,7 @@
3131 #include "../hw_gpio.h"
3232 #include "../hw_ddc.h"
3333 #include "../hw_hpd.h"
34
+#include "../hw_generic.h"
3435
3536 #include "hw_factory_dcn10.h"
3637
....@@ -121,6 +122,42 @@
121122 DDC_MASK_SH_LIST(_MASK)
122123 };
123124
125
+#include "../generic_regs.h"
126
+
127
+/* set field name */
128
+#define SF_GENERIC(reg_name, field_name, post_fix)\
129
+ .field_name = reg_name ## __ ## field_name ## post_fix
130
+
131
+#define generic_regs(id) \
132
+{\
133
+ GENERIC_REG_LIST(id)\
134
+}
135
+
136
+static const struct generic_registers generic_regs[] = {
137
+ generic_regs(A),
138
+ generic_regs(B),
139
+};
140
+
141
+static const struct generic_sh_mask generic_shift[] = {
142
+ GENERIC_MASK_SH_LIST(__SHIFT, A),
143
+ GENERIC_MASK_SH_LIST(__SHIFT, B),
144
+};
145
+
146
+static const struct generic_sh_mask generic_mask[] = {
147
+ GENERIC_MASK_SH_LIST(_MASK, A),
148
+ GENERIC_MASK_SH_LIST(_MASK, B),
149
+};
150
+
151
+static void define_generic_registers(struct hw_gpio_pin *pin, uint32_t en)
152
+{
153
+ struct hw_generic *generic = HW_GENERIC_FROM_BASE(pin);
154
+
155
+ generic->regs = &generic_regs[en];
156
+ generic->shifts = &generic_shift[en];
157
+ generic->masks = &generic_mask[en];
158
+ generic->base.regs = &generic_regs[en].gpio;
159
+}
160
+
124161 static void define_ddc_registers(
125162 struct hw_gpio_pin *pin,
126163 uint32_t en)
....@@ -157,16 +194,17 @@
157194 }
158195
159196
160
-/* fucntion table */
197
+/* function table */
161198 static const struct hw_factory_funcs funcs = {
162
- .create_ddc_data = dal_hw_ddc_create,
163
- .create_ddc_clock = dal_hw_ddc_create,
164
- .create_generic = NULL,
165
- .create_hpd = dal_hw_hpd_create,
166
- .create_sync = NULL,
167
- .create_gsl = NULL,
199
+ .init_ddc_data = dal_hw_ddc_init,
200
+ .init_generic = dal_hw_generic_init,
201
+ .init_hpd = dal_hw_hpd_init,
202
+ .get_ddc_pin = dal_hw_ddc_get_pin,
203
+ .get_hpd_pin = dal_hw_hpd_get_pin,
204
+ .get_generic_pin = dal_hw_generic_get_pin,
168205 .define_hpd_registers = define_hpd_registers,
169
- .define_ddc_registers = define_ddc_registers
206
+ .define_ddc_registers = define_ddc_registers,
207
+ .define_generic_registers = define_generic_registers
170208 };
171209 /*
172210 * dal_hw_factory_dcn10_init