[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <44c247c5.1dcc.1950887c866.Coremail.andyshrk@163.com>
Date: Sat, 15 Feb 2025 15:34:31 +0800 (CST)
From: "Andy Yan" <andyshrk@....com>
To: Heiko Stübner <heiko@...ech.de>
Cc: hjc@...k-chips.com, krzk+dt@...nel.org, devicetree@...r.kernel.org,
dri-devel@...ts.freedesktop.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
linux-rockchip@...ts.infradead.org, derek.foreman@...labora.com,
detlev.casanova@...labora.com, daniel@...ishbar.org, robh@...nel.org,
sebastian.reichel@...labora.com,
"Andy Yan" <andy.yan@...k-chips.com>
Subject: Re:Re: [PATCH v14 04/13] drm/rockchip: vop2: Merge
vop2_cluster/esmart_init function
Hi Heiko,
At 2025-02-15 06:24:17, "Heiko Stübner" <heiko@...ech.de> wrote:
>Am Mittwoch, 12. Februar 2025, 10:34:59 MEZ schrieb Andy Yan:
>> From: Andy Yan <andy.yan@...k-chips.com>
>>
>> Now these two function share the same logic, the can
>> be merged as one.
>>
>> Signed-off-by: Andy Yan <andy.yan@...k-chips.com>
>> ---
>>
>> (no changes since v1)
>>
>> drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 42 +++++---------------
>> 1 file changed, 11 insertions(+), 31 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
>> index a0d961cb5d21..844df4001159 100644
>> --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
>> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
>> @@ -2424,18 +2424,18 @@ static int vop2_find_rgb_encoder(struct vop2 *vop2)
>> return -ENOENT;
>> }
>>
>> -static int vop2_cluster_init(struct vop2_win *win)
>> +static int vop2_regmap_init(struct vop2_win *win, const struct reg_field *regs,
>> + int nr_regs)
>> {
>> struct vop2 *vop2 = win->vop2;
>> int i;
>>
>> - for (i = 0; i < vop2->data->nr_cluster_regs; i++) {
>> + for (i = 0; i < nr_regs; i++) {
>> const struct reg_field field = {
>> - .reg = (vop2->data->cluster_reg[i].reg != 0xffffffff) ?
>> - vop2->data->cluster_reg[i].reg + win->offset :
>> - vop2->data->cluster_reg[i].reg,
>> - .lsb = vop2->data->cluster_reg[i].lsb,
>> - .msb = vop2->data->cluster_reg[i].msb
>> + .reg = (regs[i].reg != 0xffffffff) ?
>> + regs[i].reg + win->offset : regs[i].reg,
>> + .lsb = regs[i].lsb,
>> + .msb = regs[i].msb
>> };
>>
>> win->reg[i] = devm_regmap_field_alloc(vop2->dev, vop2->map, field);
>> @@ -2446,28 +2446,6 @@ static int vop2_cluster_init(struct vop2_win *win)
>> return 0;
>> };
>>
>> -static int vop2_esmart_init(struct vop2_win *win)
>> -{
>> - struct vop2 *vop2 = win->vop2;
>> - int i;
>> -
>> - for (i = 0; i < vop2->data->nr_smart_regs; i++) {
>> - const struct reg_field field = {
>> - .reg = (vop2->data->smart_reg[i].reg != 0xffffffff) ?
>> - vop2->data->smart_reg[i].reg + win->offset :
>> - vop2->data->smart_reg[i].reg,
>> - .lsb = vop2->data->smart_reg[i].lsb,
>> - .msb = vop2->data->smart_reg[i].msb
>> - };
>> -
>> - win->reg[i] = devm_regmap_field_alloc(vop2->dev, vop2->map, field);
>> - if (IS_ERR(win->reg[i]))
>> - return PTR_ERR(win->reg[i]);
>> - }
>> -
>> - return 0;
>> -}
>> -
>> static int vop2_win_init(struct vop2 *vop2)
>> {
>> const struct vop2_data *vop2_data = vop2->data;
>> @@ -2484,9 +2462,11 @@ static int vop2_win_init(struct vop2 *vop2)
>> win->win_id = i;
>> win->vop2 = vop2;
>> if (vop2_cluster_window(win))
>> - ret = vop2_cluster_init(win);
>> + ret = vop2_regmap_init(win, vop2->data->cluster_reg,
>> + vop2->data->nr_cluster_regs);
>> else
>> - ret = vop2_esmart_init(win);
>> + ret = vop2_regmap_init(win, vop2->data->smart_reg,
>> + vop2->data->nr_cluster_regs);
>
> ^^ nr_smart_regs
>I think
Yes, thanks for catching it, will be fixed in V15.
>
>
>
>
Powered by blists - more mailing lists