Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp1050500pxv; Thu, 15 Jul 2021 23:59:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwCQ0dYp+lUHrRlNtFjAiwnqgKi3VV3msOy8IHAbYFo2h6WR0f5j2Ms7/cu7pm49WhmYuRq X-Received: by 2002:a5e:d512:: with SMTP id e18mr6210347iom.149.1626418762585; Thu, 15 Jul 2021 23:59:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626418762; cv=none; d=google.com; s=arc-20160816; b=EmSEi4Io3kTy7qelw2+6uiq2MJDWKiglzPEY+kUba+3I8lUnRXkzRH1NJzHWmiPy6R JFh/QBxCM+svJJFxnZy/jSysqxXp3n79NMwSJ3Ps+6p7qosArrOE+mPtbHneBbD75rTS hQf8TdV844TZSIQ5geWIvrk46j6KlnFuuGYBJAPe0bmq/k5K2HahhGa3fuYFXftzCFV+ q65G+sSs/Z+78r+PFce9YCvK4LWFe6l2/K0EbO6UJOt5IABNOxLWBta97k2k4I6N3IT8 NkGDXH3H0WI56VK0OTFMaQnAYQTC4fjEWTRRqhcB5olTVMnp04nAggLKHiw8th5e3V4C WR/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=7eqrzc59GYKRuLaJFwH4eimjLkoFMx11bog8YVBbeHY=; b=zx1gJjQdMPfa0TYvRHaiitcJF38ryVVHtOQLh9SGCaGOe61F/4lJP2D2R+9Xg8vCkQ FROk/qVuaTtxFa0yrCc8ftD/cSQjjkVNZZwmLI3Pa1nQSIVCTEmJzjFc+DFk2V2NmiNd BqLHrkaokeqniGsRbi+jF3hzxFQG45mcN0XZp56E/rxH1i7vYuqrrfIS1eLZmsQhq6fS ATnWCrn2TNa1R5ODyKIakHT5ncWsXzsm4Fbb9yYjKedDM7iTNbKdegKB++h+dL27T/oG knDENwCgGYiHyRnbCh8WYZM2cj+PgRBseVF9mdfL/zUDJPFu+V7/UXP8mCqvmugiXCV+ ZzQQ== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j2si8758281ioq.84.2021.07.15.23.59.10; Thu, 15 Jul 2021 23:59:22 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235474AbhGPHBY (ORCPT + 99 others); Fri, 16 Jul 2021 03:01:24 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:41824 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S235006AbhGPHBX (ORCPT ); Fri, 16 Jul 2021 03:01:23 -0400 X-UUID: af6493dfd4774539861903ba29ad2fec-20210716 X-UUID: af6493dfd4774539861903ba29ad2fec-20210716 Received: from mtkmbs10n2.mediatek.inc [(172.21.101.183)] by mailgw02.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1260778623; Fri, 16 Jul 2021 14:58:26 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs02n1.mediatek.inc (172.21.101.77) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 16 Jul 2021 14:58:24 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 16 Jul 2021 14:58:23 +0800 From: Yongqiang Niu To: Chun-Kuang Hu CC: Rob Herring , Matthias Brugger , Philipp Zabel , David Airlie , Daniel Vetter , Jassi Brar , Yongqiang Niu , Fabien Parent , Dennis YC Hsieh , , , , , , , Hsin-Yi Wang Subject: [PATCH v1] mailbox: cmdq: add instruction time-out interrupt support Date: Fri, 16 Jul 2021 14:58:21 +0800 Message-ID: <1626418701-28467-2-git-send-email-yongqiang.niu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1626418701-28467-1-git-send-email-yongqiang.niu@mediatek.com> References: <1626418701-28467-1-git-send-email-yongqiang.niu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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-cmdq-mailbox.c index de4793e..9a76bcd 100644 --- a/drivers/mailbox/mtk-cmdq-mailbox.c +++ b/drivers/mailbox/mtk-cmdq-mailbox.c @@ -35,6 +35,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 @@ -53,6 +54,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 instructions + * GCE axi_clock 156MHz + * 1 cycle = 6.41ns + * instruction time out 2^22*2*6.41ns = 53ms + */ +#define CMDQ_INSTN_TIMEOUT_CYCLES 22 + struct cmdq_thread { struct mbox_chan *chan; void __iomem *base; @@ -368,6 +378,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_ENABLE); writel(CMDQ_THR_ENABLED, thread->base + CMDQ_THR_ENABLE_TASK); -- 1.8.1.1.dirty