From: Yongqiang Niu <yongqiang.niu@mediatek.com>
To: Nicolas Boichat <drinkcat@chromium.org>
Cc: CK Hu <ck.hu@mediatek.com>,
Philipp Zabel <p.zabel@pengutronix.de>,
David Airlie <airlied@linux.ie>, Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
devicetree@vger.kernel.org, lkml <linux-kernel@vger.kernel.org>,
dri-devel@lists.freedesktop.org,
linux-mediatek@lists.infradead.org,
linux-arm Mailing List <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 03/18] drm/mediatek: redefine mtk_ddp_sout_sel
Date: Fri, 15 Mar 2019 10:06:16 +0800 [thread overview]
Message-ID: <1552615576.31200.19.camel@mhfsdcap03> (raw)
In-Reply-To: <CANMq1KBTN61hmWy2K+rrx3NL0eR7AXhFQBkCpcHu5nhUw_6xjw@mail.gmail.com>
On Tue, 2018-12-25 at 11:57 +0800, Nicolas Boichat wrote:
> On Mon, Dec 24, 2018 at 6:52 PM Yongqiang Niu
> <yongqiang.niu@mediatek.com> wrote:
> >
> > This patch redefine mtk_ddp_sout_sel
>
> Can you describe a bit more why you are making this change?
the format of "mtk_ddp_sout_sel"was not flexible, after we add more
mediatek SOC support, that will be redundant
set this function format like mtk_ddp_mout_en and mtk_ddp_sel_in
>
> > Signed-off-by: Yongqiang Niu <yongqiang.niu@mediatek.com>
> > ---
> > drivers/gpu/drm/mediatek/mtk_drm_ddp.c | 32 ++++++++++++++++++++------------
> > 1 file changed, 20 insertions(+), 12 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c
> > index adb37e4..592f852 100644
> > --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c
> > +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c
> > @@ -405,21 +405,27 @@ static unsigned int mtk_ddp_sel_in(enum mtk_ddp_comp_id cur,
> > return value;
> > }
> >
> > -static void mtk_ddp_sout_sel(void __iomem *config_regs,
> > - enum mtk_ddp_comp_id cur,
> > - enum mtk_ddp_comp_id next)
> > +static unsigned int mtk_ddp_sout_sel(void __iomem *config_regs,
>
> You don't use config_regs anymore, drop it.
ok, will drop it in next version
>
> > + enum mtk_ddp_comp_id cur,
> > + enum mtk_ddp_comp_id next,
> > + unsigned int *addr)
> > {
> > + unsigned int value;
> > +
> > if (cur == DDP_COMPONENT_BLS && next == DDP_COMPONENT_DSI0) {
> > - writel_relaxed(BLS_TO_DSI_RDMA1_TO_DPI1,
> > - config_regs + DISP_REG_CONFIG_OUT_SEL);
> > + *addr = DISP_REG_CONFIG_OUT_SEL;
> > + value = BLS_TO_DSI_RDMA1_TO_DPI1;
>
> You can directly return BLS_TO_DSI_RDMA1_TO_DPI1.
just format this like mtk_ddp_mout_en and mtk_ddp_sel_in
>
> > } else if (cur == DDP_COMPONENT_BLS && next == DDP_COMPONENT_DPI0) {
> > - writel_relaxed(BLS_TO_DPI_RDMA1_TO_DSI,
> > - config_regs + DISP_REG_CONFIG_OUT_SEL);
> > - writel_relaxed(DSI_SEL_IN_RDMA,
> > - config_regs + DISP_REG_CONFIG_DSI_SEL);
> > - writel_relaxed(DPI_SEL_IN_BLS,
> > - config_regs + DISP_REG_CONFIG_DPI_SEL);
> > + *addr = DISP_REG_CONFIG_OUT_SEL;
> > + value = BLS_TO_DPI_RDMA1_TO_DSI;
>
> I (kind of) understand the change above, as you still end up writing
> BLS_TO_DSI_RDMA1_TO_DPI1 in DISP_REG_CONFIG_OUT_SEL.
>
> This changes the behaviour, as now you only write
> BLS_TO_DPI_RDMA1_TO_DSI to DISP_REG_CONFIG_OUT_SEL, but the previous
> revision of the code would also write to DISP_REG_CONFIG_DSI_SEL and
> DISP_REG_CONFIG_DPI_SEL. Why?
>
DISP_REG_CONFIG_DSI_SEL set in the next lines.
DPI_SEL_IN_BLS is 0 for DISP_REG_CONFIG_DPI_SEL set, and hardware
default setting is also 0, so this one is no need anymore
> > + } else if (cur == DDP_COMPONENT_RDMA1 && next == DDP_COMPONENT_DSI0) {
> > + *addr = DISP_REG_CONFIG_DSI_SEL;
> > + value = DSI_SEL_IN_RDMA;
> > + } else {
> > + value = 0;
> > }
> > +
> > + return value;
> > }
> >
> > void mtk_ddp_add_comp_to_path(void __iomem *config_regs,
> > @@ -434,7 +440,9 @@ void mtk_ddp_add_comp_to_path(void __iomem *config_regs,
> > writel_relaxed(reg, config_regs + addr);
> > }
> >
> > - mtk_ddp_sout_sel(config_regs, cur, next);
> > + value = mtk_ddp_sout_sel(cur, next, &addr);
> > + if (value)
> > + writel_relaxed(value, config_regs + addr);
>
> Why this change? I don't see mtk_ddp_sout_sel being used later in the
> series, so I'm not sure why we don't directly write the value into the
> register.
>
in the patch "[PATCH 04/18] drm/mediatek: move rdma sout from
mtk_ddp_mout_en into mtk_ddp_sout_sel", i moved all rdma out to here,
rdma only have single out, no multi out.
if keep this format, there will many writel_relaxed in mtk_ddp_sout_sel.
and modify this format like mtk_ddp_mout_en and mtk_ddp_sel_in looks
better.
>
>
> > value = mtk_ddp_sel_in(cur, next, &addr);
> > if (value) {
> > --
> > 1.8.1.1.dirty
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
WARNING: multiple messages have this Message-ID (diff)
From: Yongqiang Niu <yongqiang.niu@mediatek.com>
To: Nicolas Boichat <drinkcat@chromium.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
devicetree@vger.kernel.org, David Airlie <airlied@linux.ie>,
lkml <linux-kernel@vger.kernel.org>,
dri-devel@lists.freedesktop.org,
Matthias Brugger <matthias.bgg@gmail.com>,
Rob Herring <robh+dt@kernel.org>,
linux-mediatek@lists.infradead.org,
Philipp Zabel <p.zabel@pengutronix.de>,
CK Hu <ck.hu@mediatek.com>,
linux-arm Mailing List <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 03/18] drm/mediatek: redefine mtk_ddp_sout_sel
Date: Fri, 15 Mar 2019 10:06:16 +0800 [thread overview]
Message-ID: <1552615576.31200.19.camel@mhfsdcap03> (raw)
In-Reply-To: <CANMq1KBTN61hmWy2K+rrx3NL0eR7AXhFQBkCpcHu5nhUw_6xjw@mail.gmail.com>
On Tue, 2018-12-25 at 11:57 +0800, Nicolas Boichat wrote:
> On Mon, Dec 24, 2018 at 6:52 PM Yongqiang Niu
> <yongqiang.niu@mediatek.com> wrote:
> >
> > This patch redefine mtk_ddp_sout_sel
>
> Can you describe a bit more why you are making this change?
the format of "mtk_ddp_sout_sel"was not flexible, after we add more
mediatek SOC support, that will be redundant
set this function format like mtk_ddp_mout_en and mtk_ddp_sel_in
>
> > Signed-off-by: Yongqiang Niu <yongqiang.niu@mediatek.com>
> > ---
> > drivers/gpu/drm/mediatek/mtk_drm_ddp.c | 32 ++++++++++++++++++++------------
> > 1 file changed, 20 insertions(+), 12 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c
> > index adb37e4..592f852 100644
> > --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c
> > +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c
> > @@ -405,21 +405,27 @@ static unsigned int mtk_ddp_sel_in(enum mtk_ddp_comp_id cur,
> > return value;
> > }
> >
> > -static void mtk_ddp_sout_sel(void __iomem *config_regs,
> > - enum mtk_ddp_comp_id cur,
> > - enum mtk_ddp_comp_id next)
> > +static unsigned int mtk_ddp_sout_sel(void __iomem *config_regs,
>
> You don't use config_regs anymore, drop it.
ok, will drop it in next version
>
> > + enum mtk_ddp_comp_id cur,
> > + enum mtk_ddp_comp_id next,
> > + unsigned int *addr)
> > {
> > + unsigned int value;
> > +
> > if (cur == DDP_COMPONENT_BLS && next == DDP_COMPONENT_DSI0) {
> > - writel_relaxed(BLS_TO_DSI_RDMA1_TO_DPI1,
> > - config_regs + DISP_REG_CONFIG_OUT_SEL);
> > + *addr = DISP_REG_CONFIG_OUT_SEL;
> > + value = BLS_TO_DSI_RDMA1_TO_DPI1;
>
> You can directly return BLS_TO_DSI_RDMA1_TO_DPI1.
just format this like mtk_ddp_mout_en and mtk_ddp_sel_in
>
> > } else if (cur == DDP_COMPONENT_BLS && next == DDP_COMPONENT_DPI0) {
> > - writel_relaxed(BLS_TO_DPI_RDMA1_TO_DSI,
> > - config_regs + DISP_REG_CONFIG_OUT_SEL);
> > - writel_relaxed(DSI_SEL_IN_RDMA,
> > - config_regs + DISP_REG_CONFIG_DSI_SEL);
> > - writel_relaxed(DPI_SEL_IN_BLS,
> > - config_regs + DISP_REG_CONFIG_DPI_SEL);
> > + *addr = DISP_REG_CONFIG_OUT_SEL;
> > + value = BLS_TO_DPI_RDMA1_TO_DSI;
>
> I (kind of) understand the change above, as you still end up writing
> BLS_TO_DSI_RDMA1_TO_DPI1 in DISP_REG_CONFIG_OUT_SEL.
>
> This changes the behaviour, as now you only write
> BLS_TO_DPI_RDMA1_TO_DSI to DISP_REG_CONFIG_OUT_SEL, but the previous
> revision of the code would also write to DISP_REG_CONFIG_DSI_SEL and
> DISP_REG_CONFIG_DPI_SEL. Why?
>
DISP_REG_CONFIG_DSI_SEL set in the next lines.
DPI_SEL_IN_BLS is 0 for DISP_REG_CONFIG_DPI_SEL set, and hardware
default setting is also 0, so this one is no need anymore
> > + } else if (cur == DDP_COMPONENT_RDMA1 && next == DDP_COMPONENT_DSI0) {
> > + *addr = DISP_REG_CONFIG_DSI_SEL;
> > + value = DSI_SEL_IN_RDMA;
> > + } else {
> > + value = 0;
> > }
> > +
> > + return value;
> > }
> >
> > void mtk_ddp_add_comp_to_path(void __iomem *config_regs,
> > @@ -434,7 +440,9 @@ void mtk_ddp_add_comp_to_path(void __iomem *config_regs,
> > writel_relaxed(reg, config_regs + addr);
> > }
> >
> > - mtk_ddp_sout_sel(config_regs, cur, next);
> > + value = mtk_ddp_sout_sel(cur, next, &addr);
> > + if (value)
> > + writel_relaxed(value, config_regs + addr);
>
> Why this change? I don't see mtk_ddp_sout_sel being used later in the
> series, so I'm not sure why we don't directly write the value into the
> register.
>
in the patch "[PATCH 04/18] drm/mediatek: move rdma sout from
mtk_ddp_mout_en into mtk_ddp_sout_sel", i moved all rdma out to here,
rdma only have single out, no multi out.
if keep this format, there will many writel_relaxed in mtk_ddp_sout_sel.
and modify this format like mtk_ddp_mout_en and mtk_ddp_sel_in looks
better.
>
>
> > value = mtk_ddp_sel_in(cur, next, &addr);
> > if (value) {
> > --
> > 1.8.1.1.dirty
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-03-15 2:06 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-24 8:08 [PATCH 00/18] add drm support for MT8183 Yongqiang Niu
2018-12-24 8:08 ` [PATCH 01/18] drm/mediatek: update dt-bindings for mt8183 Yongqiang Niu
2018-12-26 1:49 ` CK Hu
2018-12-26 1:49 ` CK Hu
2018-12-24 8:08 ` [PATCH 02/18] drm/mediatek: add mutex mod and sof into ddp private data Yongqiang Niu
2018-12-26 2:56 ` CK Hu
2018-12-26 2:56 ` CK Hu
2018-12-24 8:08 ` [PATCH 03/18] drm/mediatek: redefine mtk_ddp_sout_sel Yongqiang Niu
2018-12-25 3:57 ` Nicolas Boichat
2018-12-25 3:57 ` Nicolas Boichat
2019-03-15 2:06 ` Yongqiang Niu [this message]
2019-03-15 2:06 ` Yongqiang Niu
2019-03-15 3:22 ` Nicolas Boichat
2019-03-15 3:22 ` Nicolas Boichat
2018-12-24 8:08 ` [PATCH 04/18] drm/mediatek: move rdma sout from mtk_ddp_mout_en into mtk_ddp_sout_sel Yongqiang Niu
2018-12-26 3:51 ` CK Hu
2018-12-26 3:51 ` CK Hu
2018-12-24 8:08 ` [PATCH 05/18] drm/mediatek: add ddp component CCORR Yongqiang Niu
2018-12-26 5:27 ` CK Hu
2018-12-26 5:27 ` CK Hu
2018-12-24 8:08 ` [PATCH 06/18] drm/mediatek: add mmsys private data for ddp path config Yongqiang Niu
2018-12-26 6:01 ` CK Hu
2018-12-26 6:01 ` CK Hu
2018-12-24 8:08 ` [PATCH 07/18] drm/mediatek: add commponent OVL0_2L Yongqiang Niu
2018-12-26 9:09 ` CK Hu
2018-12-26 9:09 ` CK Hu
2018-12-24 8:08 ` [PATCH 08/18] drm/mediatek: add component OVL1_2L Yongqiang Niu
2018-12-24 8:08 ` [PATCH 09/18] drm/mediatek: add component DITHER Yongqiang Niu
2018-12-26 9:13 ` CK Hu
2018-12-26 9:13 ` CK Hu
2018-12-24 8:08 ` [PATCH 10/18] drm/mediatek: add gmc_bits for ovl private data Yongqiang Niu
2018-12-25 4:15 ` Nicolas Boichat
2018-12-25 4:15 ` Nicolas Boichat
2019-03-15 2:34 ` Yongqiang Niu
2019-03-15 2:34 ` Yongqiang Niu
2019-03-15 3:26 ` Nicolas Boichat
2019-03-15 3:26 ` Nicolas Boichat
2018-12-24 8:08 ` [PATCH 11/18] drm/medaitek: add layer_nr " Yongqiang Niu
2018-12-27 1:16 ` CK Hu
2018-12-27 1:16 ` CK Hu
2018-12-24 8:08 ` [PATCH 12/18] drm/mediatek: add function to connect module with it's previous one Yongqiang Niu
2018-12-24 8:08 ` [PATCH 13/18] drm/mediatek: add ddp write register common api Yongqiang Niu
2018-12-27 4:26 ` CK Hu
2018-12-27 4:26 ` CK Hu
2018-12-24 8:08 ` [PATCH 14/18] drm/mediatek: add connect function for ovl Yongqiang Niu
2018-12-27 4:56 ` CK Hu
2018-12-27 4:56 ` CK Hu
2018-12-24 8:08 ` [PATCH 15/18] drm/mediatek: add RDMA1 fifo size into RDMA private data Yongqiang Niu
2018-12-27 8:08 ` CK Hu
2018-12-27 8:08 ` CK Hu
2018-12-24 8:08 ` [PATCH 16/18] drm/mediatek: add function mtk_ddp_comp_get_type Yongqiang Niu
2018-12-25 4:19 ` Nicolas Boichat
2018-12-25 4:19 ` Nicolas Boichat
2018-12-24 8:08 ` [PATCH 17/18] drm/mediatek: add ovl0/ovl0_2l usecase Yongqiang Niu
2018-12-25 4:22 ` Nicolas Boichat
2018-12-25 4:22 ` Nicolas Boichat
2018-12-24 8:08 ` [PATCH 18/18] drm/mediatek: add support for mediatek SOC MT8183 Yongqiang Niu
-- strict thread matches above, loose matches on Subject: below --
2019-03-14 8:23 [PATCH 00/18] add drm support for MT8183 yongqiang.niu
2019-03-14 8:23 ` [PATCH 03/18] drm/mediatek: redefine mtk_ddp_sout_sel yongqiang.niu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1552615576.31200.19.camel@mhfsdcap03 \
--to=yongqiang.niu@mediatek.com \
--cc=airlied@linux.ie \
--cc=ck.hu@mediatek.com \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=drinkcat@chromium.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=mark.rutland@arm.com \
--cc=matthias.bgg@gmail.com \
--cc=p.zabel@pengutronix.de \
--cc=robh+dt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.