mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-19 06:38:26 -05:00
drm: sun4i: de2/de3: use generic register reference function for layer configuration
Use the new blender register lookup function where required in the layer commit and update code. Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com> Signed-off-by: Ryan Walklin <ryan@testtoast.com> Acked-by: Maxime Ripard <mripard@kernel.org> Reviewed-by: Chen-Yu Tsai <wens@csie.org> Link: https://lore.kernel.org/r/20250528092431.28825-5-ryan@testtoast.com Signed-off-by: Maxime Ripard <mripard@kernel.org>
This commit is contained in:
committed by
Maxime Ripard
parent
ef54f1dc24
commit
5419143dd0
@@ -274,6 +274,7 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine,
|
||||
{
|
||||
struct sun8i_mixer *mixer = engine_to_sun8i_mixer(engine);
|
||||
u32 bld_base = sun8i_blender_base(mixer);
|
||||
struct regmap *bld_regs = sun8i_blender_regmap(mixer);
|
||||
struct drm_plane_state *plane_state;
|
||||
struct drm_plane *plane;
|
||||
u32 route = 0, pipe_en = 0;
|
||||
@@ -313,8 +314,8 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine,
|
||||
pipe_en |= SUN8I_MIXER_BLEND_PIPE_CTL_EN(zpos);
|
||||
}
|
||||
|
||||
regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_ROUTE(bld_base), route);
|
||||
regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(bld_base),
|
||||
regmap_write(bld_regs, SUN8I_MIXER_BLEND_ROUTE(bld_base), route);
|
||||
regmap_write(bld_regs, SUN8I_MIXER_BLEND_PIPE_CTL(bld_base),
|
||||
pipe_en | SUN8I_MIXER_BLEND_PIPE_CTL_FC_EN(0));
|
||||
|
||||
regmap_write(engine->regs, SUN8I_MIXER_GLOBAL_DBUFF,
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "sun8i_mixer.h"
|
||||
#include "sun8i_ui_layer.h"
|
||||
#include "sun8i_ui_scaler.h"
|
||||
#include "sun8i_vi_scaler.h"
|
||||
|
||||
static void sun8i_ui_layer_update_alpha(struct sun8i_mixer *mixer, int channel,
|
||||
int overlay, struct drm_plane *plane)
|
||||
@@ -51,6 +52,7 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel,
|
||||
{
|
||||
struct drm_plane_state *state = plane->state;
|
||||
u32 src_w, src_h, dst_w, dst_h;
|
||||
struct regmap *bld_regs;
|
||||
u32 bld_base, ch_base;
|
||||
u32 outsize, insize;
|
||||
u32 hphase, vphase;
|
||||
@@ -59,6 +61,7 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel,
|
||||
channel, overlay);
|
||||
|
||||
bld_base = sun8i_blender_base(mixer);
|
||||
bld_regs = sun8i_blender_regmap(mixer);
|
||||
ch_base = sun8i_channel_base(mixer, channel);
|
||||
|
||||
src_w = drm_rect_width(&state->src) >> 16;
|
||||
@@ -103,10 +106,10 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel,
|
||||
DRM_DEBUG_DRIVER("Layer destination coordinates X: %d Y: %d\n",
|
||||
state->dst.x1, state->dst.y1);
|
||||
DRM_DEBUG_DRIVER("Layer destination size W: %d H: %d\n", dst_w, dst_h);
|
||||
regmap_write(mixer->engine.regs,
|
||||
regmap_write(bld_regs,
|
||||
SUN8I_MIXER_BLEND_ATTR_COORD(bld_base, zpos),
|
||||
SUN8I_MIXER_COORD(state->dst.x1, state->dst.y1));
|
||||
regmap_write(mixer->engine.regs,
|
||||
regmap_write(bld_regs,
|
||||
SUN8I_MIXER_BLEND_ATTR_INSIZE(bld_base, zpos),
|
||||
outsize);
|
||||
|
||||
|
||||
@@ -55,6 +55,7 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel,
|
||||
struct drm_plane_state *state = plane->state;
|
||||
const struct drm_format_info *format = state->fb->format;
|
||||
u32 src_w, src_h, dst_w, dst_h;
|
||||
struct regmap *bld_regs;
|
||||
u32 bld_base, ch_base;
|
||||
u32 outsize, insize;
|
||||
u32 hphase, vphase;
|
||||
@@ -66,6 +67,7 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel,
|
||||
channel, overlay);
|
||||
|
||||
bld_base = sun8i_blender_base(mixer);
|
||||
bld_regs = sun8i_blender_regmap(mixer);
|
||||
ch_base = sun8i_channel_base(mixer, channel);
|
||||
|
||||
src_w = drm_rect_width(&state->src) >> 16;
|
||||
@@ -183,10 +185,10 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel,
|
||||
DRM_DEBUG_DRIVER("Layer destination coordinates X: %d Y: %d\n",
|
||||
state->dst.x1, state->dst.y1);
|
||||
DRM_DEBUG_DRIVER("Layer destination size W: %d H: %d\n", dst_w, dst_h);
|
||||
regmap_write(mixer->engine.regs,
|
||||
regmap_write(bld_regs,
|
||||
SUN8I_MIXER_BLEND_ATTR_COORD(bld_base, zpos),
|
||||
SUN8I_MIXER_COORD(state->dst.x1, state->dst.y1));
|
||||
regmap_write(mixer->engine.regs,
|
||||
regmap_write(bld_regs,
|
||||
SUN8I_MIXER_BLEND_ATTR_INSIZE(bld_base, zpos),
|
||||
outsize);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user