mirror of https://gitee.com/openkylin/linux.git
soc: mediatek: cmdq: Remove cmdq_pkt_flush()
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 <chunkuang.hu@kernel.org> Link: https://lore.kernel.org/r/20201202235856.7652-1-chunkuang.hu@kernel.org Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
This commit is contained in:
parent
207f13b419
commit
1570db1da9
|
@ -463,36 +463,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->cmplt);
|
||||
}
|
||||
|
||||
int cmdq_pkt_flush(struct cmdq_pkt *pkt)
|
||||
{
|
||||
struct cmdq_flush_completion cmplt;
|
||||
int err;
|
||||
|
||||
init_completion(&cmplt.cmplt);
|
||||
err = cmdq_pkt_flush_async(pkt, cmdq_pkt_flush_cb, &cmplt);
|
||||
if (err < 0)
|
||||
return err;
|
||||
wait_for_completion(&cmplt.cmplt);
|
||||
|
||||
return cmplt.err ? -EFAULT : 0;
|
||||
}
|
||||
EXPORT_SYMBOL(cmdq_pkt_flush);
|
||||
|
||||
MODULE_LICENSE("GPL v2");
|
||||
|
|
|
@ -280,16 +280,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__ */
|
||||
|
|
Loading…
Reference in New Issue