Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp4077067pxb; Mon, 4 Oct 2021 16:57:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzNnpMiIDTZ/7HHkc19ixxQBKbBS0yRaxGkovxyjpb1kRFFcXFXnlBfs/oKblgEhQFyd7Lm X-Received: by 2002:a65:5845:: with SMTP id s5mr12930126pgr.227.1633391856476; Mon, 04 Oct 2021 16:57:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633391856; cv=none; d=google.com; s=arc-20160816; b=yRWsLNUBVxq9Z57CAaq1KTO5B8F0ZYi/DeDw2XIyR2GCu3mrgOOmKWDlTlrLj6wxXs hUYsqUf2GvJg8jRdggjYa+Rq2lN1uaLs1BtJZyABQAR6xDhRJWrZDy5914bedLBZwUsu 826+M5cObkrSliSui4KQDrOYuwAAWT4zfQYj/Yev1Qq5fP6TZ10ZcN3NmTMg/A10hx1k J+ReTjVfU4NbKrrGlJO/Z91El6JFcPWuiMKRE+j//wwl58DD2Vd7j9JkejrKC2jy3hw/ mSSuaVP4gtI+K9FbQFlJt3kjvuUo2xBRvc6VQ4Rt+KZkMu6CnVfRU2NFRgf12it/BRQl m8Vg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=fYcY9b/u7CrdNIvJG73h7WsQmbBYldXWNB//chFIpFc=; b=Bv3fFXuwrF5gwYw34eX6fqCl9ILldi/x31IMv1UKuu9fhblwq0o9hCUgb8IhTLzwj2 7TXTrapkanqZO4p6As+SLylD/lt1ZO6uxT5EOxgv5tVCJaefLqyv7x8Zt8QGwqVDAJJa Fzp1rjdtz9SrOFUF1ju3HeVM6dHqxp/4840fFDRyrlPzbAWaF+WNlrLnHIVm6sgkcWN2 gwKfHumRebx12YD7k99iF0odJzY3t8n+52cnkeZu3MNQFWhkNSrG7WEBAIgVD7bqHpYa b5W4wBaSi3XiD2YzfVVN1o91TZA56rBvqHKy0tVDSGI9r8GMT+2DjN5mIPlp0niQqDYH VtKQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=PedMiept; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p10si5376838pjm.111.2021.10.04.16.57.23; Mon, 04 Oct 2021 16:57:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=PedMiept; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233355AbhJDXno (ORCPT + 99 others); Mon, 4 Oct 2021 19:43:44 -0400 Received: from mail.kernel.org ([198.145.29.99]:54452 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229703AbhJDXnn (ORCPT ); Mon, 4 Oct 2021 19:43:43 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 09D83610EA; Mon, 4 Oct 2021 23:41:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1633390914; bh=WnectnZlCpcN61u4P637Y4VP+/XeYfu9evNmOwRjGE8=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=PedMieptOH3QAu5hrQRBKb2vz5y9jLhG0XoC4awDbq5B2EUhQnt+Xr54GzaMAXzvC BB5MLnDCBBjRq5C1+RG9OM1CuGM6AiRxLsJC2yfvxq1A1COlDf7YJ6s/nTC1Sjv3Ul jKBcydao/10vr1Ubv+vKMcgqObFE74d00M0AJoiAxAw2toVHbFNy52CHC+wTCQbWP0 2TsG//vFGyem/A1+MY/CuhtK9JJMvic+C6dN88k0JvBGz3qt7DutxVBiOkK8doUolU jpcv7Fb5mwQnFNv18BRgtpfXCFRmeXyVM2iPzJJmZJ6r/+TfKhfojpAf+fp8b8Aaul 4CBT38HD2VlzA== Received: by mail-ed1-f42.google.com with SMTP id dj4so71702702edb.5; Mon, 04 Oct 2021 16:41:53 -0700 (PDT) X-Gm-Message-State: AOAM531iqKJ/leeGluEdYXqlKiDe08Xx8vgDdAcZa++e6FFNttBSzB9S ijviU4WSRbmqFx4WHaoz7F178lTdVJSTZIiZew== X-Received: by 2002:a50:bf0f:: with SMTP id f15mr21400916edk.43.1633390912636; Mon, 04 Oct 2021 16:41:52 -0700 (PDT) MIME-Version: 1.0 References: <20210930131850.21202-1-yongqiang.niu@mediatek.com> <20210930131850.21202-2-yongqiang.niu@mediatek.com> In-Reply-To: <20210930131850.21202-2-yongqiang.niu@mediatek.com> From: Chun-Kuang Hu Date: Tue, 5 Oct 2021 07:41:41 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2, 1/1] mailbox: cmdq: add instruction time-out interrupt support To: Yongqiang Niu Cc: Chun-Kuang Hu , Rob Herring , Matthias Brugger , Philipp Zabel , David Airlie , Daniel Vetter , Jassi Brar , Fabien Parent , Dennis YC Hsieh , DTML , Linux ARM , "moderated list:ARM/Mediatek SoC support" , linux-kernel , DRI Development , Project_Global_Chrome_Upstream_Group@mediatek.com, Hsin-Yi Wang 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, Yongqiang: Yongqiang Niu =E6=96=BC 2021=E5=B9=B49=E6=9C= =8830=E6=97=A5 =E9=80=B1=E5=9B=9B =E4=B8=8B=E5=8D=889:18=E5=AF=AB=E9=81=93= =EF=BC=9A > > add time-out cycle setting to make sure time-out interrupt irq > will happened when instruction time-out for wait and poll > > Signed-off-by: Yongqiang Niu > --- > drivers/mailbox/mtk-cmdq-mailbox.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c b/drivers/mailbox/mtk-cmd= q-mailbox.c > index 64175a893312..197b03222f94 100644 > --- a/drivers/mailbox/mtk-cmdq-mailbox.c > +++ b/drivers/mailbox/mtk-cmdq-mailbox.c > @@ -36,6 +36,7 @@ > #define CMDQ_THR_END_ADDR 0x24 > #define CMDQ_THR_WAIT_TOKEN 0x30 > #define CMDQ_THR_PRIORITY 0x40 > +#define CMDQ_THR_INSTN_TIMEOUT_CYCLES 0x50 > > #define GCE_GCTL_VALUE 0x48 > > @@ -54,6 +55,15 @@ > #define CMDQ_JUMP_BY_OFFSET 0x10000000 > #define CMDQ_JUMP_BY_PA 0x10000001 > > +/* > + * instruction time-out > + * cycles to issue instruction time-out interrupt for wait and poll inst= ructions > + * GCE axi_clock 156MHz > + * 1 cycle =3D 6.41ns > + * instruction time out 2^22*2*6.41ns =3D 53ms For different clients, the timeout value would be different, and each client could use timer to detect timeout, so it's not necessary to enable timeout in cmdq driver. Regards, Chun-Kuang. > + */ > +#define CMDQ_INSTN_TIMEOUT_CYCLES 22 > + > struct cmdq_thread { > struct mbox_chan *chan; > void __iomem *base; > @@ -376,6 +386,7 @@ static int cmdq_mbox_send_data(struct mbox_chan *chan= , void *data) > writel((task->pa_base + pkt->cmd_buf_size) >> cmdq->shift= _pa, > thread->base + CMDQ_THR_END_ADDR); > > + writel(CMDQ_INSTN_TIMEOUT_CYCLES, thread->base + CMDQ_THR= _INSTN_TIMEOUT_CYCLES); > writel(thread->priority, thread->base + CMDQ_THR_PRIORITY= ); > writel(CMDQ_THR_IRQ_EN, thread->base + CMDQ_THR_IRQ_ENABL= E); > writel(CMDQ_THR_ENABLED, thread->base + CMDQ_THR_ENABLE_T= ASK); > -- > 2.25.1 >