All of lore.kernel.org
 help / color / mirror / Atom feed
From: Horng-Shyang Liao <hs.liao@mediatek.com>
To: Jassi Brar <jassisinghbrar@gmail.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>,
	Rob Herring <robh+dt@kernel.org>,
	Daniel Kurtz <djkurtz@chromium.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Devicetree List <devicetree@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	<linux-mediatek@lists.infradead.org>,
	<srv_heupstream@mediatek.com>,
	Sascha Hauer <kernel@pengutronix.de>,
	"Philipp Zabel" <p.zabel@pengutronix.de>,
	Nicolas Boichat <drinkcat@chromium.org>,
	"CK HU" <ck.hu@mediatek.com>,
	cawa cheng <cawa.cheng@mediatek.com>,
	Bibby Hsieh <bibby.hsieh@mediatek.com>,
	YT Shen <yt.shen@mediatek.com>,
	Daoyuan Huang <daoyuan.huang@mediatek.com>,
	Damon Chu <damon.chu@mediatek.com>,
	"Josh-YC Liu" <josh-yc.liu@mediatek.com>,
	Glory Hung <glory.hung@mediatek.com>,
	Jiaguang Zhang <jiaguang.zhang@mediatek.com>,
	Dennis-YC Hsieh <dennis-yc.hsieh@mediatek.com>,
	Monica Wang <monica.wang@mediatek.com>,
	Jaswinder Singh <jaswinder.singh@linaro.org>
Subject: Re: [PATCH v8 2/3] CMDQ: Mediatek CMDQ driver
Date: Mon, 6 Jun 2016 17:33:53 +0800	[thread overview]
Message-ID: <1465205633.25607.33.camel@mtksdaap41> (raw)
In-Reply-To: <CABb+yY2aOncqM-fOiq_ZBink0Fth6Drd30ZMe3-bXNkodW2dVA@mail.gmail.com>

Hi Matthias, Jassi,

On Fri, 2016-06-03 at 18:41 +0530, Jassi Brar wrote:
> On Fri, Jun 3, 2016 at 4:48 PM, Matthias Brugger <matthias.bgg@gmail.com> wrote:
> > On 03/06/16 08:12, Horng-Shyang Liao wrote:
> >> On Thu, 2016-06-02 at 10:46 +0200, Matthias Brugger wrote:
> 
> >>> I keep thinking about how to get rid of the two data structures,
> >>> task_busy_list and the task_release_wq. We need the latter for the only
> >>> sake of getting a timeout.
> >>>
> >>> Did you have a look on how the mailbox framework handles this?
> >>> By the way, what is the reason to not implement the whole driver as a
> >>> mailbox controller? For me, this driver looks like a good fit.
> >>
> >>
> >> CMDQ needs to encode commands for GCE hardware. We think this behavior
> >> should be put in CMDQ driver, and client just call CMDQ functions.
> >> Therefore, if we want to use mailbox framework, cmdq_rec must be
> >> mailbox client, and the others must be mailbox controller.
> >>
> >
> > You mean the functions to fill the cmdq_rec and execute it?
> > I think this should be part of the driver.
> >
> > Jassi, can you have a look on the interface this driver exports [0].
> > They are needed to actually create the message which will be send.
> > Could something like this be part of a mailbox driver?
> >
> > [0] https://patchwork.kernel.org/patch/9140221/
> >
> Packet creating/parsing should not be a part of controller driver. As
> the log of this patch says, today it is used for only display but in
> future it could work with other h/w as well, so it makes sense to have
> mailbox api do the message queuing, the controller driver do the
> send/receive and client drivers implement display and other h/w
> specific packaging of data (protocol handling).
> 
> So yes, I think this could use mailbox api.
> 
> Cheers.


Let me use display as an example to do some further explanation
about CMDQ in advance. You can think CMDQ is a shadow register
replacement. Therefore, we use cmdq_rec_write(_mask), cmdq_rec_wfe, and
cmdq_rec_clear_event instead of accessing registers, and use
cmdq_rec_flush(_async) instead of atomic swap.

