Re: [PATCH] soc: mediatek: cmdq: Remove cmdq_pkt_flush()

2021-01-31 Thread Matthias Brugger



On 30/01/2021 10:45, Chun-Kuang Hu wrote:
> Hi, Matthias:
> 
> Chun-Kuang Hu  於 2021年1月10日 週日 上午6:59寫道:
>>
>> Hi, Matthias:
>>
>> Chun-Kuang Hu  於 2020年12月3日 週四 上午7:59寫道:
>>>
>>> rx_callback is a standard mailbox callback mechanism and could
>>> cover the function of proprietary cmdq_task_cb, so it is better
>>> to use the standard one instead of the proprietary one. But
>>> register rx_callback should before mbox_request_channel(),
>>> so remove cmdq_pkt_flush() and let client driver implement
>>> its own synchronous flush.
>>
>> How do you think about this patch? This patch is derived from [1]
>> according to Jassi's suggestion [2].
>>
>> [1] 
>> https://patchwork.kernel.org/project/linux-mediatek/patch/20200927230422.11610-3-chunkuang...@kernel.org/
>> [2] 
>> https://patchwork.kernel.org/project/linux-mediatek/cover/20200927230422.11610-1-chunkuang...@kernel.org/
> 
> Just a ping.
> 

Applied now to v5.11-next/soc

Sorry for the delay.
Matthias

> Regards,
> Chun-Kuang.
> 
>>
>> Regards,
>> Chun-Kuang.
>>
>>>
>>> Signed-off-by: Chun-Kuang Hu 
>>> ---
>>>  drivers/soc/mediatek/mtk-cmdq-helper.c | 32 --
>>>  include/linux/soc/mediatek/mtk-cmdq.h  | 12 --
>>>  2 files changed, 44 deletions(-)
>>>
>>> diff --git a/drivers/soc/mediatek/mtk-cmdq-helper.c 
>>> b/drivers/soc/mediatek/mtk-cmdq-helper.c
>>> index 505651b0d715..fd3bc39538a1 100644
>>> --- a/drivers/soc/mediatek/mtk-cmdq-helper.c
>>> +++ b/drivers/soc/mediatek/mtk-cmdq-helper.c
>>> @@ -502,36 +502,4 @@ int cmdq_pkt_flush_async(struct cmdq_pkt *pkt, 
>>> cmdq_async_flush_cb cb,
>>>  }
>>>  EXPORT_SYMBOL(cmdq_pkt_flush_async);
>>>
>>> -struct cmdq_flush_completion {
>>> -   struct completion cmplt;
>>> -   bool err;
>>> -};
>>> -
>>> -static void cmdq_pkt_flush_cb(struct cmdq_cb_data data)
>>> -{
>>> -   struct cmdq_flush_completion *cmplt;
>>> -
>>> -   cmplt = (struct cmdq_flush_completion *)data.data;
>>> -   if (data.sta != CMDQ_CB_NORMAL)
>>> -   cmplt->err = true;
>>> -   else
>>> -   cmplt->err = false;
>>> -   complete(>cmplt);
>>> -}
>>> -
>>> -int cmdq_pkt_flush(struct cmdq_pkt *pkt)
>>> -{
>>> -   struct cmdq_flush_completion cmplt;
>>> -   int err;
>>> -
>>> -   init_completion();
>>> -   err = cmdq_pkt_flush_async(pkt, cmdq_pkt_flush_cb, );
>>> -   if (err < 0)
>>> -   return err;
>>> -   wait_for_completion();
>>> -
>>> -   return cmplt.err ? -EFAULT : 0;
>>> -}
>>> -EXPORT_SYMBOL(cmdq_pkt_flush);
>>> -
>>>  MODULE_LICENSE("GPL v2");
>>> diff --git a/include/linux/soc/mediatek/mtk-cmdq.h 
>>> b/include/linux/soc/mediatek/mtk-cmdq.h
>>> index 960704d75994..2c6aa84c0e80 100644
>>> --- a/include/linux/soc/mediatek/mtk-cmdq.h
>>> +++ b/include/linux/soc/mediatek/mtk-cmdq.h
>>> @@ -288,16 +288,4 @@ int cmdq_pkt_finalize(struct cmdq_pkt *pkt);
>>>  int cmdq_pkt_flush_async(struct cmdq_pkt *pkt, cmdq_async_flush_cb cb,
>>>  void *data);
>>>
>>> -/**
>>> - * cmdq_pkt_flush() - trigger CMDQ to execute the CMDQ packet
>>> - * @pkt:   the CMDQ packet
>>> - *
>>> - * Return: 0 for success; else the error code is returned
>>> - *
>>> - * Trigger CMDQ to execute the CMDQ packet. Note that this is a
>>> - * synchronous flush function. When the function returned, the recorded
>>> - * commands have been done.
>>> - */
>>> -int cmdq_pkt_flush(struct cmdq_pkt *pkt);
>>> -
>>>  #endif /* __MTK_CMDQ_H__ */
>>> --
>>> 2.17.1
>>>


