Message ID | 20210314233323.23377-2-chunkuang.hu@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Refine mtk-cmdq-mailbox callback mechanism | expand |
Hi, Jassi: Chun-Kuang Hu <chunkuang.hu@kernel.org> 於 2021年3月15日 週一 上午7:33寫道: > > cmdq_cb_status is an error status. Use the standard error number > instead of cmdq_cb_status to prevent status duplication. How do you think about this series? Regards, Chun-Kuang. > > Cc: Jassi Brar <jassisinghbrar@gmail.com> > Cc: Matthias Brugger <matthias.bgg@gmail.com> > Cc: Houlong Wei <houlong.wei@mediatek.com> > Cc: Bibby Hsieh <bibby.hsieh@mediatek.com> > Cc: Dennis YC Hsieh <dennis-yc.hsieh@mediatek.com> > Cc: linux-kernel@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-mediatek@lists.infradead.org > Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> > --- > drivers/mailbox/mtk-cmdq-mailbox.c | 10 +++++----- > include/linux/mailbox/mtk-cmdq-mailbox.h | 7 +------ > 2 files changed, 6 insertions(+), 11 deletions(-) > > diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c b/drivers/mailbox/mtk-cmdq-mailbox.c > index 5665b6ea8119..3d37c1cd40f1 100644 > --- a/drivers/mailbox/mtk-cmdq-mailbox.c > +++ b/drivers/mailbox/mtk-cmdq-mailbox.c > @@ -180,7 +180,7 @@ static bool cmdq_thread_is_in_wfe(struct cmdq_thread *thread) > return readl(thread->base + CMDQ_THR_WAIT_TOKEN) & CMDQ_THR_IS_WAITING; > } > > -static void cmdq_task_exec_done(struct cmdq_task *task, enum cmdq_cb_status sta) > +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; > @@ -244,10 +244,10 @@ static void cmdq_thread_irq_handler(struct cmdq *cmdq, > curr_task = task; > > if (!curr_task || curr_pa == task_end_pa - CMDQ_INST_SIZE) { > - cmdq_task_exec_done(task, CMDQ_CB_NORMAL); > + cmdq_task_exec_done(task, 0); > kfree(task); > } else if (err) { > - cmdq_task_exec_done(task, CMDQ_CB_ERROR); > + cmdq_task_exec_done(task, -ENOEXEC); > cmdq_task_handle_error(curr_task); > kfree(task); > } > @@ -415,7 +415,7 @@ static void cmdq_mbox_shutdown(struct mbox_chan *chan) > > list_for_each_entry_safe(task, tmp, &thread->task_busy_list, > list_entry) { > - cmdq_task_exec_done(task, CMDQ_CB_ERROR); > + cmdq_task_exec_done(task, -ECONNABORTED); > kfree(task); > } > > @@ -453,7 +453,7 @@ static int cmdq_mbox_flush(struct mbox_chan *chan, unsigned long timeout) > list_entry) { > cb = &task->pkt->async_cb; > if (cb->cb) { > - data.sta = CMDQ_CB_ERROR; > + data.sta = -ECONNABORTED; > data.data = cb->data; > cb->cb(data); > } > diff --git a/include/linux/mailbox/mtk-cmdq-mailbox.h b/include/linux/mailbox/mtk-cmdq-mailbox.h > index d5a983d65f05..2f7d9a37d611 100644 > --- a/include/linux/mailbox/mtk-cmdq-mailbox.h > +++ b/include/linux/mailbox/mtk-cmdq-mailbox.h > @@ -65,13 +65,8 @@ enum cmdq_code { > CMDQ_CODE_LOGIC = 0xa0, > }; > > -enum cmdq_cb_status { > - CMDQ_CB_NORMAL = 0, > - CMDQ_CB_ERROR > -}; > - > struct cmdq_cb_data { > - enum cmdq_cb_status sta; > + int sta; > void *data; > }; > > -- > 2.17.1 >
On Wed, May 19, 2021 at 6:21 AM Chun-Kuang Hu <chunkuang.hu@kernel.org> wrote: > > Hi, Jassi: > > Chun-Kuang Hu <chunkuang.hu@kernel.org> 於 2021年3月15日 週一 上午7:33寫道: > > > > cmdq_cb_status is an error status. Use the standard error number > > instead of cmdq_cb_status to prevent status duplication. > > How do you think about this series? > Hmm, I can't remember the reason I didn't pick. But it was definitely under "todo" label. I will pick it. BTW, it helps to see Acked-by's from someone working for the h/w vendor. thanks.
+ Yongqiang Chun-Kuang Hu <chunkuang.hu@kernel.org> 於 2021年3月15日 週一 上午7:33寫道: > > cmdq_cb_status is an error status. Use the standard error number > instead of cmdq_cb_status to prevent status duplication. > > Cc: Jassi Brar <jassisinghbrar@gmail.com> > Cc: Matthias Brugger <matthias.bgg@gmail.com> > Cc: Houlong Wei <houlong.wei@mediatek.com> > Cc: Bibby Hsieh <bibby.hsieh@mediatek.com> > Cc: Dennis YC Hsieh <dennis-yc.hsieh@mediatek.com> > Cc: linux-kernel@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-mediatek@lists.infradead.org > Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> > --- > drivers/mailbox/mtk-cmdq-mailbox.c | 10 +++++----- > include/linux/mailbox/mtk-cmdq-mailbox.h | 7 +------ > 2 files changed, 6 insertions(+), 11 deletions(-) > > diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c b/drivers/mailbox/mtk-cmdq-mailbox.c > index 5665b6ea8119..3d37c1cd40f1 100644 > --- a/drivers/mailbox/mtk-cmdq-mailbox.c > +++ b/drivers/mailbox/mtk-cmdq-mailbox.c > @@ -180,7 +180,7 @@ static bool cmdq_thread_is_in_wfe(struct cmdq_thread *thread) > return readl(thread->base + CMDQ_THR_WAIT_TOKEN) & CMDQ_THR_IS_WAITING; > } > > -static void cmdq_task_exec_done(struct cmdq_task *task, enum cmdq_cb_status sta) > +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; > @@ -244,10 +244,10 @@ static void cmdq_thread_irq_handler(struct cmdq *cmdq, > curr_task = task; > > if (!curr_task || curr_pa == task_end_pa - CMDQ_INST_SIZE) { > - cmdq_task_exec_done(task, CMDQ_CB_NORMAL); > + cmdq_task_exec_done(task, 0); > kfree(task); > } else if (err) { > - cmdq_task_exec_done(task, CMDQ_CB_ERROR); > + cmdq_task_exec_done(task, -ENOEXEC); > cmdq_task_handle_error(curr_task); > kfree(task); > } > @@ -415,7 +415,7 @@ static void cmdq_mbox_shutdown(struct mbox_chan *chan) > > list_for_each_entry_safe(task, tmp, &thread->task_busy_list, > list_entry) { > - cmdq_task_exec_done(task, CMDQ_CB_ERROR); > + cmdq_task_exec_done(task, -ECONNABORTED); > kfree(task); > } > > @@ -453,7 +453,7 @@ static int cmdq_mbox_flush(struct mbox_chan *chan, unsigned long timeout) > list_entry) { > cb = &task->pkt->async_cb; > if (cb->cb) { > - data.sta = CMDQ_CB_ERROR; > + data.sta = -ECONNABORTED; > data.data = cb->data; > cb->cb(data); > } > diff --git a/include/linux/mailbox/mtk-cmdq-mailbox.h b/include/linux/mailbox/mtk-cmdq-mailbox.h > index d5a983d65f05..2f7d9a37d611 100644 > --- a/include/linux/mailbox/mtk-cmdq-mailbox.h > +++ b/include/linux/mailbox/mtk-cmdq-mailbox.h > @@ -65,13 +65,8 @@ enum cmdq_code { > CMDQ_CODE_LOGIC = 0xa0, > }; > > -enum cmdq_cb_status { > - CMDQ_CB_NORMAL = 0, > - CMDQ_CB_ERROR > -}; > - > struct cmdq_cb_data { > - enum cmdq_cb_status sta; > + int sta; > void *data; > }; > > -- > 2.17.1 >
Reviewed-by: Yongqiang Niu <yongqiang.niu@mediatek.com> On Wed, 2021-05-26 at 14:15 +0800, Chun-Kuang Hu wrote: > + Yongqiang > > Chun-Kuang Hu <chunkuang.hu@kernel.org> 於 2021年3月15日 週一 上午7:33寫道: > > > > cmdq_cb_status is an error status. Use the standard error number > > instead of cmdq_cb_status to prevent status duplication. > > > > Cc: Jassi Brar <jassisinghbrar@gmail.com> > > Cc: Matthias Brugger <matthias.bgg@gmail.com> > > Cc: Houlong Wei <houlong.wei@mediatek.com> > > Cc: Bibby Hsieh <bibby.hsieh@mediatek.com> > > Cc: Dennis YC Hsieh <dennis-yc.hsieh@mediatek.com> > > Cc: linux-kernel@vger.kernel.org > > Cc: linux-arm-kernel@lists.infradead.org > > Cc: linux-mediatek@lists.infradead.org > > Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> > > --- > > drivers/mailbox/mtk-cmdq-mailbox.c | 10 +++++----- > > include/linux/mailbox/mtk-cmdq-mailbox.h | 7 +------ > > 2 files changed, 6 insertions(+), 11 deletions(-) > > > > diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c b/drivers/mailbox/mtk-cmdq-mailbox.c > > index 5665b6ea8119..3d37c1cd40f1 100644 > > --- a/drivers/mailbox/mtk-cmdq-mailbox.c > > +++ b/drivers/mailbox/mtk-cmdq-mailbox.c > > @@ -180,7 +180,7 @@ static bool cmdq_thread_is_in_wfe(struct cmdq_thread *thread) > > return readl(thread->base + CMDQ_THR_WAIT_TOKEN) & CMDQ_THR_IS_WAITING; > > } > > > > -static void cmdq_task_exec_done(struct cmdq_task *task, enum cmdq_cb_status sta) > > +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; > > @@ -244,10 +244,10 @@ static void cmdq_thread_irq_handler(struct cmdq *cmdq, > > curr_task = task; > > > > if (!curr_task || curr_pa == task_end_pa - CMDQ_INST_SIZE) { > > - cmdq_task_exec_done(task, CMDQ_CB_NORMAL); > > + cmdq_task_exec_done(task, 0); > > kfree(task); > > } else if (err) { > > - cmdq_task_exec_done(task, CMDQ_CB_ERROR); > > + cmdq_task_exec_done(task, -ENOEXEC); > > cmdq_task_handle_error(curr_task); > > kfree(task); > > } > > @@ -415,7 +415,7 @@ static void cmdq_mbox_shutdown(struct mbox_chan *chan) > > > > list_for_each_entry_safe(task, tmp, &thread->task_busy_list, > > list_entry) { > > - cmdq_task_exec_done(task, CMDQ_CB_ERROR); > > + cmdq_task_exec_done(task, -ECONNABORTED); > > kfree(task); > > } > > > > @@ -453,7 +453,7 @@ static int cmdq_mbox_flush(struct mbox_chan *chan, unsigned long timeout) > > list_entry) { > > cb = &task->pkt->async_cb; > > if (cb->cb) { > > - data.sta = CMDQ_CB_ERROR; > > + data.sta = -ECONNABORTED; > > data.data = cb->data; > > cb->cb(data); > > } > > diff --git a/include/linux/mailbox/mtk-cmdq-mailbox.h b/include/linux/mailbox/mtk-cmdq-mailbox.h > > index d5a983d65f05..2f7d9a37d611 100644 > > --- a/include/linux/mailbox/mtk-cmdq-mailbox.h > > +++ b/include/linux/mailbox/mtk-cmdq-mailbox.h > > @@ -65,13 +65,8 @@ enum cmdq_code { > > CMDQ_CODE_LOGIC = 0xa0, > > }; > > > > -enum cmdq_cb_status { > > - CMDQ_CB_NORMAL = 0, > > - CMDQ_CB_ERROR > > -}; > > - > > struct cmdq_cb_data { > > - enum cmdq_cb_status sta; > > + int sta; > > void *data; > > }; > > > > -- > > 2.17.1 > >
Hi, Jassi: Jassi Brar <jassisinghbrar@gmail.com> 於 2021年5月20日 週四 下午9:55寫道: > > On Wed, May 19, 2021 at 6:21 AM Chun-Kuang Hu <chunkuang.hu@kernel.org> wrote: > > > > Hi, Jassi: > > > > Chun-Kuang Hu <chunkuang.hu@kernel.org> 於 2021年3月15日 週一 上午7:33寫道: > > > > > > cmdq_cb_status is an error status. Use the standard error number > > > instead of cmdq_cb_status to prevent status duplication. > > > > How do you think about this series? > > > Hmm, I can't remember the reason I didn't pick. But it was definitely > under "todo" label. I will pick it. > BTW, it helps to see Acked-by's from someone working for the h/w vendor. Yongqiang is working for the h/w vendor and have reviewed this series, does this get any help? Regards, Chun-Kuang. > > thanks.
diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c b/drivers/mailbox/mtk-cmdq-mailbox.c index 5665b6ea8119..3d37c1cd40f1 100644 --- a/drivers/mailbox/mtk-cmdq-mailbox.c +++ b/drivers/mailbox/mtk-cmdq-mailbox.c @@ -180,7 +180,7 @@ static bool cmdq_thread_is_in_wfe(struct cmdq_thread *thread) return readl(thread->base + CMDQ_THR_WAIT_TOKEN) & CMDQ_THR_IS_WAITING; } -static void cmdq_task_exec_done(struct cmdq_task *task, enum cmdq_cb_status sta) +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; @@ -244,10 +244,10 @@ static void cmdq_thread_irq_handler(struct cmdq *cmdq, curr_task = task; if (!curr_task || curr_pa == task_end_pa - CMDQ_INST_SIZE) { - cmdq_task_exec_done(task, CMDQ_CB_NORMAL); + cmdq_task_exec_done(task, 0); kfree(task); } else if (err) { - cmdq_task_exec_done(task, CMDQ_CB_ERROR); + cmdq_task_exec_done(task, -ENOEXEC); cmdq_task_handle_error(curr_task); kfree(task); } @@ -415,7 +415,7 @@ static void cmdq_mbox_shutdown(struct mbox_chan *chan) list_for_each_entry_safe(task, tmp, &thread->task_busy_list, list_entry) { - cmdq_task_exec_done(task, CMDQ_CB_ERROR); + cmdq_task_exec_done(task, -ECONNABORTED); kfree(task); } @@ -453,7 +453,7 @@ static int cmdq_mbox_flush(struct mbox_chan *chan, unsigned long timeout) list_entry) { cb = &task->pkt->async_cb; if (cb->cb) { - data.sta = CMDQ_CB_ERROR; + data.sta = -ECONNABORTED; data.data = cb->data; cb->cb(data); } diff --git a/include/linux/mailbox/mtk-cmdq-mailbox.h b/include/linux/mailbox/mtk-cmdq-mailbox.h index d5a983d65f05..2f7d9a37d611 100644 --- a/include/linux/mailbox/mtk-cmdq-mailbox.h +++ b/include/linux/mailbox/mtk-cmdq-mailbox.h @@ -65,13 +65,8 @@ enum cmdq_code { CMDQ_CODE_LOGIC = 0xa0, }; -enum cmdq_cb_status { - CMDQ_CB_NORMAL = 0, - CMDQ_CB_ERROR -}; - struct cmdq_cb_data { - enum cmdq_cb_status sta; + int sta; void *data; };
cmdq_cb_status is an error status. Use the standard error number instead of cmdq_cb_status to prevent status duplication. Cc: Jassi Brar <jassisinghbrar@gmail.com> Cc: Matthias Brugger <matthias.bgg@gmail.com> Cc: Houlong Wei <houlong.wei@mediatek.com> Cc: Bibby Hsieh <bibby.hsieh@mediatek.com> Cc: Dennis YC Hsieh <dennis-yc.hsieh@mediatek.com> Cc: linux-kernel@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mediatek@lists.infradead.org Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> --- drivers/mailbox/mtk-cmdq-mailbox.c | 10 +++++----- include/linux/mailbox/mtk-cmdq-mailbox.h | 7 +------ 2 files changed, 6 insertions(+), 11 deletions(-)