If we use mailbox to do the message queue, we can use mailbox framework
to implement flush and callback. However, I don't think mailbox is
suitable for cmdq_rec_write(_mask), cmdq_rec_wfe, and
cmdq_rec_clear_event since they are just record some commands. Is this
the same as your comment "Packet creating/parsing should not be a part
of controller driver."?

Therefore, do you mean we use mailbox framework to implement flush and
callback and keep other interfaces? Just want to confirm that I get the
correct idea from you. Many thanks for your kindly reply.

Thanks,
HS

WARNING: multiple messages have this Message-ID (diff)
From: Horng-Shyang Liao <hs.liao-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
To: Jassi Brar <jassisinghbrar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Matthias Brugger
	<matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Daniel Kurtz <djkurtz-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
	Sascha Hauer <s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	Devicetree List
	<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Linux Kernel Mailing List
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	srv_heupstream-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org,
	Sascha Hauer <kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	Philipp Zabel <p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	Nicolas Boichat
	<drinkcat-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
	CK HU <ck.hu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
	cawa cheng <cawa.cheng-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
	Bibby Hsieh <bibby.hsieh-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
	YT Shen <yt.shen-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
	Daoyuan Huang
	<daoyuan.huang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
	Damon Chu <damon.chu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
	Josh-YC Liu <josh-yc.liu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
	Glory Hung <glory.hung-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
	Jiaguang Zhang
	<jiaguang.zhang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>De
Subject: Re: [PATCH v8 2/3] CMDQ: Mediatek CMDQ driver
Date: Mon, 6 Jun 2016 17:33:53 +0800	[thread overview]
Message-ID: <1465205633.25607.33.camel@mtksdaap41> (raw)
In-Reply-To: <CABb+yY2aOncqM-fOiq_ZBink0Fth6Drd30ZMe3-bXNkodW2dVA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

Hi Matthias, Jassi,

On Fri, 2016-06-03 at 18:41 +0530, Jassi Brar wrote:
> On Fri, Jun 3, 2016 at 4:48 PM, Matthias Brugger <matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> > On 03/06/16 08:12, Horng-Shyang Liao wrote:
> >> On Thu, 2016-06-02 at 10:46 +0200, Matthias Brugger wrote:
> 
> >>> I keep thinking about how to get rid of the two data structures,
> >>> task_busy_list and the task_release_wq. We need the latter for the only
> >>> sake of getting a timeout.
> >>>
> >>> Did you have a look on how the mailbox framework handles this?
> >>> By the way, what is the reason to not implement the whole driver as a
> >>> mailbox controller? For me, this driver looks like a good fit.
> >>
> >>
> >> CMDQ needs to encode commands for GCE hardware. We think this behavior
> >> should be put in CMDQ driver, and client just call CMDQ functions.
> >> Therefore, if we want to use mailbox framework, cmdq_rec must be
> >> mailbox client, and the others must be mailbox controller.
> >>
> >
> > You mean the functions to fill the cmdq_rec and execute it?
> > I think this should be part of the driver.
> >
> > Jassi, can you have a look on the interface this driver exports [0].
> > They are needed to actually create the message which will be send.
> > Could something like this be part of a mailbox driver?
> >
> > [0] https://patchwork.kernel.org/patch/9140221/
> >
> Packet creating/parsing should not be a part of controller driver. As
> the log of this patch says, today it is used for only display but in
> future it could work with other h/w as well, so it makes sense to have
> mailbox api do the message queuing, the controller driver do the
> send/receive and client drivers implement display and other h/w
> specific packaging of data (protocol handling).
> 
> So yes, I think this could use mailbox api.
> 
> Cheers.


Let me use display as an example to do some further explanation
about CMDQ in advance. You can think CMDQ is a shadow register
replacement. Therefore, we use cmdq_rec_write(_mask), cmdq_rec_wfe, and
cmdq_rec_clear_event instead of accessing registers, and use
cmdq_rec_flush(_async) instead of atomic swap.

If we use mailbox to do the message queue, we can use mailbox framework
to implement flush and callback. However, I don't think mailbox is
suitable for cmdq_rec_write(_mask), cmdq_rec_wfe, and
cmdq_rec_clear_event since they are just record some commands. Is this
the same as your comment "Packet creating/parsing should not be a part
of controller driver."?

