@@ -50,12 +50,12 @@ static void sun8i_vi_layer_update_attributes(struct sun8i_layer *layer,
5050 SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA_MODE_PIXEL :
5151 SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA_MODE_COMBINED ;
5252 } else if (mixer -> cfg -> vi_num == 1 ) {
53- regmap_write (mixer -> engine . regs ,
53+ regmap_write (layer -> regs ,
5454 SUN8I_MIXER_FCC_GLOBAL_ALPHA_REG ,
5555 SUN8I_MIXER_FCC_GLOBAL_ALPHA (state -> alpha >> 8 ));
5656 }
5757
58- regmap_write (mixer -> engine . regs ,
58+ regmap_write (layer -> regs ,
5959 SUN8I_MIXER_CHAN_VI_LAYER_ATTR (ch_base , layer -> overlay ), val );
6060}
6161
@@ -113,10 +113,10 @@ static void sun8i_vi_layer_update_coord(struct sun8i_layer *layer,
113113 (state -> src .x1 >> 16 ) & ~(format -> hsub - 1 ),
114114 (state -> src .y1 >> 16 ) & ~(format -> vsub - 1 ));
115115 DRM_DEBUG_DRIVER ("Layer source size W: %d H: %d\n" , src_w , src_h );
116- regmap_write (mixer -> engine . regs ,
116+ regmap_write (layer -> regs ,
117117 SUN8I_MIXER_CHAN_VI_LAYER_SIZE (ch_base , layer -> overlay ),
118118 insize );
119- regmap_write (mixer -> engine . regs ,
119+ regmap_write (layer -> regs ,
120120 SUN8I_MIXER_CHAN_VI_OVL_SIZE (ch_base ),
121121 insize );
122122
@@ -171,19 +171,19 @@ static void sun8i_vi_layer_update_coord(struct sun8i_layer *layer,
171171 sun8i_vi_scaler_enable (layer , false);
172172 }
173173
174- regmap_write (mixer -> engine . regs ,
174+ regmap_write (layer -> regs ,
175175 SUN8I_MIXER_CHAN_VI_HDS_Y (ch_base ),
176176 SUN8I_MIXER_CHAN_VI_DS_N (hn ) |
177177 SUN8I_MIXER_CHAN_VI_DS_M (hm ));
178- regmap_write (mixer -> engine . regs ,
178+ regmap_write (layer -> regs ,
179179 SUN8I_MIXER_CHAN_VI_HDS_UV (ch_base ),
180180 SUN8I_MIXER_CHAN_VI_DS_N (hn ) |
181181 SUN8I_MIXER_CHAN_VI_DS_M (hm ));
182- regmap_write (mixer -> engine . regs ,
182+ regmap_write (layer -> regs ,
183183 SUN8I_MIXER_CHAN_VI_VDS_Y (ch_base ),
184184 SUN8I_MIXER_CHAN_VI_DS_N (vn ) |
185185 SUN8I_MIXER_CHAN_VI_DS_M (vm ));
186- regmap_write (mixer -> engine . regs ,
186+ regmap_write (layer -> regs ,
187187 SUN8I_MIXER_CHAN_VI_VDS_UV (ch_base ),
188188 SUN8I_MIXER_CHAN_VI_DS_N (vn ) |
189189 SUN8I_MIXER_CHAN_VI_DS_M (vm ));
@@ -232,15 +232,15 @@ static void sun8i_vi_layer_update_buffer(struct sun8i_layer *layer,
232232 /* Set the line width */
233233 DRM_DEBUG_DRIVER ("Layer %d. line width: %d bytes\n" ,
234234 i + 1 , fb -> pitches [i ]);
235- regmap_write (mixer -> engine . regs ,
235+ regmap_write (layer -> regs ,
236236 SUN8I_MIXER_CHAN_VI_LAYER_PITCH (ch_base ,
237237 layer -> overlay , i ),
238238 fb -> pitches [i ]);
239239
240240 DRM_DEBUG_DRIVER ("Setting %d. buffer address to %pad\n" ,
241241 i + 1 , & dma_addr );
242242
243- regmap_write (mixer -> engine . regs ,
243+ regmap_write (layer -> regs ,
244244 SUN8I_MIXER_CHAN_VI_LAYER_TOP_LADDR (ch_base ,
245245 layer -> overlay , i ),
246246 lower_32_bits (dma_addr ));
@@ -410,6 +410,7 @@ static const uint64_t sun8i_layer_modifiers[] = {
410410struct sun8i_layer * sun8i_vi_layer_init_one (struct drm_device * drm ,
411411 struct sun8i_mixer * mixer ,
412412 enum drm_plane_type type ,
413+ struct regmap * regs ,
413414 int index ,
414415 int plane_cnt )
415416{
@@ -427,6 +428,7 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm,
427428 layer -> type = SUN8I_LAYER_TYPE_VI ;
428429 layer -> channel = index ;
429430 layer -> overlay = 0 ;
431+ layer -> regs = regs ;
430432
431433 if (mixer -> cfg -> de_type >= SUN8I_MIXER_DE3 ) {
432434 formats = sun8i_vi_layer_de3_formats ;
0 commit comments