Re: [PATCH] soc: mediatek: cmdq: Remove cmdq_pkt_flush()

2021-01-30 Thread Chun-Kuang Hu
Hi, Matthias:

Chun-Kuang Hu  於 2021年1月10日 週日 上午6:59寫道:
>
> Hi, Matthias:
>
> Chun-Kuang Hu  於 2020年12月3日 週四 上午7:59寫道:
> >
> > rx_callback is a standard mailbox callback mechanism and could
> > cover the function of proprietary cmdq_task_cb, so it is better
> > to use the standard one instead of the proprietary one. But
> > register rx_callback should before mbox_request_channel(),
> > so remove cmdq_pkt_flush() and let client driver implement
> > its own synchronous flush.
>
> How do you think about this patch? This patch is derived from [1]
> according to Jassi's suggestion [2].
>
> [1] 
> https://patchwork.kernel.org/project/linux-mediatek/patch/20200927230422.11610-3-chunkuang...@kernel.org/
> [2] 
> https://patchwork.kernel.org/project/linux-mediatek/cover/20200927230422.11610-1-chunkuang...@kernel.org/

Just a ping.

Regards,
Chun-Kuang.

>
> Regards,
> Chun-Kuang.
>
> >
> > Signed-off-by: Chun-Kuang Hu 
> > ---
> >  drivers/soc/mediatek/mtk-cmdq-helper.c | 32 --
> >  include/linux/soc/mediatek/mtk-cmdq.h  | 12 --
> >  2 files changed, 44 deletions(-)
> >
> > diff --git a/drivers/soc/mediatek/mtk-cmdq-helper.c 
> > b/drivers/soc/mediatek/mtk-cmdq-helper.c
> > index 505651b0d715..fd3bc39538a1 100644
> > --- a/drivers/soc/mediatek/mtk-cmdq-helper.c
> > +++ b/drivers/soc/mediatek/mtk-cmdq-helper.c
> > @@ -502,36 +502,4 @@ int cmdq_pkt_flush_async(struct cmdq_pkt *pkt, 
> > cmdq_async_flush_cb cb,
> >  }
> >  EXPORT_SYMBOL(cmdq_pkt_flush_async);
> >
> > -struct cmdq_flush_completion {
> > -   struct completion cmplt;
> > -   bool err;
> > -};
> > -
> > -static void cmdq_pkt_flush_cb(struct cmdq_cb_data data)
> > -{
> > -   struct cmdq_flush_completion *cmplt;
> > -
> > -   cmplt = (struct cmdq_flush_completion *)data.data;
> > -   if (data.sta != CMDQ_CB_NORMAL)
> > -   cmplt->err = true;
> > -   else
> > -   cmplt->err = false;
> > -   complete(>cmplt);
> > -}
> > -
> > -int cmdq_pkt_flush(struct cmdq_pkt *pkt)
> > -{
> > -   struct cmdq_flush_completion cmplt;
> > -   int err;
> > -
> > -   init_completion();
> > -   err = cmdq_pkt_flush_async(pkt, cmdq_pkt_flush_cb, );
> > -   if (err < 0)
> > -   return err;
> > -   wait_for_completion();
> > -
> > -   return cmplt.err ? -EFAULT : 0;
> > -}
> > -EXPORT_SYMBOL(cmdq_pkt_flush);
> > -
> >  MODULE_LICENSE("GPL v2");
> > diff --git a/include/linux/soc/mediatek/mtk-cmdq.h 
> > b/include/linux/soc/mediatek/mtk-cmdq.h
> > index 960704d75994..2c6aa84c0e80 100644
> > --- a/include/linux/soc/mediatek/mtk-cmdq.h
> > +++ b/include/linux/soc/mediatek/mtk-cmdq.h
> > @@ -288,16 +288,4 @@ int cmdq_pkt_finalize(struct cmdq_pkt *pkt);
> >  int cmdq_pkt_flush_async(struct cmdq_pkt *pkt, cmdq_async_flush_cb cb,
> >  void *data);
> >
> > -/**
> > - * cmdq_pkt_flush() - trigger CMDQ to execute the CMDQ packet
> > - * @pkt:   the CMDQ packet
> > - *
> > - * Return: 0 for success; else the error code is returned
> > - *
> > - * Trigger CMDQ to execute the CMDQ packet. Note that this is a
> > - * synchronous flush function. When the function returned, the recorded
> > - * commands have been done.
> > - */
> > -int cmdq_pkt_flush(struct cmdq_pkt *pkt);
> > -
> >  #endif /* __MTK_CMDQ_H__ */
> > --
> > 2.17.1
> >


