From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.4 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0A377C3F2C6 for ; Fri, 6 Mar 2020 03:56:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CFC6E206E2 for ; Fri, 6 Mar 2020 03:56:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="Pt9qHsl3" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726524AbgCFD4B (ORCPT ); Thu, 5 Mar 2020 22:56:01 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:15514 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726300AbgCFD4B (ORCPT ); Thu, 5 Mar 2020 22:56:01 -0500 X-UUID: 4dfc0d7054d4428a975660398e013419-20200306 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=HbvwGK3+J6EJNiSbZ0JadzfJDjJt686R95a2GVph8QM=; b=Pt9qHsl3RzuWTINl1JAmLkik/Uw15ZlDNd/4tPte5SF/FCpz7oxVFWPHDmqs3SrfbQTb8oNfu9wztXl2a28HYOIitRAOlA7PDy1spu1k29e381ORdupWegTfX7Hz0/5W6I3qoSoYPUjtsyRMYnrBPc82YZyUmvVGaN86GwU+9ms=; X-UUID: 4dfc0d7054d4428a975660398e013419-20200306 Received: from mtkexhb01.mediatek.inc [(172.21.101.102)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1715054070; Fri, 06 Mar 2020 11:55:50 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs08n2.mediatek.inc (172.21.101.56) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 6 Mar 2020 11:54:29 +0800 Received: from [172.21.77.4] (172.21.77.4) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Fri, 6 Mar 2020 11:53:06 +0800 Message-ID: <1583466941.18586.1.camel@mtksdaap41> Subject: Re: [PATCH v1 2/3] mailbox: mediatek: implement flush function From: Bibby Hsieh To: Jassi Brar CC: CK Hu , Matthias Brugger , Rob Herring , , , , , , "Nicolas Boichat" , Dennis-YC Hsieh , Houlong Wei Date: Fri, 6 Mar 2020 11:55:41 +0800 In-Reply-To: <1581931765.12547.0.camel@mtksdaap41> References: <20200217090532.16019-1-bibby.hsieh@mediatek.com> <20200217090532.16019-3-bibby.hsieh@mediatek.com> <1581931765.12547.0.camel@mtksdaap41> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: 269D5AFE256631CE763A7BA8ECC2A47A2B9957979F165F20397039FB87C414FF2000:8 X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGksIEphc3NpLA0KDQpodHRwczovL3BhdGNod29yay5rZXJuZWwub3JnL2NvdmVyLzExMzg1ODM5 Lw0KDQpJIHB1c2ggYSBzZXJpZXMgb2YgcGF0Y2hlcyBhYm91dCByZW1vdmUgYXRvbWljX2V4ZWMg ZmVhdHVyZSBpbiBNZWRpYXRlaw0KQ01EUSBkcml2ZXIuIENvdWxkIHlvdSBwbGVhc2UgcmV2aWV3 IHRoZW0gaWYgeW91IGFyZSBmcmVlPw0KDQpUaGFua3MNCg0KT24gTW9uLCAyMDIwLTAyLTE3IGF0 IDE3OjI5ICswODAwLCBDSyBIdSB3cm90ZToNCj4gSGksIEJpYmJ5Og0KPiANCj4gT24gTW9uLCAy MDIwLTAyLTE3IGF0IDE3OjA1ICswODAwLCBCaWJieSBIc2llaCB3cm90ZToNCj4gPiBGb3IgY2xp ZW50IGRyaXZlciB3aGljaCBuZWVkIHRvIHJlb3JnYW5pemUgdGhlIGNvbW1hbmQgYnVmZmVyLCBp dCBjb3VsZA0KPiA+IHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGZsdXNoIHRoZSBzZW5kIGNvbW1hbmQg YnVmZmVyLg0KPiA+IElmIHRoZSBjaGFubmVsIGRvZXNuJ3QgYmUgc3RhcnRlZCAodXN1YWxseSBp biB3YWl0aW5nIGZvciBldmVudCksIHRoaXMNCj4gPiBmdW5jdGlvbiB3aWxsIGFib3J0IGl0IGRp cmVjdGx5Lg0KPiA+IA0KPiANCj4gUmV2aWV3ZWQtYnk6IENLIEh1IDxjay5odUBtZWRpYXRlay5j b20+DQo+IA0KPiA+IFNpZ25lZC1vZmYtYnk6IEJpYmJ5IEhzaWVoIDxiaWJieS5oc2llaEBtZWRp YXRlay5jb20+DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvbWFpbGJveC9tdGstY21kcS1tYWlsYm94 LmMgfCA1MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgMSBmaWxlIGNoYW5n ZWQsIDUyIGluc2VydGlvbnMoKykNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWls Ym94L210ay1jbWRxLW1haWxib3guYyBiL2RyaXZlcnMvbWFpbGJveC9tdGstY21kcS1tYWlsYm94 LmMNCj4gPiBpbmRleCA5YTZjZTlmNWE3ZGIuLjBkYTVlMmRjMmMwZSAxMDA2NDQNCj4gPiAtLS0g YS9kcml2ZXJzL21haWxib3gvbXRrLWNtZHEtbWFpbGJveC5jDQo+ID4gKysrIGIvZHJpdmVycy9t YWlsYm94L210ay1jbWRxLW1haWxib3guYw0KPiA+IEBAIC00MzIsMTAgKzQzMiw2MiBAQCBzdGF0 aWMgdm9pZCBjbWRxX21ib3hfc2h1dGRvd24oc3RydWN0IG1ib3hfY2hhbiAqY2hhbikNCj4gPiAg ew0KPiA+ICB9DQo+ID4gIA0KPiA+ICtzdGF0aWMgaW50IGNtZHFfbWJveF9mbHVzaChzdHJ1Y3Qg bWJveF9jaGFuICpjaGFuLCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpDQo+ID4gK3sNCj4gPiArCXN0 cnVjdCBjbWRxX3RocmVhZCAqdGhyZWFkID0gKHN0cnVjdCBjbWRxX3RocmVhZCAqKWNoYW4tPmNv bl9wcml2Ow0KPiA+ICsJc3RydWN0IGNtZHFfdGFza19jYiAqY2I7DQo+ID4gKwlzdHJ1Y3QgY21k cV9jYl9kYXRhIGRhdGE7DQo+ID4gKwlzdHJ1Y3QgY21kcSAqY21kcSA9IGRldl9nZXRfZHJ2ZGF0 YShjaGFuLT5tYm94LT5kZXYpOw0KPiA+ICsJc3RydWN0IGNtZHFfdGFzayAqdGFzaywgKnRtcDsN Cj4gPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+ID4gKwl1MzIgZW5hYmxlOw0KPiA+ICsNCj4g PiArCXNwaW5fbG9ja19pcnFzYXZlKCZ0aHJlYWQtPmNoYW4tPmxvY2ssIGZsYWdzKTsNCj4gPiAr CWlmIChsaXN0X2VtcHR5KCZ0aHJlYWQtPnRhc2tfYnVzeV9saXN0KSkNCj4gPiArCQlnb3RvIG91 dDsNCj4gPiArDQo+ID4gKwlXQVJOX09OKGNtZHFfdGhyZWFkX3N1c3BlbmQoY21kcSwgdGhyZWFk KSA8IDApOw0KPiA+ICsJaWYgKCFjbWRxX3RocmVhZF9pc19pbl93ZmUodGhyZWFkKSkNCj4gPiAr CQlnb3RvIHdhaXQ7DQo+ID4gKw0KPiA+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHRhc2ss IHRtcCwgJnRocmVhZC0+dGFza19idXN5X2xpc3QsDQo+ID4gKwkJCQkgbGlzdF9lbnRyeSkgew0K PiA+ICsJCWNiID0gJnRhc2stPnBrdC0+YXN5bmNfY2I7DQo+ID4gKwkJaWYgKGNiLT5jYikgew0K PiA+ICsJCQlkYXRhLnN0YSA9IENNRFFfQ0JfRVJST1I7DQo+ID4gKwkJCWRhdGEuZGF0YSA9IGNi LT5kYXRhOw0KPiA+ICsJCQljYi0+Y2IoZGF0YSk7DQo+ID4gKwkJfQ0KPiA+ICsJCWxpc3RfZGVs KCZ0YXNrLT5saXN0X2VudHJ5KTsNCj4gPiArCQlrZnJlZSh0YXNrKTsNCj4gPiArCX0NCj4gPiAr DQo+ID4gKwljbWRxX3RocmVhZF9yZXN1bWUodGhyZWFkKTsNCj4gPiArCWNtZHFfdGhyZWFkX2Rp c2FibGUoY21kcSwgdGhyZWFkKTsNCj4gPiArCWNsa19kaXNhYmxlKGNtZHEtPmNsb2NrKTsNCj4g PiArDQo+ID4gK291dDoNCj4gPiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnRocmVhZC0+Y2hh bi0+bG9jaywgZmxhZ3MpOw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gKw0KPiA+ICt3YWl0Og0KPiA+ ICsJY21kcV90aHJlYWRfcmVzdW1lKHRocmVhZCk7DQo+ID4gKwlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZ0aHJlYWQtPmNoYW4tPmxvY2ssIGZsYWdzKTsNCj4gPiArCWlmIChyZWFkbF9wb2xsX3Rp bWVvdXRfYXRvbWljKHRocmVhZC0+YmFzZSArIENNRFFfVEhSX0VOQUJMRV9UQVNLLA0KPiA+ICsJ CQkJICAgICAgZW5hYmxlLCBlbmFibGUgPT0gMCwgMSwgdGltZW91dCkpIHsNCj4gPiArCQlkZXZf ZXJyKGNtZHEtPm1ib3guZGV2LCAiRmFpbCB0byB3YWl0IEdDRSB0aHJlYWQgMHgleCBkb25lXG4i LA0KPiA+ICsJCQkodTMyKSh0aHJlYWQtPmJhc2UgLSBjbWRxLT5iYXNlKSk7DQo+ID4gKw0KPiA+ ICsJCXJldHVybiAtRUZBVUxUOw0KPiA+ICsJfQ0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4g PiArDQo+ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWJveF9jaGFuX29wcyBjbWRxX21ib3hfY2hh bl9vcHMgPSB7DQo+ID4gIAkuc2VuZF9kYXRhID0gY21kcV9tYm94X3NlbmRfZGF0YSwNCj4gPiAg CS5zdGFydHVwID0gY21kcV9tYm94X3N0YXJ0dXAsDQo+ID4gIAkuc2h1dGRvd24gPSBjbWRxX21i b3hfc2h1dGRvd24sDQo+ID4gKwkuZmx1c2ggPSBjbWRxX21ib3hfZmx1c2gsDQo+ID4gIH07DQo+ ID4gIA0KPiA+ICBzdGF0aWMgc3RydWN0IG1ib3hfY2hhbiAqY21kcV94bGF0ZShzdHJ1Y3QgbWJv eF9jb250cm9sbGVyICptYm94LA0KPiANCj4gDQoNCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DFD83C3F2CE for ; Fri, 6 Mar 2020 04:06:19 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B56E92072D for ; Fri, 6 Mar 2020 04:06:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="qIwuzzYz"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="uKiWET/2" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B56E92072D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=XLNUGeLkaPtoddid8qpGW8pSsvG5KP63TRkpvE7ng4k=; b=qIwuzzYz256vAr 7vFiVMQcvvfx5svT0t3lwN/WeI+2RdIX2SzgaRbSadcDjTdHggpVXFl8CyEGT1yxOeHdYPZWJdwl4 6V4+V2FvEnSWMtZ4fVCVyGbEYAadcy9XN7Hww5arB6noc6ToKwfjIEXGdaXmdM5gLbjA1Gx6odNC0 2nkPPOzv1Kj1gs0+KEj2pNizzLatSL9w4oT4j8S1TSGVV4Ze1quxIc+9whWywoKZ4p1XiwqdVtaSm JOrESkae/LpskCtPnQ9SFyyn8Lgg+PRx6XnjHCdjlYY5kPwZt9L/6XMwVpYrHsL2/X1CO0AJFCHOy ahFpZyVFwvFbASEa9H6g==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jA4FX-0002oK-Ds; Fri, 06 Mar 2020 04:06:11 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jA4FP-0002hL-TI; Fri, 06 Mar 2020 04:06:05 +0000 X-UUID: 4ce4a1f2e74b4cc78829d8dc4fd9f5c2-20200305 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=HbvwGK3+J6EJNiSbZ0JadzfJDjJt686R95a2GVph8QM=; b=uKiWET/2SI6kAvqgTgBgJYEOJiUReLrEKizAui8f3GOicKogIF0o1o2PUjf6eOnvdZXY28nTNXU7Uw567Ggn7RqWCpcxujzqvqxfQ5D+kQUB/JDXZ1G31fpfbK2FiVD6HX1d0q/RqzMaUg2bxrSJPJvO+Oyca96wO0lLbKTaRsQ=; X-UUID: 4ce4a1f2e74b4cc78829d8dc4fd9f5c2-20200305 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 1479581992; Thu, 05 Mar 2020 20:05:58 -0800 Received: from mtkmbs08n2.mediatek.inc (172.21.101.56) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 5 Mar 2020 19:55:55 -0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs08n2.mediatek.inc (172.21.101.56) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 6 Mar 2020 11:54:29 +0800 Received: from [172.21.77.4] (172.21.77.4) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Fri, 6 Mar 2020 11:53:06 +0800 Message-ID: <1583466941.18586.1.camel@mtksdaap41> Subject: Re: [PATCH v1 2/3] mailbox: mediatek: implement flush function From: Bibby Hsieh To: Jassi Brar Date: Fri, 6 Mar 2020 11:55:41 +0800 In-Reply-To: <1581931765.12547.0.camel@mtksdaap41> References: <20200217090532.16019-1-bibby.hsieh@mediatek.com> <20200217090532.16019-3-bibby.hsieh@mediatek.com> <1581931765.12547.0.camel@mtksdaap41> X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: 269D5AFE256631CE763A7BA8ECC2A47A2B9957979F165F20397039FB87C414FF2000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200305_200603_956019_77F2A19D X-CRM114-Status: GOOD ( 16.27 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Nicolas Boichat , srv_heupstream@mediatek.com, linux-kernel@vger.kernel.org, Houlong Wei , Dennis-YC Hsieh , Matthias Brugger , Rob Herring , linux-mediatek@lists.infradead.org, CK Hu , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org Hi, Jassi, https://patchwork.kernel.org/cover/11385839/ I push a series of patches about remove atomic_exec feature in Mediatek CMDQ driver. Could you please review them if you are free? Thanks On Mon, 2020-02-17 at 17:29 +0800, CK Hu wrote: > Hi, Bibby: > > On Mon, 2020-02-17 at 17:05 +0800, Bibby Hsieh wrote: > > For client driver which need to reorganize the command buffer, it could > > use this function to flush the send command buffer. > > If the channel doesn't be started (usually in waiting for event), this > > function will abort it directly. > > > > Reviewed-by: CK Hu > > > Signed-off-by: Bibby Hsieh > > --- > > drivers/mailbox/mtk-cmdq-mailbox.c | 52 ++++++++++++++++++++++++++++++ > > 1 file changed, 52 insertions(+) > > > > diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c b/drivers/mailbox/mtk-cmdq-mailbox.c > > index 9a6ce9f5a7db..0da5e2dc2c0e 100644 > > --- a/drivers/mailbox/mtk-cmdq-mailbox.c > > +++ b/drivers/mailbox/mtk-cmdq-mailbox.c > > @@ -432,10 +432,62 @@ 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; > > + unsigned long flags; > > + u32 enable; > > + > > + spin_lock_irqsave(&thread->chan->lock, flags); > > + if (list_empty(&thread->task_busy_list)) > > + goto out; > > + > > + WARN_ON(cmdq_thread_suspend(cmdq, thread) < 0); > > + if (!cmdq_thread_is_in_wfe(thread)) > > + goto wait; > > + > > + list_for_each_entry_safe(task, tmp, &thread->task_busy_list, > > + list_entry) { > > + cb = &task->pkt->async_cb; > > + if (cb->cb) { > > + data.sta = CMDQ_CB_ERROR; > > + data.data = cb->data; > > + cb->cb(data); > > + } > > + list_del(&task->list_entry); > > + kfree(task); > > + } > > + > > + cmdq_thread_resume(thread); > > + cmdq_thread_disable(cmdq, thread); > > + clk_disable(cmdq->clock); > > + > > +out: > > + spin_unlock_irqrestore(&thread->chan->lock, flags); > > + return 0; > > + > > +wait: > > + cmdq_thread_resume(thread); > > + spin_unlock_irqrestore(&thread->chan->lock, flags); > > + if (readl_poll_timeout_atomic(thread->base + CMDQ_THR_ENABLE_TASK, > > + enable, enable == 0, 1, timeout)) { > > + dev_err(cmdq->mbox.dev, "Fail to wait GCE thread 0x%x done\n", > > + (u32)(thread->base - cmdq->base)); > > + > > + return -EFAULT; > > + } > > + return 0; > > +} > > + > > static const struct mbox_chan_ops cmdq_mbox_chan_ops = { > > .send_data = cmdq_mbox_send_data, > > .startup = cmdq_mbox_startup, > > .shutdown = cmdq_mbox_shutdown, > > + .flush = cmdq_mbox_flush, > > }; > > > > static struct mbox_chan *cmdq_xlate(struct mbox_controller *mbox, > > _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D9DDAC3F2CE for ; Fri, 6 Mar 2020 04:06:08 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AA81E2072A for ; Fri, 6 Mar 2020 04:06:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="I/V0oCsm"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="uKiWET/2" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AA81E2072A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Tzc8f2o4uzwF/qHiX7X8a2vC01N/SsfDOFIls8LcZvk=; b=I/V0oCsmrvjFWc GU5WJNVSzX9tZNOhNURgFU4PeCsMjY4PdXAsYGshTD7o2PQa3/jg/E7z+OMvVJvLTEX2PjEd7oO3l W11fHCJPtKdjEyx1naTZgCx4r0LbWU1VO2bMY8EEWNl5u3ThZHYoa+wbG3jv3YKLrS7/lgxPWnvpf vfLjhJK/sTmWWZr2N+Iio2VztqAb6qW/QlGydYuiwr698ILHq+CV6MGZVbsmkzJ6RN+K5zFYOf6gy /Rz4Yd3iVT9OscDX0HuLDgmYL52yosZu7WbWUtQq7aUIGH7CqSOhxlUcJA5hkeMuByo7ZQDx1og+E bX1pkKZBq7sobRGHrjKQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jA4FT-0002iI-3T; Fri, 06 Mar 2020 04:06:07 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jA4FP-0002hL-TI; Fri, 06 Mar 2020 04:06:05 +0000 X-UUID: 4ce4a1f2e74b4cc78829d8dc4fd9f5c2-20200305 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=HbvwGK3+J6EJNiSbZ0JadzfJDjJt686R95a2GVph8QM=; b=uKiWET/2SI6kAvqgTgBgJYEOJiUReLrEKizAui8f3GOicKogIF0o1o2PUjf6eOnvdZXY28nTNXU7Uw567Ggn7RqWCpcxujzqvqxfQ5D+kQUB/JDXZ1G31fpfbK2FiVD6HX1d0q/RqzMaUg2bxrSJPJvO+Oyca96wO0lLbKTaRsQ=; X-UUID: 4ce4a1f2e74b4cc78829d8dc4fd9f5c2-20200305 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 1479581992; Thu, 05 Mar 2020 20:05:58 -0800 Received: from mtkmbs08n2.mediatek.inc (172.21.101.56) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 5 Mar 2020 19:55:55 -0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs08n2.mediatek.inc (172.21.101.56) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 6 Mar 2020 11:54:29 +0800 Received: from [172.21.77.4] (172.21.77.4) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Fri, 6 Mar 2020 11:53:06 +0800 Message-ID: <1583466941.18586.1.camel@mtksdaap41> Subject: Re: [PATCH v1 2/3] mailbox: mediatek: implement flush function From: Bibby Hsieh To: Jassi Brar Date: Fri, 6 Mar 2020 11:55:41 +0800 In-Reply-To: <1581931765.12547.0.camel@mtksdaap41> References: <20200217090532.16019-1-bibby.hsieh@mediatek.com> <20200217090532.16019-3-bibby.hsieh@mediatek.com> <1581931765.12547.0.camel@mtksdaap41> X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: 269D5AFE256631CE763A7BA8ECC2A47A2B9957979F165F20397039FB87C414FF2000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200305_200603_956019_77F2A19D X-CRM114-Status: GOOD ( 16.27 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Nicolas Boichat , srv_heupstream@mediatek.com, linux-kernel@vger.kernel.org, Houlong Wei , Dennis-YC Hsieh , Matthias Brugger , Rob Herring , linux-mediatek@lists.infradead.org, CK Hu , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi, Jassi, https://patchwork.kernel.org/cover/11385839/ I push a series of patches about remove atomic_exec feature in Mediatek CMDQ driver. Could you please review them if you are free? Thanks On Mon, 2020-02-17 at 17:29 +0800, CK Hu wrote: > Hi, Bibby: > > On Mon, 2020-02-17 at 17:05 +0800, Bibby Hsieh wrote: > > For client driver which need to reorganize the command buffer, it could > > use this function to flush the send command buffer. > > If the channel doesn't be started (usually in waiting for event), this > > function will abort it directly. > > > > Reviewed-by: CK Hu > > > Signed-off-by: Bibby Hsieh > > --- > > drivers/mailbox/mtk-cmdq-mailbox.c | 52 ++++++++++++++++++++++++++++++ > > 1 file changed, 52 insertions(+) > > > > diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c b/drivers/mailbox/mtk-cmdq-mailbox.c > > index 9a6ce9f5a7db..0da5e2dc2c0e 100644 > > --- a/drivers/mailbox/mtk-cmdq-mailbox.c > > +++ b/drivers/mailbox/mtk-cmdq-mailbox.c > > @@ -432,10 +432,62 @@ 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; > > + unsigned long flags; > > + u32 enable; > > + > > + spin_lock_irqsave(&thread->chan->lock, flags); > > + if (list_empty(&thread->task_busy_list)) > > + goto out; > > + > > + WARN_ON(cmdq_thread_suspend(cmdq, thread) < 0); > > + if (!cmdq_thread_is_in_wfe(thread)) > > + goto wait; > > + > > + list_for_each_entry_safe(task, tmp, &thread->task_busy_list, > > + list_entry) { > > + cb = &task->pkt->async_cb; > > + if (cb->cb) { > > + data.sta = CMDQ_CB_ERROR; > > + data.data = cb->data; > > + cb->cb(data); > > + } > > + list_del(&task->list_entry); > > + kfree(task); > > + } > > + > > + cmdq_thread_resume(thread); > > + cmdq_thread_disable(cmdq, thread); > > + clk_disable(cmdq->clock); > > + > > +out: > > + spin_unlock_irqrestore(&thread->chan->lock, flags); > > + return 0; > > + > > +wait: > > + cmdq_thread_resume(thread); > > + spin_unlock_irqrestore(&thread->chan->lock, flags); > > + if (readl_poll_timeout_atomic(thread->base + CMDQ_THR_ENABLE_TASK, > > + enable, enable == 0, 1, timeout)) { > > + dev_err(cmdq->mbox.dev, "Fail to wait GCE thread 0x%x done\n", > > + (u32)(thread->base - cmdq->base)); > > + > > + return -EFAULT; > > + } > > + return 0; > > +} > > + > > static const struct mbox_chan_ops cmdq_mbox_chan_ops = { > > .send_data = cmdq_mbox_send_data, > > .startup = cmdq_mbox_startup, > > .shutdown = cmdq_mbox_shutdown, > > + .flush = cmdq_mbox_flush, > > }; > > > > static struct mbox_chan *cmdq_xlate(struct mbox_controller *mbox, > > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel