Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp3388020ybp; Sun, 6 Oct 2019 10:50:00 -0700 (PDT) X-Google-Smtp-Source: APXvYqxEJlp3sPSExNrkhswI192wMmBBD7w5GafuYxxoibvutfGEepDbxQ84WXgThINL95/wn5pg X-Received: by 2002:aa7:d750:: with SMTP id a16mr25521246eds.27.1570384199916; Sun, 06 Oct 2019 10:49:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570384199; cv=none; d=google.com; s=arc-20160816; b=TVCla7EgPqTcne9xw5z0AKE1vfCmydgsXYWFWnj9oc+KtN2pCeGZkR+IGE7OXqdsra gF/pD6a570IOiD0ppfTrcd1frOjcWu8aHwCPE8O85Lgjfnko67cjEy8t6Jwp1gBljhE4 VgCaWO8uXRQVBhOCmJdy790epVLXnNGr/XSjTYuoDozL2ZdXe/RkYGpFzjsB2BRIqmMA SyrM5bUfiNjzSMOpIQd1+laz3HnIV352x+2pZEEdb9EEN9iwbx9S7atIySO9TAggUgzn 45wPlfq8y0KNFC/KgAwFZX641sdSKxdAWTezeQMAf9j4SgePpG2LJAscWZpQfelN/4Uz ks8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=yL4ecKvrkn7KoWclZIblnMpX22QEI+ff9xVOeMhOZMs=; b=x6alGqb9CNe32n7jAAv182WcGLpUNeo/+iQQ0KmmzHsZ9CC267kYW4iAjc0rgmVeUy zOI9mgDBWsFk1fQ6fXC5ERsAMGos7bxKG/YFL2+e0hm+Ul2ISUnFhDoeJwi4BNpLknXR 1KerqTfLl70n1KvNs/B+OP+kXqP1WXuL9jTjkiNlwtGrbmP/8uXdd+0hs/4dgeQK3ES5 q6z8AOrLDjbPARCE45shCeJyaMtj3xRP65gMVcDSpvRa8dYQKgTUhpPNt0+m+ZmsSIjn 6JWaQlQYn45C0y++FzvNtXjCF+IsAQ9yQ5DmRMf1AnReHo+DoeLLTr5VWEjWPw8J3YDk gU+w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=HgqnxCsl; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z6si6942862edx.139.2019.10.06.10.49.35; Sun, 06 Oct 2019 10:49:59 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=HgqnxCsl; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730878AbfJFRl6 (ORCPT + 99 others); Sun, 6 Oct 2019 13:41:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:41640 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731296AbfJFRl5 (ORCPT ); Sun, 6 Oct 2019 13:41:57 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 58F1E2080F; Sun, 6 Oct 2019 17:41:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570383716; bh=eSh8T2nSPy8y2TgRE1CffHRlokwH0nJvPtRMTdfQcbQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HgqnxCslSRmk7tVBkR45eqJcdUbFSWW3GTnLpDwT9+zuf/XGJTLd/ls0zwOkoBhkP 2hO0voKkbWY9+yVQoL58dcZ0KXaABINe0q3SLdSm53Vo4tg+irn5CSTW75BtFMyTv7 8G7GajNAAC1WIJWgJrPjW6HfaTOxCLNEBZCrin4E= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Bibby Hsieh , CK Hu , Matthias Brugger , Jassi Brar , Sasha Levin Subject: [PATCH 5.3 068/166] mailbox: mediatek: cmdq: clear the event in cmdq initial flow Date: Sun, 6 Oct 2019 19:20:34 +0200 Message-Id: <20191006171219.093809332@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006171212.850660298@linuxfoundation.org> References: <20191006171212.850660298@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Bibby Hsieh [ Upstream commit 6058f11870b8e6d4f5cc7b591097c00bf69a000d ] GCE hardware stored event information in own internal sysram, if the initial value in those sysram is not zero value it will cause a situation that gce can wait the event immediately after client ask gce to wait event but not really trigger the corresponding hardware. In order to make sure that the wait event function is exactly correct, we need to clear the sysram value in cmdq initial flow. Fixes: 623a6143a845 ("mailbox: mediatek: Add Mediatek CMDQ driver") Signed-off-by: Bibby Hsieh Reviewed-by: CK Hu Reviewed-by: Matthias Brugger Signed-off-by: Jassi Brar Signed-off-by: Sasha Levin --- drivers/mailbox/mtk-cmdq-mailbox.c | 5 +++++ include/linux/mailbox/mtk-cmdq-mailbox.h | 3 +++ include/linux/soc/mediatek/mtk-cmdq.h | 3 --- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c b/drivers/mailbox/mtk-cmdq-mailbox.c index 00d5219094e5d..48bba49139523 100644 --- a/drivers/mailbox/mtk-cmdq-mailbox.c +++ b/drivers/mailbox/mtk-cmdq-mailbox.c @@ -22,6 +22,7 @@ #define CMDQ_NUM_CMD(t) (t->cmd_buf_size / CMDQ_INST_SIZE) #define CMDQ_CURR_IRQ_STATUS 0x10 +#define CMDQ_SYNC_TOKEN_UPDATE 0x68 #define CMDQ_THR_SLOT_CYCLES 0x30 #define CMDQ_THR_BASE 0x100 #define CMDQ_THR_SIZE 0x80 @@ -104,8 +105,12 @@ static void cmdq_thread_resume(struct cmdq_thread *thread) static void cmdq_init(struct cmdq *cmdq) { + int i; + WARN_ON(clk_enable(cmdq->clock) < 0); writel(CMDQ_THR_ACTIVE_SLOT_CYCLES, cmdq->base + CMDQ_THR_SLOT_CYCLES); + for (i = 0; i <= CMDQ_MAX_EVENT; i++) + writel(i, cmdq->base + CMDQ_SYNC_TOKEN_UPDATE); clk_disable(cmdq->clock); } diff --git a/include/linux/mailbox/mtk-cmdq-mailbox.h b/include/linux/mailbox/mtk-cmdq-mailbox.h index ccb73422c2fa2..e6f54ef6698b1 100644 --- a/include/linux/mailbox/mtk-cmdq-mailbox.h +++ b/include/linux/mailbox/mtk-cmdq-mailbox.h @@ -20,6 +20,9 @@ #define CMDQ_WFE_WAIT BIT(15) #define CMDQ_WFE_WAIT_VALUE 0x1 +/** cmdq event maximum */ +#define CMDQ_MAX_EVENT 0x3ff + /* * CMDQ_CODE_MASK: * set write mask diff --git a/include/linux/soc/mediatek/mtk-cmdq.h b/include/linux/soc/mediatek/mtk-cmdq.h index 54ade13a9b157..4e8899972db4d 100644 --- a/include/linux/soc/mediatek/mtk-cmdq.h +++ b/include/linux/soc/mediatek/mtk-cmdq.h @@ -13,9 +13,6 @@ #define CMDQ_NO_TIMEOUT 0xffffffffu -/** cmdq event maximum */ -#define CMDQ_MAX_EVENT 0x3ff - struct cmdq_pkt; struct cmdq_client { -- 2.20.1