Re: [PATCH] soc: mediatek: cmdq: Remove cmdq_pkt_flush()

2021-01-09 Thread Chun-Kuang Hu
Hi, Matthias:

Chun-Kuang Hu  於 2020年12月3日 週四 上午7:59寫道:
>
> rx_callback is a standard mailbox callback mechanism and could
> cover the function of proprietary cmdq_task_cb, so it is better
> to use the standard one instead of the proprietary one. But
> register rx_callback should before mbox_request_channel(),
> so remove cmdq_pkt_flush() and let client driver implement
> its own synchronous flush.

How do you think about this patch? This patch is derived from [1]
according to Jassi's suggestion [2].

[1] 
https://patchwork.kernel.org/project/linux-mediatek/patch/20200927230422.11610-3-chunkuang...@kernel.org/
[2] 
https://patchwork.kernel.org/project/linux-mediatek/cover/20200927230422.11610-1-chunkuang...@kernel.org/

Regards,
Chun-Kuang.

>
> Signed-off-by: Chun-Kuang Hu 
> ---
>  drivers/soc/mediatek/mtk-cmdq-helper.c | 32 --
>  include/linux/soc/mediatek/mtk-cmdq.h  | 12 --
>  2 files changed, 44 deletions(-)
>
> diff --git a/drivers/soc/mediatek/mtk-cmdq-helper.c 
> b/drivers/soc/mediatek/mtk-cmdq-helper.c
> index 505651b0d715..fd3bc39538a1 100644
> --- a/drivers/soc/mediatek/mtk-cmdq-helper.c
> +++ b/drivers/soc/mediatek/mtk-cmdq-helper.c
> @@ -502,36 +502,4 @@ int cmdq_pkt_flush_async(struct cmdq_pkt *pkt, 
> cmdq_async_flush_cb cb,
>  }
>  EXPORT_SYMBOL(cmdq_pkt_flush_async);
>
> -struct cmdq_flush_completion {
> -   struct completion cmplt;
> -   bool err;
> -};
> -
> -static void cmdq_pkt_flush_cb(struct cmdq_cb_data data)
> -{
> -   struct cmdq_flush_completion *cmplt;
> -
> -   cmplt = (struct cmdq_flush_completion *)data.data;
> -   if (data.sta != CMDQ_CB_NORMAL)
> -   cmplt->err = true;
> -   else
> -   cmplt->err = false;
> -   complete(>cmplt);
> -}
> -
> -int cmdq_pkt_flush(struct cmdq_pkt *pkt)
> -{
> -   struct cmdq_flush_completion cmplt;
> -   int err;
> -
> -   init_completion();
> -   err = cmdq_pkt_flush_async(pkt, cmdq_pkt_flush_cb, );
> -   if (err < 0)
> -   return err;
> -   wait_for_completion();
> -
> -   return cmplt.err ? -EFAULT : 0;
> -}
> -EXPORT_SYMBOL(cmdq_pkt_flush);
> -
>  MODULE_LICENSE("GPL v2");
> diff --git a/include/linux/soc/mediatek/mtk-cmdq.h 
> b/include/linux/soc/mediatek/mtk-cmdq.h
> index 960704d75994..2c6aa84c0e80 100644
> --- a/include/linux/soc/mediatek/mtk-cmdq.h
> +++ b/include/linux/soc/mediatek/mtk-cmdq.h
> @@ -288,16 +288,4 @@ int cmdq_pkt_finalize(struct cmdq_pkt *pkt);
>  int cmdq_pkt_flush_async(struct cmdq_pkt *pkt, cmdq_async_flush_cb cb,
>  void *data);
>
> -/**
> - * cmdq_pkt_flush() - trigger CMDQ to execute the CMDQ packet
> - * @pkt:   the CMDQ packet
> - *
> - * Return: 0 for success; else the error code is returned
> - *
> - * Trigger CMDQ to execute the CMDQ packet. Note that this is a
> - * synchronous flush function. When the function returned, the recorded
> - * commands have been done.
> - */
> -int cmdq_pkt_flush(struct cmdq_pkt *pkt);
> -
>  #endif /* __MTK_CMDQ_H__ */
> --
> 2.17.1
>


