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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F1907C433F5 for ; Fri, 19 Nov 2021 00:02:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C587161ABD for ; Fri, 19 Nov 2021 00:02:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231710AbhKSAFB (ORCPT ); Thu, 18 Nov 2021 19:05:01 -0500 Received: from mail.kernel.org ([198.145.29.99]:57954 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230331AbhKSAFA (ORCPT ); Thu, 18 Nov 2021 19:05:00 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7DFFD61AD0 for ; Fri, 19 Nov 2021 00:01:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1637280119; bh=AoNZd47gCGaimK9v5NfigphGWhTSDsXfAmbFC4BIlz4=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=Lmq7eHFQfyyikTZkqVB4YTGA+sw+e7PKhSPSxzUx9AAn0X6/GyE6UcqLyYm4BmD24 +xCYcoK+WvTm0LWxHMNIPZ4ALkoGI1YTyzsZCONyYdXjiDe+KS6/H0ELH+UMwSMOam BGN627Tvg879jCfHGN8vVIQNeBjxpb7TqfiZMVqHvPbF2zeq/NUEmTCQUdSizO7CXc 1KecLoH2ubW8vlFF3DB+0dPkwjiveEp1kL/Y2zihwpysKNT1dhoXlcDdrytZIDgPz2 Gh4Peu3R30ixCYiGCfTB5d+bxidTRRWTsgLXKa6R67N0INmd8oUpRng7z1QzvwLmzU cOgsFYbpdvifg== Received: by mail-ed1-f47.google.com with SMTP id b15so34701087edd.7 for ; Thu, 18 Nov 2021 16:01:59 -0800 (PST) X-Gm-Message-State: AOAM531nBuJWujOhiS5JLY95FKHVYz03pOTowsfhqceHzkZWQ69i1LW1 NHQFmQGe1xSrMcoGrz3u+uRvVXEkn3gyq5I55Q== X-Google-Smtp-Source: ABdhPJzJ+m25jkKAHUC8dqOXn/CxWb6mvvVoe7NwAcoZoKeWFquNa7VfncVxf9FsAbU+dFfNaujeGSmcwQHUHnIoiD0= X-Received: by 2002:a50:e608:: with SMTP id y8mr16990077edm.39.1637280117833; Thu, 18 Nov 2021 16:01:57 -0800 (PST) MIME-Version: 1.0 References: <20211117064158.27451-1-jason-jh.lin@mediatek.com> <20211117064158.27451-3-jason-jh.lin@mediatek.com> In-Reply-To: <20211117064158.27451-3-jason-jh.lin@mediatek.com> From: Chun-Kuang Hu Date: Fri, 19 Nov 2021 08:01:46 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 2/3] mailbox: add cmdq_mbox_flush to clear all task before suspend To: "jason-jh.lin" Cc: Chun-Kuang Hu , Philipp Zabel , Matthias Brugger , Jassi Brar , David Airlie , Daniel Vetter , DRI Development , "moderated list:ARM/Mediatek SoC support" , Linux ARM , linux-kernel , Hsin-Yi Wang , Fei Shao , tzungbi@google.com, Nancy Lin , singo.chang@mediatek.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Jason: jason-jh.lin =E6=96=BC 2021=E5=B9=B411=E6=9C=88= 17=E6=97=A5 =E9=80=B1=E4=B8=89 =E4=B8=8B=E5=8D=882:42=E5=AF=AB=E9=81=93=EF= =BC=9A > > CMDQ driver will occupy GCE clock to execute the task in GCE thread. > > So call cmdq_mbox_flush to clear all task in GCE thread before > CMDQ suspend. > > Signed-off-by: jason-jh.lin > --- > drivers/mailbox/mtk-cmdq-mailbox.c | 9 +++------ > 1 file changed, 3 insertions(+), 6 deletions(-) > > diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c b/drivers/mailbox/mtk-cmd= q-mailbox.c > index 03f9ed4c5131..28cadfc0091b 100644 > --- a/drivers/mailbox/mtk-cmdq-mailbox.c > +++ b/drivers/mailbox/mtk-cmdq-mailbox.c > @@ -484,21 +484,18 @@ static int cmdq_suspend(struct device *dev) > struct cmdq *cmdq =3D dev_get_drvdata(dev); > struct cmdq_thread *thread; > int i; > - bool task_running =3D false; > > cmdq->suspended =3D true; > > for (i =3D 0; i < cmdq->thread_nr; i++) { > thread =3D &cmdq->thread[i]; > if (!list_empty(&thread->task_busy_list)) { > - task_running =3D true; > - break; > + /* try to clear all task in this thread */ > + cmdq_mbox_flush(thread->chan, 2000); I would like the normal control flow rather than error handling. So the normal control flow is: 1. Client driver suspend: Flush command. 2. CMDQ driver suspend: There is no command to flush. If there are command, show error message and debug the client driver. The error handling flow: 1. Client driver suspend: Does not flush command. 2. CMDQ driver suspend: Flush command and callback to client driver. Client driver process these callback as error handling. The client driver may integrate multiple driver. In the suspend flow, it may need to stop these driver in a sequence such as. 1. Stop driver 1 2. Stop driver 2 3. Stop driver 3 (cmdq) 4. Stop driver 4 5. Stop driver 5. In the normal flow, client driver could control the stop flow. In the error handling flow, it does not match the stop flow. Regards, Chun-Kuang. > + dev_warn(dev, "thread[%d] exist running task(s) i= n suspend\n", i); > } > } > > - if (task_running) > - dev_warn(dev, "exist running task(s) in suspend\n"); > - > clk_bulk_unprepare(cmdq->gce_num, cmdq->clocks); > > return 0; > -- > 2.18.0 > 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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 32401C433F5 for ; Fri, 19 Nov 2021 00:02:20 +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 E77016113D for ; Fri, 19 Nov 2021 00:02:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org E77016113D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=z3o6lGxK3lSMUbBMfwqSsjEBexsItcjLIi+1Hx4vkdQ=; b=bJ169WQ5T2v/tR g9mtkUiS4uKXnCkumNODpZwRr+5oE8zgDyroOsvuau/96STYIrOX9ChbQfKpewltoxGMNLB4/rhun V5jCOlDNN/MIpFC5v1GfskGstxmBCpbEYDzACwLaJL8DP520UuQME9ggGMey8LRnYCXygoRNf09RH 62ymwcZjVMVBUuRJyJZSHt93Akdk6LAvYTBpQZWgZ8sc4CxpFMehTCr4/b8yKHpLlrbIQXBLZW8eP 5zNEzPxkdcPvouLYcXtS8N2CWjhjAuioz2U8U6/BzJBrx9K1gA9yGjDmQo5y3US+V4mZkARBYwp3+ EonghJ5oqTVMtoGBX2MQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mnrM5-0094EP-QA; Fri, 19 Nov 2021 00:02:13 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mnrLs-0094C8-FR; Fri, 19 Nov 2021 00:02:01 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 5E7866113D; Fri, 19 Nov 2021 00:01:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1637280119; bh=AoNZd47gCGaimK9v5NfigphGWhTSDsXfAmbFC4BIlz4=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=Lmq7eHFQfyyikTZkqVB4YTGA+sw+e7PKhSPSxzUx9AAn0X6/GyE6UcqLyYm4BmD24 +xCYcoK+WvTm0LWxHMNIPZ4ALkoGI1YTyzsZCONyYdXjiDe+KS6/H0ELH+UMwSMOam BGN627Tvg879jCfHGN8vVIQNeBjxpb7TqfiZMVqHvPbF2zeq/NUEmTCQUdSizO7CXc 1KecLoH2ubW8vlFF3DB+0dPkwjiveEp1kL/Y2zihwpysKNT1dhoXlcDdrytZIDgPz2 Gh4Peu3R30ixCYiGCfTB5d+bxidTRRWTsgLXKa6R67N0INmd8oUpRng7z1QzvwLmzU cOgsFYbpdvifg== Received: by mail-ed1-f52.google.com with SMTP id e3so34696006edu.4; Thu, 18 Nov 2021 16:01:59 -0800 (PST) X-Gm-Message-State: AOAM532N8xL5yopkgd2HexfKUuXo/pcy/8BqtTSuEEWPha7FfvuKgNcg DHTD8mzPkQCFDVmVNmrEPeGzGqJUFDnoO6BDbw== X-Google-Smtp-Source: ABdhPJzJ+m25jkKAHUC8dqOXn/CxWb6mvvVoe7NwAcoZoKeWFquNa7VfncVxf9FsAbU+dFfNaujeGSmcwQHUHnIoiD0= X-Received: by 2002:a50:e608:: with SMTP id y8mr16990077edm.39.1637280117833; Thu, 18 Nov 2021 16:01:57 -0800 (PST) MIME-Version: 1.0 References: <20211117064158.27451-1-jason-jh.lin@mediatek.com> <20211117064158.27451-3-jason-jh.lin@mediatek.com> In-Reply-To: <20211117064158.27451-3-jason-jh.lin@mediatek.com> From: Chun-Kuang Hu Date: Fri, 19 Nov 2021 08:01:46 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 2/3] mailbox: add cmdq_mbox_flush to clear all task before suspend To: "jason-jh.lin" Cc: Chun-Kuang Hu , Philipp Zabel , Matthias Brugger , Jassi Brar , David Airlie , Daniel Vetter , DRI Development , "moderated list:ARM/Mediatek SoC support" , Linux ARM , linux-kernel , Hsin-Yi Wang , Fei Shao , tzungbi@google.com, Nancy Lin , singo.chang@mediatek.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211118_160200_599753_634DDF28 X-CRM114-Status: GOOD ( 22.40 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org SGksIEphc29uOgoKamFzb24tamgubGluIDxqYXNvbi1qaC5saW5AbWVkaWF0ZWsuY29tPiDmlrwg MjAyMeW5tDEx5pyIMTfml6Ug6YCx5LiJIOS4i+WNiDI6NDLlr6vpgZPvvJoKPgo+IENNRFEgZHJp dmVyIHdpbGwgb2NjdXB5IEdDRSBjbG9jayB0byBleGVjdXRlIHRoZSB0YXNrIGluIEdDRSB0aHJl YWQuCj4KPiBTbyBjYWxsIGNtZHFfbWJveF9mbHVzaCB0byBjbGVhciBhbGwgdGFzayBpbiBHQ0Ug dGhyZWFkIGJlZm9yZQo+IENNRFEgc3VzcGVuZC4KPgo+IFNpZ25lZC1vZmYtYnk6IGphc29uLWpo LmxpbiA8amFzb24tamgubGluQG1lZGlhdGVrLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9tYWlsYm94 L210ay1jbWRxLW1haWxib3guYyB8IDkgKysrLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWls Ym94L210ay1jbWRxLW1haWxib3guYyBiL2RyaXZlcnMvbWFpbGJveC9tdGstY21kcS1tYWlsYm94 LmMKPiBpbmRleCAwM2Y5ZWQ0YzUxMzEuLjI4Y2FkZmMwMDkxYiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL21haWxib3gvbXRrLWNtZHEtbWFpbGJveC5jCj4gKysrIGIvZHJpdmVycy9tYWlsYm94L210 ay1jbWRxLW1haWxib3guYwo+IEBAIC00ODQsMjEgKzQ4NCwxOCBAQCBzdGF0aWMgaW50IGNtZHFf c3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gICAgICAgICBzdHJ1Y3QgY21kcSAqY21kcSA9 IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICAgICAgICAgc3RydWN0IGNtZHFfdGhyZWFkICp0aHJl YWQ7Cj4gICAgICAgICBpbnQgaTsKPiAtICAgICAgIGJvb2wgdGFza19ydW5uaW5nID0gZmFsc2U7 Cj4KPiAgICAgICAgIGNtZHEtPnN1c3BlbmRlZCA9IHRydWU7Cj4KPiAgICAgICAgIGZvciAoaSA9 IDA7IGkgPCBjbWRxLT50aHJlYWRfbnI7IGkrKykgewo+ICAgICAgICAgICAgICAgICB0aHJlYWQg PSAmY21kcS0+dGhyZWFkW2ldOwo+ICAgICAgICAgICAgICAgICBpZiAoIWxpc3RfZW1wdHkoJnRo cmVhZC0+dGFza19idXN5X2xpc3QpKSB7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgdGFza19y dW5uaW5nID0gdHJ1ZTsKPiAtICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAg ICAgICAgICAgICAgICAgICAvKiB0cnkgdG8gY2xlYXIgYWxsIHRhc2sgaW4gdGhpcyB0aHJlYWQg Ki8KPiArICAgICAgICAgICAgICAgICAgICAgICBjbWRxX21ib3hfZmx1c2godGhyZWFkLT5jaGFu LCAyMDAwKTsKCkkgd291bGQgbGlrZSB0aGUgbm9ybWFsIGNvbnRyb2wgZmxvdyByYXRoZXIgdGhh biBlcnJvciBoYW5kbGluZy4gU28KdGhlIG5vcm1hbCBjb250cm9sIGZsb3cgaXM6CgoxLiBDbGll bnQgZHJpdmVyIHN1c3BlbmQ6IEZsdXNoIGNvbW1hbmQuCjIuIENNRFEgZHJpdmVyIHN1c3BlbmQ6 IFRoZXJlIGlzIG5vIGNvbW1hbmQgdG8gZmx1c2guIElmIHRoZXJlIGFyZQpjb21tYW5kLCBzaG93 IGVycm9yIG1lc3NhZ2UgYW5kIGRlYnVnIHRoZSBjbGllbnQgZHJpdmVyLgoKVGhlIGVycm9yIGhh bmRsaW5nIGZsb3c6CgoxLiBDbGllbnQgZHJpdmVyIHN1c3BlbmQ6IERvZXMgbm90IGZsdXNoIGNv bW1hbmQuCjIuIENNRFEgZHJpdmVyIHN1c3BlbmQ6IEZsdXNoIGNvbW1hbmQgYW5kIGNhbGxiYWNr IHRvIGNsaWVudCBkcml2ZXIuCkNsaWVudCBkcml2ZXIgcHJvY2VzcyB0aGVzZSBjYWxsYmFjayBh cyBlcnJvciBoYW5kbGluZy4KClRoZSBjbGllbnQgZHJpdmVyIG1heSBpbnRlZ3JhdGUgbXVsdGlw bGUgZHJpdmVyLiBJbiB0aGUgc3VzcGVuZCBmbG93LAppdCBtYXkgbmVlZCB0byBzdG9wIHRoZXNl IGRyaXZlciBpbiBhIHNlcXVlbmNlIHN1Y2ggYXMuCgoxLiBTdG9wIGRyaXZlciAxCjIuIFN0b3Ag ZHJpdmVyIDIKMy4gU3RvcCBkcml2ZXIgMyAoY21kcSkKNC4gU3RvcCBkcml2ZXIgNAo1LiBTdG9w IGRyaXZlciA1LgoKSW4gdGhlIG5vcm1hbCBmbG93LCBjbGllbnQgZHJpdmVyIGNvdWxkIGNvbnRy b2wgdGhlIHN0b3AgZmxvdy4gSW4gdGhlCmVycm9yIGhhbmRsaW5nIGZsb3csIGl0IGRvZXMgbm90 IG1hdGNoIHRoZSBzdG9wIGZsb3cuCgpSZWdhcmRzLApDaHVuLUt1YW5nLgoKPiArICAgICAgICAg ICAgICAgICAgICAgICBkZXZfd2FybihkZXYsICJ0aHJlYWRbJWRdIGV4aXN0IHJ1bm5pbmcgdGFz ayhzKSBpbiBzdXNwZW5kXG4iLCBpKTsKPiAgICAgICAgICAgICAgICAgfQo+ICAgICAgICAgfQo+ Cj4gLSAgICAgICBpZiAodGFza19ydW5uaW5nKQo+IC0gICAgICAgICAgICAgICBkZXZfd2Fybihk ZXYsICJleGlzdCBydW5uaW5nIHRhc2socykgaW4gc3VzcGVuZFxuIik7Cj4gLQo+ICAgICAgICAg Y2xrX2J1bGtfdW5wcmVwYXJlKGNtZHEtPmdjZV9udW0sIGNtZHEtPmNsb2Nrcyk7Cj4KPiAgICAg ICAgIHJldHVybiAwOwo+IC0tCj4gMi4xOC4wCj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW1lZGlhdGVrIG1haWxpbmcgbGlzdApMaW51eC1t ZWRpYXRla0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtbWVkaWF0ZWsK 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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0F506C433EF for ; Fri, 19 Nov 2021 00:02:03 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 C1A056113D for ; Fri, 19 Nov 2021 00:02:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org C1A056113D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8F3726E9A4; Fri, 19 Nov 2021 00:02:01 +0000 (UTC) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id AC3296E9A4 for ; Fri, 19 Nov 2021 00:01:59 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id 6B57B61ACE for ; Fri, 19 Nov 2021 00:01:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1637280119; bh=AoNZd47gCGaimK9v5NfigphGWhTSDsXfAmbFC4BIlz4=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=Lmq7eHFQfyyikTZkqVB4YTGA+sw+e7PKhSPSxzUx9AAn0X6/GyE6UcqLyYm4BmD24 +xCYcoK+WvTm0LWxHMNIPZ4ALkoGI1YTyzsZCONyYdXjiDe+KS6/H0ELH+UMwSMOam BGN627Tvg879jCfHGN8vVIQNeBjxpb7TqfiZMVqHvPbF2zeq/NUEmTCQUdSizO7CXc 1KecLoH2ubW8vlFF3DB+0dPkwjiveEp1kL/Y2zihwpysKNT1dhoXlcDdrytZIDgPz2 Gh4Peu3R30ixCYiGCfTB5d+bxidTRRWTsgLXKa6R67N0INmd8oUpRng7z1QzvwLmzU cOgsFYbpdvifg== Received: by mail-ed1-f51.google.com with SMTP id g14so34682954edb.8 for ; Thu, 18 Nov 2021 16:01:59 -0800 (PST) X-Gm-Message-State: AOAM533Txp9DTpPUzwYxqKl4+bFMrHc2uh7tmH+uQBi5q+jiT+XdFk4q //DTzxPoBEwbWPwL+nB6JEmx/fjwaq7cePcP3g== X-Google-Smtp-Source: ABdhPJzJ+m25jkKAHUC8dqOXn/CxWb6mvvVoe7NwAcoZoKeWFquNa7VfncVxf9FsAbU+dFfNaujeGSmcwQHUHnIoiD0= X-Received: by 2002:a50:e608:: with SMTP id y8mr16990077edm.39.1637280117833; Thu, 18 Nov 2021 16:01:57 -0800 (PST) MIME-Version: 1.0 References: <20211117064158.27451-1-jason-jh.lin@mediatek.com> <20211117064158.27451-3-jason-jh.lin@mediatek.com> In-Reply-To: <20211117064158.27451-3-jason-jh.lin@mediatek.com> From: Chun-Kuang Hu Date: Fri, 19 Nov 2021 08:01:46 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 2/3] mailbox: add cmdq_mbox_flush to clear all task before suspend To: "jason-jh.lin" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Chun-Kuang Hu , Fei Shao , David Airlie , singo.chang@mediatek.com, Jassi Brar , linux-kernel , DRI Development , tzungbi@google.com, Nancy Lin , "moderated list:ARM/Mediatek SoC support" , Hsin-Yi Wang , Matthias Brugger , Linux ARM Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Hi, Jason: jason-jh.lin =E6=96=BC 2021=E5=B9=B411=E6=9C=88= 17=E6=97=A5 =E9=80=B1=E4=B8=89 =E4=B8=8B=E5=8D=882:42=E5=AF=AB=E9=81=93=EF= =BC=9A > > CMDQ driver will occupy GCE clock to execute the task in GCE thread. > > So call cmdq_mbox_flush to clear all task in GCE thread before > CMDQ suspend. > > Signed-off-by: jason-jh.lin > --- > drivers/mailbox/mtk-cmdq-mailbox.c | 9 +++------ > 1 file changed, 3 insertions(+), 6 deletions(-) > > diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c b/drivers/mailbox/mtk-cmd= q-mailbox.c > index 03f9ed4c5131..28cadfc0091b 100644 > --- a/drivers/mailbox/mtk-cmdq-mailbox.c > +++ b/drivers/mailbox/mtk-cmdq-mailbox.c > @@ -484,21 +484,18 @@ static int cmdq_suspend(struct device *dev) > struct cmdq *cmdq =3D dev_get_drvdata(dev); > struct cmdq_thread *thread; > int i; > - bool task_running =3D false; > > cmdq->suspended =3D true; > > for (i =3D 0; i < cmdq->thread_nr; i++) { > thread =3D &cmdq->thread[i]; > if (!list_empty(&thread->task_busy_list)) { > - task_running =3D true; > - break; > + /* try to clear all task in this thread */ > + cmdq_mbox_flush(thread->chan, 2000); I would like the normal control flow rather than error handling. So the normal control flow is: 1. Client driver suspend: Flush command. 2. CMDQ driver suspend: There is no command to flush. If there are command, show error message and debug the client driver. The error handling flow: 1. Client driver suspend: Does not flush command. 2. CMDQ driver suspend: Flush command and callback to client driver. Client driver process these callback as error handling. The client driver may integrate multiple driver. In the suspend flow, it may need to stop these driver in a sequence such as. 1. Stop driver 1 2. Stop driver 2 3. Stop driver 3 (cmdq) 4. Stop driver 4 5. Stop driver 5. In the normal flow, client driver could control the stop flow. In the error handling flow, it does not match the stop flow. Regards, Chun-Kuang. > + dev_warn(dev, "thread[%d] exist running task(s) i= n suspend\n", i); > } > } > > - if (task_running) > - dev_warn(dev, "exist running task(s) in suspend\n"); > - > clk_bulk_unprepare(cmdq->gce_num, cmdq->clocks); > > return 0; > -- > 2.18.0 > 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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 008DFC433EF for ; Fri, 19 Nov 2021 00:03:49 +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 B61CA6113A for ; Fri, 19 Nov 2021 00:03:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org B61CA6113A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=HKEKMtK5IuYDVGgetoA9ofKfYDZj1vBBpSo5xUuEzGM=; b=JpCC93fjNdL6Z8 C/ZqfJRlO2k5uipSEPD2cFaHFrW6zY54zNns1ZJtbNZR+wH96QQOYYeac8PYV6guxJZMYaRf9JbI3 3jXxdmM00LUvDZT5sjQaB1G/kT04hoEUJlsA4yhX4vg+gO56eLIUsSDe5nn//xbDdw6AHJc2KMW7u bcIsZgA4Jehb0uHjOnm9lp9LVpjMS1sUBrMb5tk6DioEkMQUBQaZpaHx5bhzndBTVhMTY8smMG5ZO JvY0WY7QrusKoH23yNrlpZa/ZOv/NztjmcawWKfrN2JNt0E4ByQFl4XYb/ojc0/4LnVPUWfHQu8Hq OrsWaktz+P2nUEQVoX5Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mnrLw-0094Cs-D8; Fri, 19 Nov 2021 00:02:04 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mnrLs-0094C8-FR; Fri, 19 Nov 2021 00:02:01 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 5E7866113D; Fri, 19 Nov 2021 00:01:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1637280119; bh=AoNZd47gCGaimK9v5NfigphGWhTSDsXfAmbFC4BIlz4=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=Lmq7eHFQfyyikTZkqVB4YTGA+sw+e7PKhSPSxzUx9AAn0X6/GyE6UcqLyYm4BmD24 +xCYcoK+WvTm0LWxHMNIPZ4ALkoGI1YTyzsZCONyYdXjiDe+KS6/H0ELH+UMwSMOam BGN627Tvg879jCfHGN8vVIQNeBjxpb7TqfiZMVqHvPbF2zeq/NUEmTCQUdSizO7CXc 1KecLoH2ubW8vlFF3DB+0dPkwjiveEp1kL/Y2zihwpysKNT1dhoXlcDdrytZIDgPz2 Gh4Peu3R30ixCYiGCfTB5d+bxidTRRWTsgLXKa6R67N0INmd8oUpRng7z1QzvwLmzU cOgsFYbpdvifg== Received: by mail-ed1-f52.google.com with SMTP id e3so34696006edu.4; Thu, 18 Nov 2021 16:01:59 -0800 (PST) X-Gm-Message-State: AOAM532N8xL5yopkgd2HexfKUuXo/pcy/8BqtTSuEEWPha7FfvuKgNcg DHTD8mzPkQCFDVmVNmrEPeGzGqJUFDnoO6BDbw== X-Google-Smtp-Source: ABdhPJzJ+m25jkKAHUC8dqOXn/CxWb6mvvVoe7NwAcoZoKeWFquNa7VfncVxf9FsAbU+dFfNaujeGSmcwQHUHnIoiD0= X-Received: by 2002:a50:e608:: with SMTP id y8mr16990077edm.39.1637280117833; Thu, 18 Nov 2021 16:01:57 -0800 (PST) MIME-Version: 1.0 References: <20211117064158.27451-1-jason-jh.lin@mediatek.com> <20211117064158.27451-3-jason-jh.lin@mediatek.com> In-Reply-To: <20211117064158.27451-3-jason-jh.lin@mediatek.com> From: Chun-Kuang Hu Date: Fri, 19 Nov 2021 08:01:46 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 2/3] mailbox: add cmdq_mbox_flush to clear all task before suspend To: "jason-jh.lin" Cc: Chun-Kuang Hu , Philipp Zabel , Matthias Brugger , Jassi Brar , David Airlie , Daniel Vetter , DRI Development , "moderated list:ARM/Mediatek SoC support" , Linux ARM , linux-kernel , Hsin-Yi Wang , Fei Shao , tzungbi@google.com, Nancy Lin , singo.chang@mediatek.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211118_160200_599753_634DDF28 X-CRM114-Status: GOOD ( 22.40 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGksIEphc29uOgoKamFzb24tamgubGluIDxqYXNvbi1qaC5saW5AbWVkaWF0ZWsuY29tPiDmlrwg MjAyMeW5tDEx5pyIMTfml6Ug6YCx5LiJIOS4i+WNiDI6NDLlr6vpgZPvvJoKPgo+IENNRFEgZHJp dmVyIHdpbGwgb2NjdXB5IEdDRSBjbG9jayB0byBleGVjdXRlIHRoZSB0YXNrIGluIEdDRSB0aHJl YWQuCj4KPiBTbyBjYWxsIGNtZHFfbWJveF9mbHVzaCB0byBjbGVhciBhbGwgdGFzayBpbiBHQ0Ug dGhyZWFkIGJlZm9yZQo+IENNRFEgc3VzcGVuZC4KPgo+IFNpZ25lZC1vZmYtYnk6IGphc29uLWpo LmxpbiA8amFzb24tamgubGluQG1lZGlhdGVrLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9tYWlsYm94 L210ay1jbWRxLW1haWxib3guYyB8IDkgKysrLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWls Ym94L210ay1jbWRxLW1haWxib3guYyBiL2RyaXZlcnMvbWFpbGJveC9tdGstY21kcS1tYWlsYm94 LmMKPiBpbmRleCAwM2Y5ZWQ0YzUxMzEuLjI4Y2FkZmMwMDkxYiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL21haWxib3gvbXRrLWNtZHEtbWFpbGJveC5jCj4gKysrIGIvZHJpdmVycy9tYWlsYm94L210 ay1jbWRxLW1haWxib3guYwo+IEBAIC00ODQsMjEgKzQ4NCwxOCBAQCBzdGF0aWMgaW50IGNtZHFf c3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gICAgICAgICBzdHJ1Y3QgY21kcSAqY21kcSA9 IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICAgICAgICAgc3RydWN0IGNtZHFfdGhyZWFkICp0aHJl YWQ7Cj4gICAgICAgICBpbnQgaTsKPiAtICAgICAgIGJvb2wgdGFza19ydW5uaW5nID0gZmFsc2U7 Cj4KPiAgICAgICAgIGNtZHEtPnN1c3BlbmRlZCA9IHRydWU7Cj4KPiAgICAgICAgIGZvciAoaSA9 IDA7IGkgPCBjbWRxLT50aHJlYWRfbnI7IGkrKykgewo+ICAgICAgICAgICAgICAgICB0aHJlYWQg PSAmY21kcS0+dGhyZWFkW2ldOwo+ICAgICAgICAgICAgICAgICBpZiAoIWxpc3RfZW1wdHkoJnRo cmVhZC0+dGFza19idXN5X2xpc3QpKSB7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgdGFza19y dW5uaW5nID0gdHJ1ZTsKPiAtICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAg ICAgICAgICAgICAgICAgICAvKiB0cnkgdG8gY2xlYXIgYWxsIHRhc2sgaW4gdGhpcyB0aHJlYWQg Ki8KPiArICAgICAgICAgICAgICAgICAgICAgICBjbWRxX21ib3hfZmx1c2godGhyZWFkLT5jaGFu LCAyMDAwKTsKCkkgd291bGQgbGlrZSB0aGUgbm9ybWFsIGNvbnRyb2wgZmxvdyByYXRoZXIgdGhh biBlcnJvciBoYW5kbGluZy4gU28KdGhlIG5vcm1hbCBjb250cm9sIGZsb3cgaXM6CgoxLiBDbGll bnQgZHJpdmVyIHN1c3BlbmQ6IEZsdXNoIGNvbW1hbmQuCjIuIENNRFEgZHJpdmVyIHN1c3BlbmQ6 IFRoZXJlIGlzIG5vIGNvbW1hbmQgdG8gZmx1c2guIElmIHRoZXJlIGFyZQpjb21tYW5kLCBzaG93 IGVycm9yIG1lc3NhZ2UgYW5kIGRlYnVnIHRoZSBjbGllbnQgZHJpdmVyLgoKVGhlIGVycm9yIGhh bmRsaW5nIGZsb3c6CgoxLiBDbGllbnQgZHJpdmVyIHN1c3BlbmQ6IERvZXMgbm90IGZsdXNoIGNv bW1hbmQuCjIuIENNRFEgZHJpdmVyIHN1c3BlbmQ6IEZsdXNoIGNvbW1hbmQgYW5kIGNhbGxiYWNr IHRvIGNsaWVudCBkcml2ZXIuCkNsaWVudCBkcml2ZXIgcHJvY2VzcyB0aGVzZSBjYWxsYmFjayBh cyBlcnJvciBoYW5kbGluZy4KClRoZSBjbGllbnQgZHJpdmVyIG1heSBpbnRlZ3JhdGUgbXVsdGlw bGUgZHJpdmVyLiBJbiB0aGUgc3VzcGVuZCBmbG93LAppdCBtYXkgbmVlZCB0byBzdG9wIHRoZXNl IGRyaXZlciBpbiBhIHNlcXVlbmNlIHN1Y2ggYXMuCgoxLiBTdG9wIGRyaXZlciAxCjIuIFN0b3Ag ZHJpdmVyIDIKMy4gU3RvcCBkcml2ZXIgMyAoY21kcSkKNC4gU3RvcCBkcml2ZXIgNAo1LiBTdG9w IGRyaXZlciA1LgoKSW4gdGhlIG5vcm1hbCBmbG93LCBjbGllbnQgZHJpdmVyIGNvdWxkIGNvbnRy b2wgdGhlIHN0b3AgZmxvdy4gSW4gdGhlCmVycm9yIGhhbmRsaW5nIGZsb3csIGl0IGRvZXMgbm90 IG1hdGNoIHRoZSBzdG9wIGZsb3cuCgpSZWdhcmRzLApDaHVuLUt1YW5nLgoKPiArICAgICAgICAg ICAgICAgICAgICAgICBkZXZfd2FybihkZXYsICJ0aHJlYWRbJWRdIGV4aXN0IHJ1bm5pbmcgdGFz ayhzKSBpbiBzdXNwZW5kXG4iLCBpKTsKPiAgICAgICAgICAgICAgICAgfQo+ICAgICAgICAgfQo+ Cj4gLSAgICAgICBpZiAodGFza19ydW5uaW5nKQo+IC0gICAgICAgICAgICAgICBkZXZfd2Fybihk ZXYsICJleGlzdCBydW5uaW5nIHRhc2socykgaW4gc3VzcGVuZFxuIik7Cj4gLQo+ICAgICAgICAg Y2xrX2J1bGtfdW5wcmVwYXJlKGNtZHEtPmdjZV9udW0sIGNtZHEtPmNsb2Nrcyk7Cj4KPiAgICAg ICAgIHJldHVybiAwOwo+IC0tCj4gMi4xOC4wCj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK