Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp2358623pxb; Thu, 11 Feb 2021 10:17:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJzdoieRcnVUtCbBIq/XHrIzrSTsOQaJ+2G8MG5Em3cN9XjMXCsqyig4M719YR9enEjkprek X-Received: by 2002:a05:6402:26c7:: with SMTP id x7mr9706380edd.24.1613067459441; Thu, 11 Feb 2021 10:17:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613067459; cv=none; d=google.com; s=arc-20160816; b=imWpMpdSay/Vc7RUGAgdOf4LHjO/hcjtijqKda8LWvQ6gRjOsoBr7QOYn3QLMoURvX naCjdwY/9Dd2pSQVzh8v7Ko1pbJDy7ToDARTVwGx863QbU2zzafO04rgLGS3MPhrI48N 9l1wRHcT1KgqRv7HlNFlz84xrlssb0pjd+cRqhE9OTekq5Nr5vInQnQDxFNvyFwaZ9ZQ 1tv+WSu6q6ycKZlxCC017rMyw0QqewPleNDBTwKg0q8zi6AhFybtJVA+EA+0AaBSmcTX EbYEfjuqMVp0ESgSPLTbMrLaobhE3ZfCqQYeTe7+1OfiI6LUToHFMhoKcmfwmUevrRvs hNvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=p2isHgj9YMw4jxIwcvZo6Ad7V5urMvFudGQlIJaq/pQ=; b=C4cfvVmyRCAMQUpivYithSDnh2kOcN37oKQWBLqRrlcnAhBHpqtZ5FVIc1Z6PSwt/q aFb+wZWm95xQm0v6T1zGrQxSGVEtdZFSIz7pHXIivAxh8Vln+TTOJLi3Cr6fnq6xEKxh AUOZ9ljE2iljW5+diuCWSa1ronoTWtxdRy1Ly0ThKsU1KqCmJn0Xfz430beZ0Vgd+6nu 3aXvt+h4oxa7qtqyKu6+sfKyI6dAwjuwaT27t5CmFFb0BrwyvtFHcXxv7o08F/V7r3bR gaR3P3gyoG3VOg7CsYmLkH5PQC3U/s2h9XFK2KcOHQfn/XsKFf6gMGwnjfehfUUuVg3M gxxQ== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b2si4140447ejk.68.2021.02.11.10.17.15; Thu, 11 Feb 2021 10:17:39 -0800 (PST) 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230333AbhBKSPa (ORCPT + 99 others); Thu, 11 Feb 2021 13:15:30 -0500 Received: from relay03.th.seeweb.it ([5.144.164.164]:57459 "EHLO relay03.th.seeweb.it" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232691AbhBKRwn (ORCPT ); Thu, 11 Feb 2021 12:52:43 -0500 Received: from IcarusMOD.eternityproject.eu (unknown [2.237.20.237]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by m-r1.th.seeweb.it (Postfix) with ESMTPSA id 4DF101F897; Thu, 11 Feb 2021 18:50:18 +0100 (CET) From: AngeloGioacchino Del Regno To: elder@kernel.org Cc: bjorn.andersson@linaro.org, agross@kernel.org, davem@davemloft.net, kuba@kernel.org, linux-arm-msm@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, konrad.dybcio@somainline.org, marijn.suijten@somainline.org, phone-devel@vger.kernel.org, AngeloGioacchino Del Regno Subject: [PATCH v1 3/7] net: ipa: gsi: Avoid some writes during irq setup for older IPA Date: Thu, 11 Feb 2021 18:50:11 +0100 Message-Id: <20210211175015.200772-4-angelogioacchino.delregno@somainline.org> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210211175015.200772-1-angelogioacchino.delregno@somainline.org> References: <20210211175015.200772-1-angelogioacchino.delregno@somainline.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On some IPA versions (v3.1 and older), writing to registers GSI_INTER_EE_SRC_CH_IRQ_OFFSET and GSI_INTER_EE_SRC_EV_CH_IRQ_OFFSET will generate a fault and the SoC will lockup. Avoid clearing CH and EV_CH interrupts on GSI probe to fix this bad behavior: we are anyway not going to get spurious interrupts. Signed-off-by: AngeloGioacchino Del Regno --- drivers/net/ipa/gsi.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c index 6315336b3ca8..b5460cbb085c 100644 --- a/drivers/net/ipa/gsi.c +++ b/drivers/net/ipa/gsi.c @@ -207,11 +207,14 @@ static void gsi_irq_setup(struct gsi *gsi) iowrite32(0, gsi->virt + GSI_CNTXT_SRC_IEOB_IRQ_MSK_OFFSET); /* Reverse the offset adjustment for inter-EE register offsets */ - adjust = gsi->version < IPA_VERSION_4_5 ? 0 : GSI_EE_REG_ADJUST; - iowrite32(0, gsi->virt + adjust + GSI_INTER_EE_SRC_CH_IRQ_OFFSET); - iowrite32(0, gsi->virt + adjust + GSI_INTER_EE_SRC_EV_CH_IRQ_OFFSET); + if (gsi->version > IPA_VERSION_3_1) { + adjust = gsi->version < IPA_VERSION_4_5 ? 0 : GSI_EE_REG_ADJUST; + iowrite32(0, gsi->virt + adjust + GSI_INTER_EE_SRC_CH_IRQ_OFFSET); + iowrite32(0, gsi->virt + adjust + GSI_INTER_EE_SRC_EV_CH_IRQ_OFFSET); + } iowrite32(0, gsi->virt + GSI_CNTXT_GSI_IRQ_EN_OFFSET); + } /* Turn off all GSI interrupts when we're all done */ -- 2.30.0