Lines Matching full:mixer
21 static void sun8i_vi_layer_update_alpha(struct sun8i_mixer *mixer, int channel, in sun8i_vi_layer_update_alpha() argument
26 ch_base = sun8i_channel_base(mixer, channel); in sun8i_vi_layer_update_alpha()
28 if (mixer->cfg->is_de3) { in sun8i_vi_layer_update_alpha()
38 regmap_update_bits(mixer->engine.regs, in sun8i_vi_layer_update_alpha()
42 } else if (mixer->cfg->vi_num == 1) { in sun8i_vi_layer_update_alpha()
43 regmap_update_bits(mixer->engine.regs, in sun8i_vi_layer_update_alpha()
51 static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, in sun8i_vi_layer_update_coord() argument
68 bld_base = sun8i_blender_base(mixer); in sun8i_vi_layer_update_coord()
69 ch_base = sun8i_channel_base(mixer, channel); in sun8i_vi_layer_update_coord()
106 regmap_write(mixer->engine.regs, in sun8i_vi_layer_update_coord()
109 regmap_write(mixer->engine.regs, in sun8i_vi_layer_update_coord()
129 ability = clk_get_rate(mixer->mod_clk); in sun8i_vi_layer_update_coord()
144 scanline = subsampled ? mixer->cfg->scanline_yuv : 2048; in sun8i_vi_layer_update_coord()
156 sun8i_vi_scaler_setup(mixer, channel, src_w, src_h, dst_w, in sun8i_vi_layer_update_coord()
159 sun8i_vi_scaler_enable(mixer, channel, true); in sun8i_vi_layer_update_coord()
162 sun8i_vi_scaler_enable(mixer, channel, false); in sun8i_vi_layer_update_coord()
165 regmap_write(mixer->engine.regs, in sun8i_vi_layer_update_coord()
169 regmap_write(mixer->engine.regs, in sun8i_vi_layer_update_coord()
173 regmap_write(mixer->engine.regs, in sun8i_vi_layer_update_coord()
177 regmap_write(mixer->engine.regs, in sun8i_vi_layer_update_coord()
186 regmap_write(mixer->engine.regs, in sun8i_vi_layer_update_coord()
189 regmap_write(mixer->engine.regs, in sun8i_vi_layer_update_coord()
212 static int sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel, in sun8i_vi_layer_update_formats() argument
220 ch_base = sun8i_channel_base(mixer, channel); in sun8i_vi_layer_update_formats()
230 regmap_update_bits(mixer->engine.regs, in sun8i_vi_layer_update_formats()
236 sun8i_csc_set_ccsc_coefficients(mixer, channel, csc_mode, in sun8i_vi_layer_update_formats()
239 sun8i_csc_enable_ccsc(mixer, channel, true); in sun8i_vi_layer_update_formats()
241 sun8i_csc_enable_ccsc(mixer, channel, false); in sun8i_vi_layer_update_formats()
249 regmap_update_bits(mixer->engine.regs, in sun8i_vi_layer_update_formats()
256 static int sun8i_vi_layer_update_buffer(struct sun8i_mixer *mixer, int channel, in sun8i_vi_layer_update_buffer() argument
268 ch_base = sun8i_channel_base(mixer, channel); in sun8i_vi_layer_update_buffer()
298 regmap_write(mixer->engine.regs, in sun8i_vi_layer_update_buffer()
306 regmap_write(mixer->engine.regs, in sun8i_vi_layer_update_buffer()
336 if (layer->mixer->cfg->scaler_mask & BIT(layer->channel)) { in sun8i_vi_layer_atomic_check()
354 struct sun8i_mixer *mixer = layer->mixer; in sun8i_vi_layer_atomic_update() local
359 sun8i_vi_layer_update_coord(mixer, layer->channel, in sun8i_vi_layer_atomic_update()
361 sun8i_vi_layer_update_alpha(mixer, layer->channel, in sun8i_vi_layer_atomic_update()
363 sun8i_vi_layer_update_formats(mixer, layer->channel, in sun8i_vi_layer_atomic_update()
365 sun8i_vi_layer_update_buffer(mixer, layer->channel, in sun8i_vi_layer_atomic_update()
472 struct sun8i_mixer *mixer, in sun8i_vi_layer_init_one() argument
486 if (mixer->cfg->is_de3) { in sun8i_vi_layer_init_one()
494 if (!mixer->cfg->ui_num && index == 0) in sun8i_vi_layer_init_one()
508 plane_cnt = mixer->cfg->ui_num + mixer->cfg->vi_num; in sun8i_vi_layer_init_one()
510 if (mixer->cfg->vi_num == 1 || mixer->cfg->is_de3) { in sun8i_vi_layer_init_one()
527 if (mixer->cfg->is_de3) in sun8i_vi_layer_init_one()
544 layer->mixer = mixer; in sun8i_vi_layer_init_one()