[PATCH] soc: mediatek: cmdq: Remove cmdq_pkt_flush()

2020-12-02 Thread Chun-Kuang Hu
rx_callback is a standard mailbox callback mechanism and could
cover the function of proprietary cmdq_task_cb, so it is better
to use the standard one instead of the proprietary one. But
register rx_callback should before mbox_request_channel(),
so remove cmdq_pkt_flush() and let client driver implement
its own synchronous flush.

Signed-off-by: Chun-Kuang Hu 
---
 drivers/soc/mediatek/mtk-cmdq-helper.c | 32 --
 include/linux/soc/mediatek/mtk-cmdq.h  | 12 --
 2 files changed, 44 deletions(-)

diff --git a/drivers/soc/mediatek/mtk-cmdq-helper.c 
b/drivers/soc/mediatek/mtk-cmdq-helper.c
index 505651b0d715..fd3bc39538a1 100644
--- a/drivers/soc/mediatek/mtk-cmdq-helper.c
+++ b/drivers/soc/mediatek/mtk-cmdq-helper.c
@@ -502,36 +502,4 @@ int cmdq_pkt_flush_async(struct cmdq_pkt *pkt, 
cmdq_async_flush_cb cb,
 }
 EXPORT_SYMBOL(cmdq_pkt_flush_async);
 
-struct cmdq_flush_completion {
-   struct completion cmplt;
-   bool err;
-};
-
-static void cmdq_pkt_flush_cb(struct cmdq_cb_data data)
-{
-   struct cmdq_flush_completion *cmplt;
-
-   cmplt = (struct cmdq_flush_completion *)data.data;
-   if (data.sta != CMDQ_CB_NORMAL)
-   cmplt->err = true;
-   else
-   cmplt->err = false;
-   complete(>cmplt);
-}
-
-int cmdq_pkt_flush(struct cmdq_pkt *pkt)
-{
-   struct cmdq_flush_completion cmplt;
-   int err;
-
-   init_completion();
-   err = cmdq_pkt_flush_async(pkt, cmdq_pkt_flush_cb, );
-   if (err < 0)
-   return err;
-   wait_for_completion();
-
-   return cmplt.err ? -EFAULT : 0;
-}
-EXPORT_SYMBOL(cmdq_pkt_flush);
-
 MODULE_LICENSE("GPL v2");
diff --git a/include/linux/soc/mediatek/mtk-cmdq.h 
b/include/linux/soc/mediatek/mtk-cmdq.h
index 960704d75994..2c6aa84c0e80 100644
--- a/include/linux/soc/mediatek/mtk-cmdq.h
+++ b/include/linux/soc/mediatek/mtk-cmdq.h
@@ -288,16 +288,4 @@ int cmdq_pkt_finalize(struct cmdq_pkt *pkt);
 int cmdq_pkt_flush_async(struct cmdq_pkt *pkt, cmdq_async_flush_cb cb,
 void *data);
 
-/**
- * cmdq_pkt_flush() - trigger CMDQ to execute the CMDQ packet
- * @pkt:   the CMDQ packet
- *
- * Return: 0 for success; else the error code is returned
- *
- * Trigger CMDQ to execute the CMDQ packet. Note that this is a
- * synchronous flush function. When the function returned, the recorded
- * commands have been done.
- */
-int cmdq_pkt_flush(struct cmdq_pkt *pkt);
-
 #endif /* __MTK_CMDQ_H__ */
-- 
2.17.1