mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
drm/sun4i: vi scaler: Fix coefficient selection
Currently, vertical coefficients are selected based on horizontal
scaling, which is wrong. Additionally, chroma coefficients should be
selected based on format subsampling.
Fix all that.
Fixes: b862a648de ("drm/sun4i: Add support for HW scaling to DE2")
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Reviewed-by: Chen-Yu Tsai <wens@kernel.org>
Link: https://patch.msgid.link/263a4a41442a3c8b072b170256b72658f1b90802.1785772659.git.jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
This commit is contained in:
parent
abffce8b1e
commit
5c31990b21
|
|
@ -894,20 +894,26 @@ static void sun8i_vi_scaler_set_coeff(struct regmap *map, u32 base,
|
|||
lan3coefftab32_left[offset + i]);
|
||||
regmap_write(map, SUN8I_SCALER_VSU_YHCOEFF1(base, i),
|
||||
lan3coefftab32_right[offset + i]);
|
||||
}
|
||||
offset = sun8i_vi_scaler_coef_index(vstep) *
|
||||
SUN8I_VI_SCALER_COEFF_COUNT;
|
||||
for (i = 0; i < SUN8I_VI_SCALER_COEFF_COUNT; i++)
|
||||
regmap_write(map, SUN8I_SCALER_VSU_YVCOEFF(base, i),
|
||||
lan2coefftab32[offset + i]);
|
||||
|
||||
offset = sun8i_vi_scaler_coef_index(hstep / format->hsub) *
|
||||
SUN8I_VI_SCALER_COEFF_COUNT;
|
||||
for (i = 0; i < SUN8I_VI_SCALER_COEFF_COUNT; i++) {
|
||||
regmap_write(map, SUN8I_SCALER_VSU_CHCOEFF0(base, i),
|
||||
ch_left[offset + i]);
|
||||
regmap_write(map, SUN8I_SCALER_VSU_CHCOEFF1(base, i),
|
||||
ch_right[offset + i]);
|
||||
}
|
||||
|
||||
offset = sun8i_vi_scaler_coef_index(hstep) *
|
||||
offset = sun8i_vi_scaler_coef_index(vstep / format->vsub) *
|
||||
SUN8I_VI_SCALER_COEFF_COUNT;
|
||||
for (i = 0; i < SUN8I_VI_SCALER_COEFF_COUNT; i++) {
|
||||
regmap_write(map, SUN8I_SCALER_VSU_YVCOEFF(base, i),
|
||||
lan2coefftab32[offset + i]);
|
||||
for (i = 0; i < SUN8I_VI_SCALER_COEFF_COUNT; i++)
|
||||
regmap_write(map, SUN8I_SCALER_VSU_CVCOEFF(base, i),
|
||||
cy[offset + i]);
|
||||
}
|
||||
}
|
||||
|
||||
void sun8i_vi_scaler_enable(struct sun8i_layer *layer, bool enable)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user