Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753152AbcJKCko (ORCPT ); Mon, 10 Oct 2016 22:40:44 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:7077 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1753081AbcJKCkm (ORCPT ); Mon, 10 Oct 2016 22:40:42 -0400 Message-ID: <1476153632.477.2.camel@mtksdaap41> Subject: Re: [PATCH v14 2/4] CMDQ: Mediatek CMDQ driver From: Horng-Shyang Liao To: Jassi Brar CC: CK Hu , Daniel Kurtz , "Monica Wang" , Jiaguang Zhang , Nicolas Boichat , Jassi Brar , cawa cheng , Bibby Hsieh , YT Shen , Damon Chu , Devicetree List , Sascha Hauer , "Daoyuan Huang" , Sascha Hauer , Glory Hung , Rob Herring , , Matthias Brugger , "linux-arm-kernel@lists.infradead.org" , , Josh-YC Liu , lkml , Dennis-YC Hsieh , Philipp Zabel , Date: Tue, 11 Oct 2016 10:40:32 +0800 In-Reply-To: References: <1473039885-24009-1-git-send-email-hs.liao@mediatek.com> <1473039885-24009-3-git-send-email-hs.liao@mediatek.com> <1475204778.13398.28.camel@mtksdaap41> <1475225778.25044.35.camel@mtksdaap41> <1475226691.13398.35.camel@mtksdaap41> <1475228829.3658.1.camel@mtksdaap41> <1475636064.21937.25.camel@mtksdaap41> <1475670705.335.27.camel@mtksdaap41> <1475758897.4102.31.camel@mtksdaap41> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.3-0ubuntu6 Content-Transfer-Encoding: 7bit MIME-Version: 1.0 X-MTK: N Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1402 Lines: 31 On Thu, 2016-10-06 at 18:40 +0530, Jassi Brar wrote: > On 6 October 2016 at 18:31, Horng-Shyang Liao wrote: > > > Back to our original statement, we need to flush all tasks to queue > > in GCE HW; i.e. we need to use mbox_client_txdone after > > mbox_send_message, or send tx_done once mailbox controller receive > > message (task). However, we still need a way to notice done tasks to > > clients. Currently, we don't have a good way to call callback in mailbox > > framework. Therefore, CMDQ driver has its owner callback functions. > > > mbox_client_txdone() is called by the client driver when only it knows > the messages has been transmitted (i.e your submitted tasks are done). > Obviously the client driver should do any callbacks to its users > upstream. Hi Jassi, In current CMDQ driver, mbox_client_txdone() is called to prevent the blocking of chan->active_req. It is not the real point of CMDQ task done, so the client driver cannot do any callbacks to its user upstream. (1) If we don't use mbox_client_txdone(), could you tell us an alternative way to prevent the blocking of chan->active_req? And then we can use tx_done when CMDQ task is relly done. (2) If we use mbox_client_txdone() to prevent the blocking of chan->active_req, could CMDQ driver just uses self-defined callback function to notice client driver CMDQ task done? Thanks, HS