Skip to content

Commit 145c9b3

Browse files
Andy Yanmmind
authored andcommitted
drm/rockchip: vop2: Merge vop2_cluster/esmart_init function
Now these two function share the same logic, they can be merged as one. Signed-off-by: Andy Yan <[email protected]> Signed-off-by: Heiko Stuebner <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent 328e688 commit 145c9b3

File tree

1 file changed

+11
-31
lines changed

1 file changed

+11
-31
lines changed

drivers/gpu/drm/rockchip/rockchip_drm_vop2.c

Lines changed: 11 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2434,18 +2434,18 @@ static int vop2_find_rgb_encoder(struct vop2 *vop2)
24342434
return -ENOENT;
24352435
}
24362436

2437-
static int vop2_cluster_init(struct vop2_win *win)
2437+
static int vop2_regmap_init(struct vop2_win *win, const struct reg_field *regs,
2438+
int nr_regs)
24382439
{
24392440
struct vop2 *vop2 = win->vop2;
24402441
int i;
24412442

2442-
for (i = 0; i < vop2->data->nr_cluster_regs; i++) {
2443+
for (i = 0; i < nr_regs; i++) {
24432444
const struct reg_field field = {
2444-
.reg = (vop2->data->cluster_reg[i].reg != 0xffffffff) ?
2445-
vop2->data->cluster_reg[i].reg + win->offset :
2446-
vop2->data->cluster_reg[i].reg,
2447-
.lsb = vop2->data->cluster_reg[i].lsb,
2448-
.msb = vop2->data->cluster_reg[i].msb
2445+
.reg = (regs[i].reg != 0xffffffff) ?
2446+
regs[i].reg + win->offset : regs[i].reg,
2447+
.lsb = regs[i].lsb,
2448+
.msb = regs[i].msb
24492449
};
24502450

24512451
win->reg[i] = devm_regmap_field_alloc(vop2->dev, vop2->map, field);
@@ -2456,28 +2456,6 @@ static int vop2_cluster_init(struct vop2_win *win)
24562456
return 0;
24572457
};
24582458

2459-
static int vop2_esmart_init(struct vop2_win *win)
2460-
{
2461-
struct vop2 *vop2 = win->vop2;
2462-
int i;
2463-
2464-
for (i = 0; i < vop2->data->nr_smart_regs; i++) {
2465-
const struct reg_field field = {
2466-
.reg = (vop2->data->smart_reg[i].reg != 0xffffffff) ?
2467-
vop2->data->smart_reg[i].reg + win->offset :
2468-
vop2->data->smart_reg[i].reg,
2469-
.lsb = vop2->data->smart_reg[i].lsb,
2470-
.msb = vop2->data->smart_reg[i].msb
2471-
};
2472-
2473-
win->reg[i] = devm_regmap_field_alloc(vop2->dev, vop2->map, field);
2474-
if (IS_ERR(win->reg[i]))
2475-
return PTR_ERR(win->reg[i]);
2476-
}
2477-
2478-
return 0;
2479-
}
2480-
24812459
static int vop2_win_init(struct vop2 *vop2)
24822460
{
24832461
const struct vop2_data *vop2_data = vop2->data;
@@ -2494,9 +2472,11 @@ static int vop2_win_init(struct vop2 *vop2)
24942472
win->win_id = i;
24952473
win->vop2 = vop2;
24962474
if (vop2_cluster_window(win))
2497-
ret = vop2_cluster_init(win);
2475+
ret = vop2_regmap_init(win, vop2->data->cluster_reg,
2476+
vop2->data->nr_cluster_regs);
24982477
else
2499-
ret = vop2_esmart_init(win);
2478+
ret = vop2_regmap_init(win, vop2->data->smart_reg,
2479+
vop2->data->nr_smart_regs);
25002480
if (ret)
25012481
return ret;
25022482
}

0 commit comments

Comments
 (0)