Therefore, do you mean we use mailbox framework to implement flush and
callback and keep other interfaces? Just want to confirm that I get the
correct idea from you. Many thanks for your kindly reply.

Thanks,
HS


--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: hs.liao@mediatek.com (Horng-Shyang Liao)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v8 2/3] CMDQ: Mediatek CMDQ driver
Date: Mon, 6 Jun 2016 17:33:53 +0800	[thread overview]
Message-ID: <1465205633.25607.33.camel@mtksdaap41> (raw)
In-Reply-To: <CABb+yY2aOncqM-fOiq_ZBink0Fth6Drd30ZMe3-bXNkodW2dVA@mail.gmail.com>

Hi Matthias, Jassi,

On Fri, 2016-06-03 at 18:41 +0530, Jassi Brar wrote:
> On Fri, Jun 3, 2016 at 4:48 PM, Matthias Brugger <matthias.bgg@gmail.com> wrote:
> > On 03/06/16 08:12, Horng-Shyang Liao wrote:
> >> On Thu, 2016-06-02 at 10:46 +0200, Matthias Brugger wrote:
> 
> >>> I keep thinking about how to get rid of the two data structures,
> >>> task_busy_list and the task_release_wq. We need the latter for the only
> >>> sake of getting a timeout.
> >>>
> >>> Did you have a look on how the mailbox framework handles this?
> >>> By the way, what is the reason to not implement the whole driver as a
> >>> mailbox controller? For me, this driver looks like a good fit.
> >>
> >>
> >> CMDQ needs to encode commands for GCE hardware. We think this behavior
> >> should be put in CMDQ driver, and client just call CMDQ functions.
> >> Therefore, if we want to use mailbox framework, cmdq_rec must be
> >> mailbox client, and the others must be mailbox controller.
> >>
> >
> > You mean the functions to fill the cmdq_rec and execute it?
> > I think this should be part of the driver.
> >
> > Jassi, can you have a look on the interface this driver exports [0].
> > They are needed to actually create the message which will be send.
> > Could something like this be part of a mailbox driver?
> >
> > [0] https://patchwork.kernel.org/patch/9140221/
> >
> Packet creating/parsing should not be a part of controller driver. As
> the log of this patch says, today it is used for only display but in
> future it could work with other h/w as well, so it makes sense to have
> mailbox api do the message queuing, the controller driver do the
> send/receive and client drivers implement display and other h/w
> specific packaging of data (protocol handling).
> 
> So yes, I think this could use mailbox api.
> 
> Cheers.


Let me use display as an example to do some further explanation
about CMDQ in advance. You can think CMDQ is a shadow register
replacement. Therefore, we use cmdq_rec_write(_mask), cmdq_rec_wfe, and
cmdq_rec_clear_event instead of accessing registers, and use
cmdq_rec_flush(_async) instead of atomic swap.

If we use mailbox to do the message queue, we can use mailbox framework
to implement flush and callback. However, I don't think mailbox is
suitable for cmdq_rec_write(_mask), cmdq_rec_wfe, and
cmdq_rec_clear_event since they are just record some commands. Is this
the same as your comment "Packet creating/parsing should not be a part
of controller driver."?

Therefore, do you mean we use mailbox framework to implement flush and
callback and keep other interfaces? Just want to confirm that I get the
correct idea from you. Many thanks for your kindly reply.

Thanks,
HS

  reply	other threads:[~2016-06-06  9:34 UTC|newest]

