diff options
Diffstat (limited to 'drivers/gpu/drm/sun4i/sun8i_ui_scaler.c')
| -rw-r--r-- | drivers/gpu/drm/sun4i/sun8i_ui_scaler.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c index 8b7a58e27517..fcd72c4fd49a 100644 --- a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c +++ b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c @@ -127,14 +127,15 @@ static int sun8i_ui_scaler_coef_index(unsigned int step) } } -void sun8i_ui_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable) +void sun8i_ui_scaler_enable(struct sun8i_layer *layer, bool enable) { + struct sun8i_mixer *mixer = layer->mixer; u32 val, base; - if (WARN_ON(layer < mixer->cfg->vi_num)) + if (WARN_ON(layer->channel < mixer->cfg->vi_num)) return; - base = sun8i_ui_scaler_base(mixer, layer); + base = sun8i_ui_scaler_base(mixer, layer->channel); if (enable) val = SUN8I_SCALER_GSU_CTRL_EN | @@ -145,18 +146,19 @@ void sun8i_ui_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable) regmap_write(mixer->engine.regs, SUN8I_SCALER_GSU_CTRL(base), val); } -void sun8i_ui_scaler_setup(struct sun8i_mixer *mixer, int layer, +void sun8i_ui_scaler_setup(struct sun8i_layer *layer, u32 src_w, u32 src_h, u32 dst_w, u32 dst_h, u32 hscale, u32 vscale, u32 hphase, u32 vphase) { + struct sun8i_mixer *mixer = layer->mixer; u32 insize, outsize; int i, offset; u32 base; - if (WARN_ON(layer < mixer->cfg->vi_num)) + if (WARN_ON(layer->channel < mixer->cfg->vi_num)) return; - base = sun8i_ui_scaler_base(mixer, layer); + base = sun8i_ui_scaler_base(mixer, layer->channel); hphase <<= SUN8I_UI_SCALER_PHASE_FRAC - 16; vphase <<= SUN8I_UI_SCALER_PHASE_FRAC - 16; |