All of lore.kernel.org
 help / color / mirror / Atom feed
From: CK Hu <ck.hu@mediatek.com>
To: Bibby Hsieh <bibby.hsieh@mediatek.com>
Cc: devicetree@vger.kernel.org,
	Nicolas Boichat <drinkcat@chromium.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	srv_heupstream@mediatek.com,
	Daoyuan Huang <daoyuan.huang@mediatek.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Jassi Brar <jassisinghbrar@gmail.com>,
	linux-kernel@vger.kernel.org, Daniel Kurtz <djkurtz@chromium.org>,
	Houlong Wei <houlong.wei@mediatek.com>,
	YT Shen <yt.shen@mediatek.com>, Rob Herring <robh+dt@kernel.org>,
	linux-mediatek@lists.infradead.org,
	Dennis-YC Hsieh
	<dennis-yc.hsimediatek/mtkcam/drv/fdvt/4.0/cam_fdvt_v4l2.cppeh@mediatek.com>,
	Sascha Hauer <kernel@pengutronix.de>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Jiaguang Zhang <jiaguang.zhang@mediatek.com>,
	linux-arm-kernel@lists.infradead.org, ginny.chen@mediatek.com
Subject: Re: [PATCH v6 10/12] soc: mediatek: cmdq: add cmdq_dev_get_subsys function
Date: Fri, 17 May 2019 09:43:30 +0800	[thread overview]
Message-ID: <1558057410.14401.7.camel@mtksdaap41> (raw)
In-Reply-To: <20190516090224.59070-11-bibby.hsieh@mediatek.com>

Hi, Bibby:

On Thu, 2019-05-16 at 17:02 +0800, Bibby Hsieh wrote:
> GCE cannot know the register base address, this function
> can help cmdq client to get the relationship of subsys
> and register base address.
> 
> Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com>
> ---
>  drivers/soc/mediatek/mtk-cmdq-helper.c | 25 +++++++++++++++++++++++++
>  include/linux/soc/mediatek/mtk-cmdq.h  | 18 ++++++++++++++++++
>  2 files changed, 43 insertions(+)
> 
> diff --git a/drivers/soc/mediatek/mtk-cmdq-helper.c b/drivers/soc/mediatek/mtk-cmdq-helper.c
> index a53cdd71cfc2..a64060a34e01 100644
> --- a/drivers/soc/mediatek/mtk-cmdq-helper.c
> +++ b/drivers/soc/mediatek/mtk-cmdq-helper.c
> @@ -27,6 +27,31 @@ struct cmdq_instruction {
>  	u8 op;
>  };
>  
> +struct cmdq_subsys *cmdq_dev_get_subsys(struct device *dev, int idx)
> +{
> +	struct cmdq_subsys *subsys;
> +	struct of_phandle_args spec;
> +
> +	subsys = devm_kzalloc(dev, sizeof(*subsys), GFP_KERNEL);
> +	if (!subsys)
> +		return NULL;
> +
> +	if (of_parse_phandle_with_args(dev->of_node, "mediatek,gce-client-reg",
> +				       "#subsys-cells", idx, &spec)) {
> +		dev_err(dev, "can't parse gce-client-reg property");

print the idx info.

> +

I think you should free the buffer you allocate. Don't expect this
function is called in caller's probe function.

> +		return (struct cmdq_subsys *)-ENODEV;

Why not return NULL?

> +	}
> +
> +	subsys->id = spec.args[0];
> +	subsys->offset = spec.args[1];
> +	subsys->size = spec.args[2];
> +	of_node_put(spec.np);
> +
> +	return subsys;
> +}
> +EXPORT_SYMBOL(cmdq_dev_get_subsys);
> +
>  static void cmdq_client_timeout(struct timer_list *t)
>  {
>  	struct cmdq_client *client = from_timer(client, t, timer);
> diff --git a/include/linux/soc/mediatek/mtk-cmdq.h b/include/linux/soc/mediatek/mtk-cmdq.h
> index 0651a0bffa54..574006c5cd76 100644
> --- a/include/linux/soc/mediatek/mtk-cmdq.h
> +++ b/include/linux/soc/mediatek/mtk-cmdq.h
> @@ -15,6 +15,12 @@
>  
>  struct cmdq_pkt;
>  
> +struct cmdq_subsys {

May be cmdq_client_reg.

> +	u8 id;

May be subsys.

Regards,
CK

> +	u16 offset;
> +	u16 size;
> +};
> +
>  struct cmdq_client {
>  	spinlock_t lock;
>  	u32 pkt_cnt;
> @@ -142,4 +148,16 @@ int cmdq_pkt_flush_async(struct cmdq_pkt *pkt, cmdq_async_flush_cb cb,
>   */
>  int cmdq_pkt_flush(struct cmdq_pkt *pkt);
>  
> +/**
> + * cmdq_dev_get_subsys() - parse sub system from the device node of CMDQ client
> + * @dev:	device of CMDQ mailbox client
> + * @idx:	the index of desired subsys
> + *
> + * Return: CMDQ subsys pointer
> + *
> + * Help CMDQ client pasing the sub system number
> + * from the device node of CMDQ client.
> + */
> +struct cmdq_subsys *cmdq_dev_get_subsys(struct device *dev, int idx);
> +
>  #endif	/* __MTK_CMDQ_H__ */

WARNING: multiple messages have this Message-ID (diff)
From: CK Hu <ck.hu@mediatek.com>
To: Bibby Hsieh <bibby.hsieh@mediatek.com>
Cc: devicetree@vger.kernel.org,
	Nicolas Boichat <drinkcat@chromium.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	srv_heupstream@mediatek.com,
	Daoyuan Huang <daoyuan.huang@mediatek.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Jassi Brar <jassisinghbrar@gmail.com>,
	linux-kernel@vger.kernel.org, Daniel Kurtz <djkurtz@chromium.org>,
	Houlong Wei <houlong.wei@mediatek.com>,
	YT Shen <yt.shen@mediatek.com>, Rob Herring <robh+dt@kernel.org>,
	linux-mediatek@lists.infradead.org,
	Dennis-YC Hsieh
	<dennis-yc.hsimediatek/mtkcam/drv/fdvt/4.0/cam_fdvt_v4l2.cppeh@mediatek.com>,
	Sascha Hauer <kernel@pengutronix.de>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Jiaguang Zhang <jiaguang.zhang@mediatek.com>,
	linux-arm-kernel@lists.infradead.org, ginny.chen@mediatek.com
Subject: Re: [PATCH v6 10/12] soc: mediatek: cmdq: add cmdq_dev_get_subsys function
Date: Fri, 17 May 2019 09:43:30 +0800	[thread overview]
Message-ID: <1558057410.14401.7.camel@mtksdaap41> (raw)
In-Reply-To: <20190516090224.59070-11-bibby.hsieh@mediatek.com>

Hi, Bibby:

On Thu, 2019-05-16 at 17:02 +0800, Bibby Hsieh wrote:
> GCE cannot know the register base address, this function
> can help cmdq client to get the relationship of subsys
> and register base address.
> 
> Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com>
> ---
>  drivers/soc/mediatek/mtk-cmdq-helper.c | 25 +++++++++++++++++++++++++
>  include/linux/soc/mediatek/mtk-cmdq.h  | 18 ++++++++++++++++++
>  2 files changed, 43 insertions(+)
> 
> diff --git a/drivers/soc/mediatek/mtk-cmdq-helper.c b/drivers/soc/mediatek/mtk-cmdq-helper.c
> index a53cdd71cfc2..a64060a34e01 100644
> --- a/drivers/soc/mediatek/mtk-cmdq-helper.c
> +++ b/drivers/soc/mediatek/mtk-cmdq-helper.c
> @@ -27,6 +27,31 @@ struct cmdq_instruction {
>  	u8 op;
>  };
>  
> +struct cmdq_subsys *cmdq_dev_get_subsys(struct device *dev, int idx)
> +{
> +	struct cmdq_subsys *subsys;
> +	struct of_phandle_args spec;
> +
> +	subsys = devm_kzalloc(dev, sizeof(*subsys), GFP_KERNEL);
> +	if (!subsys)
> +		return NULL;
> +
> +	if (of_parse_phandle_with_args(dev->of_node, "mediatek,gce-client-reg",
> +				       "#subsys-cells", idx, &spec)) {
> +		dev_err(dev, "can't parse gce-client-reg property");

print the idx info.

> +

I think you should free the buffer you allocate. Don't expect this
function is called in caller's probe function.

> +		return (struct cmdq_subsys *)-ENODEV;

Why not return NULL?

> +	}
> +
> +	subsys->id = spec.args[0];
> +	subsys->offset = spec.args[1];
> +	subsys->size = spec.args[2];
> +	of_node_put(spec.np);
> +
> +	return subsys;
> +}
> +EXPORT_SYMBOL(cmdq_dev_get_subsys);
> +
>  static void cmdq_client_timeout(struct timer_list *t)
>  {
>  	struct cmdq_client *client = from_timer(client, t, timer);
> diff --git a/include/linux/soc/mediatek/mtk-cmdq.h b/include/linux/soc/mediatek/mtk-cmdq.h
> index 0651a0bffa54..574006c5cd76 100644
> --- a/include/linux/soc/mediatek/mtk-cmdq.h
> +++ b/include/linux/soc/mediatek/mtk-cmdq.h
> @@ -15,6 +15,12 @@
>  
>  struct cmdq_pkt;
>  
> +struct cmdq_subsys {

May be cmdq_client_reg.

> +	u8 id;

May be subsys.

Regards,
CK

> +	u16 offset;
> +	u16 size;
> +};
> +
>  struct cmdq_client {
>  	spinlock_t lock;
>  	u32 pkt_cnt;
> @@ -142,4 +148,16 @@ int cmdq_pkt_flush_async(struct cmdq_pkt *pkt, cmdq_async_flush_cb cb,
>   */
>  int cmdq_pkt_flush(struct cmdq_pkt *pkt);
>  
> +/**
> + * cmdq_dev_get_subsys() - parse sub system from the device node of CMDQ client
> + * @dev:	device of CMDQ mailbox client
> + * @idx:	the index of desired subsys
> + *
> + * Return: CMDQ subsys pointer
> + *
> + * Help CMDQ client pasing the sub system number
> + * from the device node of CMDQ client.
> + */
> +struct cmdq_subsys *cmdq_dev_get_subsys(struct device *dev, int idx);
> +
>  #endif	/* __MTK_CMDQ_H__ */



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: CK Hu <ck.hu@mediatek.com>
To: Bibby Hsieh <bibby.hsieh@mediatek.com>
Cc: Jassi Brar <jassisinghbrar@gmail.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Rob Herring <robh+dt@kernel.org>,
	Daniel Kurtz <djkurtz@chromium.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.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>,
	"YT Shen" <yt.shen@mediatek.com>,
	Daoyuan Huang <daoyuan.huang@mediatek.com>,
	Jiaguang Zhang <jiaguang.zhang@mediatek.com>,
	Dennis-YC Hsieh 
	<dennis-yc.hsimediatek/mtkcam/drv/fdvt/4.0/cam_fdvt_v4l2.cppeh@mediatek.com>,
	Houlong Wei <houlong.wei@mediatek.com>, <ginny.chen@mediatek.com>
Subject: Re: [PATCH v6 10/12] soc: mediatek: cmdq: add cmdq_dev_get_subsys function
Date: Fri, 17 May 2019 09:43:30 +0800	[thread overview]
Message-ID: <1558057410.14401.7.camel@mtksdaap41> (raw)
In-Reply-To: <20190516090224.59070-11-bibby.hsieh@mediatek.com>

Hi, Bibby:

On Thu, 2019-05-16 at 17:02 +0800, Bibby Hsieh wrote:
> GCE cannot know the register base address, this function
> can help cmdq client to get the relationship of subsys
> and register base address.
> 
> Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com>
> ---
>  drivers/soc/mediatek/mtk-cmdq-helper.c | 25 +++++++++++++++++++++++++
>  include/linux/soc/mediatek/mtk-cmdq.h  | 18 ++++++++++++++++++
>  2 files changed, 43 insertions(+)
> 
> diff --git a/drivers/soc/mediatek/mtk-cmdq-helper.c b/drivers/soc/mediatek/mtk-cmdq-helper.c
> index a53cdd71cfc2..a64060a34e01 100644
> --- a/drivers/soc/mediatek/mtk-cmdq-helper.c
> +++ b/drivers/soc/mediatek/mtk-cmdq-helper.c
> @@ -27,6 +27,31 @@ struct cmdq_instruction {
>  	u8 op;
>  };
>  
> +struct cmdq_subsys *cmdq_dev_get_subsys(struct device *dev, int idx)
> +{
> +	struct cmdq_subsys *subsys;
> +	struct of_phandle_args spec;
> +
> +	subsys = devm_kzalloc(dev, sizeof(*subsys), GFP_KERNEL);
> +	if (!subsys)
> +		return NULL;
> +
> +	if (of_parse_phandle_with_args(dev->of_node, "mediatek,gce-client-reg",
> +				       "#subsys-cells", idx, &spec)) {
> +		dev_err(dev, "can't parse gce-client-reg property");

print the idx info.

> +

I think you should free the buffer you allocate. Don't expect this
function is called in caller's probe function.

> +		return (struct cmdq_subsys *)-ENODEV;

Why not return NULL?

> +	}
> +
> +	subsys->id = spec.args[0];
> +	subsys->offset = spec.args[1];
> +	subsys->size = spec.args[2];
> +	of_node_put(spec.np);
> +
> +	return subsys;
> +}
> +EXPORT_SYMBOL(cmdq_dev_get_subsys);
> +
>  static void cmdq_client_timeout(struct timer_list *t)
>  {
>  	struct cmdq_client *client = from_timer(client, t, timer);
> diff --git a/include/linux/soc/mediatek/mtk-cmdq.h b/include/linux/soc/mediatek/mtk-cmdq.h
> index 0651a0bffa54..574006c5cd76 100644
> --- a/include/linux/soc/mediatek/mtk-cmdq.h
> +++ b/include/linux/soc/mediatek/mtk-cmdq.h
> @@ -15,6 +15,12 @@
>  
>  struct cmdq_pkt;
>  
> +struct cmdq_subsys {

May be cmdq_client_reg.

> +	u8 id;

May be subsys.

Regards,
CK

> +	u16 offset;
> +	u16 size;
> +};
> +
>  struct cmdq_client {
>  	spinlock_t lock;
>  	u32 pkt_cnt;
> @@ -142,4 +148,16 @@ int cmdq_pkt_flush_async(struct cmdq_pkt *pkt, cmdq_async_flush_cb cb,
>   */
>  int cmdq_pkt_flush(struct cmdq_pkt *pkt);
>  
> +/**
> + * cmdq_dev_get_subsys() - parse sub system from the device node of CMDQ client
> + * @dev:	device of CMDQ mailbox client
> + * @idx:	the index of desired subsys
> + *
> + * Return: CMDQ subsys pointer
> + *
> + * Help CMDQ client pasing the sub system number
> + * from the device node of CMDQ client.
> + */
> +struct cmdq_subsys *cmdq_dev_get_subsys(struct device *dev, int idx);
> +
>  #endif	/* __MTK_CMDQ_H__ */



  reply	other threads:[~2019-05-17  1:43 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-16  9:02 [PATCH v6 00/12] support gce on mt8183 platform Bibby Hsieh
2019-05-16  9:02 ` Bibby Hsieh
2019-05-16  9:02 ` Bibby Hsieh
2019-05-16  9:02 ` [PATCH v6 01/12] dt-binding: gce: remove thread-num property Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02 ` [PATCH v6 02/12] dt-binding: gce: add gce header file for mt8183 Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02 ` [PATCH v6 03/12] dt-binding: gce: add binding for gce subsys property Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-17  1:55   ` CK Hu
2019-05-17  1:55     ` CK Hu
2019-05-17  1:55     ` CK Hu
2019-05-16  9:02 ` [PATCH v6 04/12] dt-binding: gce: add binding for gce event property Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-24 21:54   ` Rob Herring
2019-05-24 21:54     ` Rob Herring
     [not found] ` <20190516090224.59070-1-bibby.hsieh-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2019-05-16  9:02   ` [PATCH v6 05/12] mailbox: mediatek: cmdq: move the CMDQ_IRQ_MASK into cmdq driver data Bibby Hsieh
2019-05-16  9:02     ` Bibby Hsieh
2019-05-16  9:02     ` Bibby Hsieh
2019-05-16  9:02 ` [PATCH v6 06/12] mailbox: mediatek: cmdq: support mt8183 gce function Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02 ` [PATCH v6 07/12] soc: mediatek: cmdq: clear the event in cmdq initial flow Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02 ` [PATCH v6 08/12] soc: mediatek: cmdq: define the instruction struct Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-17  3:32   ` CK Hu
2019-05-17  3:32     ` CK Hu
2019-05-17  3:32     ` CK Hu
2019-05-16  9:02 ` [PATCH v6 09/12] soc: mediatek: cmdq: add polling function Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02 ` [PATCH v6 10/12] soc: mediatek: cmdq: add cmdq_dev_get_subsys function Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-17  1:43   ` CK Hu [this message]
2019-05-17  1:43     ` CK Hu
2019-05-17  1:43     ` CK Hu
2019-05-16  9:02 ` [PATCH v6 11/12] soc: mediatek: cmdq: add cmdq_dev_get_event function Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16 10:27   ` CK Hu
2019-05-16 10:27     ` CK Hu
2019-05-16 10:27     ` CK Hu
2019-05-16  9:02 ` [PATCH v6 12/12] arm64: dts: add gce node for mt8183 Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
2019-05-16  9:02   ` Bibby Hsieh
  -- strict thread matches above, loose matches on Subject: below --
2019-05-16  9:27 [PATCH v6 07/12] soc: mediatek: cmdq: clear the event in cmdq initial flow Bibby Hsieh
2019-05-16  9:27 ` [PATCH v6 10/12] soc: mediatek: cmdq: add cmdq_dev_get_subsys function Bibby Hsieh
2019-05-16  9:27   ` Bibby Hsieh
2019-05-16  9:27   ` Bibby Hsieh

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=1558057410.14401.7.camel@mtksdaap41 \
    --to=ck.hu@mediatek.com \
    --cc=bibby.hsieh@mediatek.com \
    --cc=daoyuan.huang@mediatek.com \
    --cc=dennis-yc.hsimediatek/mtkcam/drv/fdvt/4.0/cam_fdvt_v4l2.cppeh@mediatek.com \
    --cc=devicetree@vger.kernel.org \
    --cc=djkurtz@chromium.org \
    --cc=drinkcat@chromium.org \
    --cc=ginny.chen@mediatek.com \
    --cc=houlong.wei@mediatek.com \
    --cc=jassisinghbrar@gmail.com \
    --cc=jiaguang.zhang@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=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.