Commit d9c26e0a authored by Chun-Kuang Hu's avatar Chun-Kuang Hu Committed by Jassi Brar
Browse files

mailbox: mtk-cmdq: Remove proprietary cmdq_task_cb



rx_callback is a standard mailbox callback mechanism and could cover the
function of proprietary cmdq_task_cb, so use the standard one instead of
the proprietary one. Client driver has changed to use standard
rx_callback, so remove proprietary cmdq_task_cb.

Signed-off-by: default avatarChun-Kuang Hu <chunkuang.hu@kernel.org>
Reviewed-by: default avatarMatthias Brugger <matthias.bgg@gmail.com>
Signed-off-by: default avatarJassi Brar <jaswinder.singh@linaro.org>
parent e0dccc3b
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -192,15 +192,10 @@ static bool cmdq_thread_is_in_wfe(struct cmdq_thread *thread)

static void cmdq_task_exec_done(struct cmdq_task *task, int sta)
{
	struct cmdq_task_cb *cb = &task->pkt->async_cb;
	struct cmdq_cb_data data;

	data.sta = sta;
	data.data = cb->data;
	data.pkt = task->pkt;
	if (cb->cb)
		cb->cb(data);

	mbox_chan_received_data(task->thread->chan, &data);

	list_del(&task->list_entry);
@@ -448,7 +443,6 @@ static void cmdq_mbox_shutdown(struct mbox_chan *chan)
static int cmdq_mbox_flush(struct mbox_chan *chan, unsigned long timeout)
{
	struct cmdq_thread *thread = (struct cmdq_thread *)chan->con_priv;
	struct cmdq_task_cb *cb;
	struct cmdq_cb_data data;
	struct cmdq *cmdq = dev_get_drvdata(chan->mbox->dev);
	struct cmdq_task *task, *tmp;
@@ -465,13 +459,8 @@ static int cmdq_mbox_flush(struct mbox_chan *chan, unsigned long timeout)

	list_for_each_entry_safe(task, tmp, &thread->task_busy_list,
				 list_entry) {
		cb = &task->pkt->async_cb;
		data.sta = -ECONNABORTED;
		data.data = cb->data;
		data.pkt = task->pkt;
		if (cb->cb)
			cb->cb(data);

		mbox_chan_received_data(task->thread->chan, &data);
		list_del(&task->list_entry);
		kfree(task);
+0 −10
Original line number Diff line number Diff line
@@ -67,24 +67,14 @@ enum cmdq_code {

struct cmdq_cb_data {
	int			sta;
	void			*data;
	struct cmdq_pkt		*pkt;
};

typedef void (*cmdq_async_flush_cb)(struct cmdq_cb_data data);

struct cmdq_task_cb {
	cmdq_async_flush_cb	cb;
	void			*data;
};

struct cmdq_pkt {
	void			*va_base;
	dma_addr_t		pa_base;
	size_t			cmd_buf_size; /* command occupied size */
	size_t			buf_size; /* real buffer size */
	struct cmdq_task_cb	cb;
	struct cmdq_task_cb	async_cb;
	void			*cl;
};