Thread overview: 125+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-30  3:19 [PATCH v8 0/3] Mediatek MT8173 CMDQ support HS Liao
2016-05-30  3:19 ` HS Liao
2016-05-30  3:19 ` HS Liao
2016-05-30  3:19 ` [PATCH v8 1/3] dt-bindings: soc: Add documentation for the MediaTek GCE unit HS Liao
2016-05-30  3:19   ` HS Liao
2016-05-30  3:19   ` HS Liao
2016-05-30  3:19 ` [PATCH v8 2/3] CMDQ: Mediatek CMDQ driver HS Liao
2016-05-30  3:19   ` HS Liao
2016-05-30  3:19   ` HS Liao
2016-05-30  6:49   ` CK Hu
2016-05-30  6:49     ` CK Hu
2016-05-30  6:49     ` CK Hu
2016-05-30  9:38     ` Horng-Shyang Liao
2016-05-30  9:38       ` Horng-Shyang Liao
2016-05-30  9:38       ` Horng-Shyang Liao
2016-05-30 15:31   ` Matthias Brugger
2016-05-30 15:31     ` Matthias Brugger
2016-05-31  8:36     ` Horng-Shyang Liao
2016-05-31  8:36       ` Horng-Shyang Liao
2016-05-31  8:36       ` Horng-Shyang Liao
2016-05-31 20:04       ` Matthias Brugger
2016-05-31 20:04         ` Matthias Brugger
2016-06-01  9:57         ` Horng-Shyang Liao
2016-06-01  9:57           ` Horng-Shyang Liao
2016-06-01  9:57           ` Horng-Shyang Liao
2016-06-02  8:46           ` Matthias Brugger
2016-06-02  8:46             ` Matthias Brugger
2016-06-02  8:46             ` Matthias Brugger
2016-06-03  6:12             ` Horng-Shyang Liao
2016-06-03  6:12               ` Horng-Shyang Liao
2016-06-03  6:12               ` Horng-Shyang Liao
2016-06-03 11:18               ` Matthias Brugger
2016-06-03 11:18                 ` Matthias Brugger
2016-06-03 12:13                 ` Horng-Shyang Liao
2016-06-03 12:13                   ` Horng-Shyang Liao
2016-06-03 12:13                   ` Horng-Shyang Liao
2016-06-03 13:11                   ` Matthias Brugger
2016-06-03 13:11                     ` Matthias Brugger
2016-06-03 13:11                     ` Matthias Brugger
2016-06-07 16:59                     ` Matthias Brugger
2016-06-07 16:59                       ` Matthias Brugger
2016-06-08  5:40                       ` Horng-Shyang Liao
2016-06-08  5:40                         ` Horng-Shyang Liao
2016-06-08  5:40                         ` Horng-Shyang Liao
2016-06-08 10:45                         ` Matthias Brugger
2016-06-08 10:45                           ` Matthias Brugger
2016-06-08 10:45                           ` Matthias Brugger
2016-06-08 12:25                           ` Horng-Shyang Liao
2016-06-08 12:25                             ` Horng-Shyang Liao
2016-06-08 12:25                             ` Horng-Shyang Liao
2016-06-08 15:35                             ` Matthias Brugger
2016-06-08 15:35                               ` Matthias Brugger
2016-06-14  7:44                               ` Horng-Shyang Liao
2016-06-14  7:44                                 ` Horng-Shyang Liao
2016-06-14  7:44                                 ` Horng-Shyang Liao
2016-06-14 10:17                                 ` Matthias Brugger
2016-06-14 10:17                                   ` Matthias Brugger
2016-06-14 12:07                                   ` Horng-Shyang Liao
2016-06-14 12:07                                     ` Horng-Shyang Liao
2016-06-14 12:07                                     ` Horng-Shyang Liao
2016-06-17  8:28                                     ` Horng-Shyang Liao
2016-06-17  8:28                                       ` Horng-Shyang Liao
2016-06-17  8:28                                       ` Horng-Shyang Liao
2016-06-17 15:57                                       ` Matthias Brugger
2016-06-17 15:57                                         ` Matthias Brugger
2016-06-17 15:57                                         ` Matthias Brugger
2016-06-21  5:52                                         ` Horng-Shyang Liao
2016-06-21  5:52                                           ` Horng-Shyang Liao
2016-06-21  5:52                                           ` Horng-Shyang Liao
2016-06-21 13:41                                           ` Matthias Brugger
2016-06-21 13:41                                             ` Matthias Brugger
2016-06-21 13:41                                             ` Matthias Brugger
2016-06-22  5:43                                             ` Horng-Shyang Liao
2016-06-22  5:43                                               ` Horng-Shyang Liao
2016-06-22  5:43                                               ` Horng-Shyang Liao
2016-06-22  9:58                                               ` Matthias Brugger
2016-06-22  9:58                                                 ` Matthias Brugger
2016-06-22  9:58                                                 ` Matthias Brugger
2016-06-17 16:14                                     ` Matthias Brugger
2016-06-17 16:14                                       ` Matthias Brugger
2016-06-03 13:11                 ` Jassi Brar
2016-06-03 13:11                   ` Jassi Brar
2016-06-03 13:11                   ` Jassi Brar
2016-06-06  9:33                   ` Horng-Shyang Liao [this message]
2016-06-06  9:33                     ` Horng-Shyang Liao
2016-06-06  9:33                     ` Horng-Shyang Liao
2016-06-06 13:17                     ` Jassi Brar
2016-06-07  2:45                   ` Horng-Shyang Liao
2016-06-07  2:45                     ` Horng-Shyang Liao
2016-06-07  2:45                     ` Horng-Shyang Liao
2016-06-07 17:04   ` Matthias Brugger
2016-06-07 17:04     ` Matthias Brugger
2016-06-08  5:09     ` Horng-Shyang Liao
2016-06-08  5:09       ` Horng-Shyang Liao
2016-06-08  5:09       ` Horng-Shyang Liao
2016-06-20 10:41   ` CK Hu
2016-06-20 10:41     ` CK Hu
2016-06-20 10:41     ` CK Hu
2016-06-20 11:22     ` Horng-Shyang Liao
2016-06-20 11:22       ` Horng-Shyang Liao
2016-06-20 11:22       ` Horng-Shyang Liao
2016-06-21  2:03       ` CK Hu
2016-06-21  2:03         ` CK Hu
2016-06-21  2:03         ` CK Hu
2016-06-21  7:46         ` Horng-Shyang Liao
2016-06-21  7:46           ` Horng-Shyang Liao
2016-06-21  7:46           ` Horng-Shyang Liao
2016-06-24 11:39           ` Horng-Shyang Liao
2016-06-24 11:39             ` Horng-Shyang Liao
2016-06-24 11:39             ` Horng-Shyang Liao
2016-06-27  2:00             ` CK Hu
2016-06-27  2:00               ` CK Hu
2016-06-27  2:00               ` CK Hu
2016-06-23  6:03   ` CK Hu
2016-06-23  6:03     ` CK Hu
2016-06-23  6:03     ` CK Hu
2016-06-23  7:54     ` Horng-Shyang Liao
2016-06-23  7:54       ` Horng-Shyang Liao
2016-06-23  7:54       ` Horng-Shyang Liao
2016-06-23 11:44       ` CK Hu
2016-06-23 11:44         ` CK Hu
2016-06-23 11:44         ` CK Hu
2016-05-30  3:19 ` [PATCH v8 3/3] arm64: dts: mt8173: Add GCE node HS Liao
2016-05-30  3:19   ` HS Liao
2016-05-30  3:19   ` HS Liao

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=1465205633.25607.33.camel@mtksdaap41 \
    --to=hs.liao@mediatek.com \
    --cc=bibby.hsieh@mediatek.com \
    --cc=cawa.cheng@mediatek.com \
    --cc=ck.hu@mediatek.com \
    --cc=damon.chu@mediatek.com \
    --cc=daoyuan.huang@mediatek.com \
    --cc=dennis-yc.hsieh@mediatek.com \
    --cc=devicetree@vger.kernel.org \
    --cc=djkurtz@chromium.org \
    --cc=drinkcat@chromium.org \
    --cc=glory.hung@mediatek.com \
    --cc=jassisinghbrar@gmail.com \
    --cc=jaswinder.singh@linaro.org \
    --cc=jiaguang.zhang@mediatek.com \
    --cc=josh-yc.liu@mediatek.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=monica.wang@mediatek.com \
    --cc=p.zabel@pengutronix.de \
    --cc=robh+dt@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=srv_heupstream@mediatek.com \
    --cc=yt.shen@mediatek.com \
    /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.