Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp3379256ybp; Sun, 6 Oct 2019 10:38:15 -0700 (PDT) X-Google-Smtp-Source: APXvYqzNGkEhb2KTkAdmT9OAlKhsBbF47/x/rI8k7B8AitVLeQASoGj2WTRDBkSd5tmSF3Qm//hl X-Received: by 2002:aa7:c495:: with SMTP id m21mr25951536edq.287.1570383495865; Sun, 06 Oct 2019 10:38:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570383495; cv=none; d=google.com; s=arc-20160816; b=FylhhlmCFVx3WPh7q/316pPjUhvu32CBjgfOM9u4sv1dwSo+94aCm8ZWVqEJxNYtQT dfGR8LPcqYcgnA7jm/iBh3vyKbdaXYJowMZdXO979ujxlXRiYED6bqr5qL0Z3kY5NUgo 950KPSl6ZtyR4J/qoCA1ijrq9DcgaO0tIfiABaaTYq4o+xu6P1c/HrFiyk9+/CvrLd6D Iuf0mzR8FZb8lMy+xegpxATGZ1WpRa5wOclE6RpAIHwQZ9zZXPFPU2VHKp5ua+JbfT14 Wkc2CFPHUuHxEaXnTo7/O2C/UiA7IMOPBdUJ2VjAr3WsTtt8FPe+/NDebkb81OX1HoDj mCow== 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=McrHi7HEKyNrLxUd0SiEKuD6y9nYYmsZy0CRoNvViz4iANZ7cACDVRjf7WrDtDksBu wG4APdMdeaxWIyQsI4ZhPs/PkkvAClC1K5m6yileCn+8IJWovSSWX+mG6TOi584rxnA7 Oc3+tehouwOfrcXHgAoCCepjz0RBg/qfEpqQRWChDKOgBB87xsHGWnSnWcEMzx1I0NuI ffV+kTS7QqKXEPnBXxZepo8dNqXg1m6sSWvSk5zwsaSogsb01qcHo8sGXovWJL+pqYGu dxzsmlzdAlgwR0p/T/0GthKU1DTKLz5TJpGWGc6oMrhyyjkGkZNdEt7g5Wy9jEkn75jO Elhg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=a1l7J1s1; 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 y8si7682315edd.355.2019.10.06.10.37.52; Sun, 06 Oct 2019 10:38:15 -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=a1l7J1s1; 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 S1729594AbfJFRgM (ORCPT + 99 others); Sun, 6 Oct 2019 13:36:12 -0400 Received: from mail.kernel.org ([198.145.29.99]:34928 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730077AbfJFRgL (ORCPT ); Sun, 6 Oct 2019 13:36:11 -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 2144220700; Sun, 6 Oct 2019 17:36:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570383370; bh=eSh8T2nSPy8y2TgRE1CffHRlokwH0nJvPtRMTdfQcbQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=a1l7J1s1R6EZkeoSmRU7lbAlcV92TfoMsFRAKSpO2BvagD9jO99qirPUHb8X488DJ IYWcIoan1RBzVTHwGwyUx0wqc6odA8ANsyenqjQS6rk4TY8mJZCC9f+Fd/WSEEDnQE eDkTu5Zhsp1rLwB7GFeTG0ZjcCuDbHAn5rkuoZkI= 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.2 077/137] mailbox: mediatek: cmdq: clear the event in cmdq initial flow Date: Sun, 6 Oct 2019 19:21:01 +0200 Message-Id: <20191006171215.411270398@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006171209.403038733@linuxfoundation.org> References: <20191006171209.403038733@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