Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp3942033iog; Tue, 21 Jun 2022 08:52:12 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uj+BSwuC9vV7dujTKxnybg7aYlgaRB3wt40egaf4LYkpdoRWJ0M6oqVLsGo7HAR3neLTeD X-Received: by 2002:a17:907:3f11:b0:711:d56d:ab57 with SMTP id hq17-20020a1709073f1100b00711d56dab57mr26467597ejc.160.1655826732049; Tue, 21 Jun 2022 08:52:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655826732; cv=none; d=google.com; s=arc-20160816; b=qfFuO6eqLqmA3UMAccF5nOWXjRtoKHbT/ZVQRjGa8dsZCxn6KbIYfqwcX8JH8z/AsP D0lNUc42X5jYpfn23yB1SZSS1y04uP2O21cUmKW+ggP8LQ8hiKaLAl1IMLi3WqcveUge 2/xrYqcTUl6emF+M22c/aDxgYhK5QNfE9U3PM6SLisgIeW+2fzon4+FrX5t4Fb1g4qAT maWMdOuEjC02E9lYOK62CF4xESLG4XIoJwY8JN3I+QWpuBo+cDqEzdmzAgaMUcrUMc8K 8Kkb+N7X7u09IKzXgcda20hJ17qPqdzFU8E4vM8TC62Kd474Vy9Ipm6+d1q869L3lYIT 72+A== 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 :dkim-signature; bh=uAYlVlaSKiCol2osSU9jEMs5Zkro7eHEKz4SvQwuMgY=; b=K3u4ID3tGv/I4GbUj1nd3+KmDJO30iru//jct1ABXJveUWok6gKZ7DRVlOpHqK6qMF barWq62lg3QG5B6wWngAsjbTyaBOuGZnCrETCzer4X107ShkA1r0e6AOmYJ/J+Bo0mv7 f+zKdVb0AYpF2KYh+r5pdCTnpq62LNFuD2FAh8brKQI71EKKC1SHgt5SykC6kzECFIVm N8O1WRzbawtR0d3673k3eOXUamgOxP4qD5vNwvNqrNs9R9YRyB67VYMkVPI3fmg59Sk1 yXYHrr1wQ2sSo0I02EdXJ38akmCaGApEOu4n6bOsLR9F8luL5AyjdgUUIkllCPk5l/8Z jr9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@kapsi.fi header.s=20161220 header.b=04PGijhO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g24-20020a056402321800b004357cb69446si7575041eda.179.2022.06.21.08.51.45; Tue, 21 Jun 2022 08:52:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@kapsi.fi header.s=20161220 header.b=04PGijhO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352428AbiFUPLI (ORCPT + 99 others); Tue, 21 Jun 2022 11:11:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44710 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1352381AbiFUPKw (ORCPT ); Tue, 21 Jun 2022 11:10:52 -0400 Received: from mail.kapsi.fi (mail.kapsi.fi [IPv6:2001:67c:1be8::25]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4AA402A413; Tue, 21 Jun 2022 08:10:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=kapsi.fi; s=20161220; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=uAYlVlaSKiCol2osSU9jEMs5Zkro7eHEKz4SvQwuMgY=; b=04PGijhODfOfCsPyuglbXB3Dcb bkcYbMinfgntYIl6uBsiU96G2VfJHmtxlGOBF8Y3wum8wRfkvdg/PI3KmkiAfYgO+VcSRf58dpJ/A CF3cyaiLpD5gJf3oIiVYVzIECcnj7naVo7athp0lWTyo/fVTeTT4h1DuR30DRV7RWBlrdLaezJdWB 2cfcNtDs6mBBTJay6+BvU8L9G01mO3ZI5133DKi/ukPVBNJjOGGm6TEnitKxws1whKjdNffnf2B76 jCwyBdGTR6DG8Kia0y+GNAVssRINP7XxmwE4VcozWsfiQJ7jOs/MJlHotrBnQLNWG7xmaB+wCFIA5 ScuZ9JHw==; Received: from 91-158-25-70.elisa-laajakaista.fi ([91.158.25.70] helo=toshino.localdomain) by mail.kapsi.fi with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1o3fWU-00Ea3F-Ds; Tue, 21 Jun 2022 18:10:34 +0300 From: Mikko Perttunen To: thierry.reding@gmail.com, jonathanh@nvidia.com, joro@8bytes.org, will@kernel.org, robin.murphy@arm.com, robh+dt@kernel.org, krzysztof.kozlowski@canonical.com Cc: linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org, iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Mikko Perttunen Subject: [PATCH v6 07/10] drm/tegra: falcon: Set DMACTX field on DMA transactions Date: Tue, 21 Jun 2022 18:10:19 +0300 Message-Id: <20220621151022.1416300-8-cyndis@kapsi.fi> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220621151022.1416300-1-cyndis@kapsi.fi> References: <20220621151022.1416300-1-cyndis@kapsi.fi> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 91.158.25.70 X-SA-Exim-Mail-From: cyndis@kapsi.fi X-SA-Exim-Scanned: No (on mail.kapsi.fi); SAEximRunCond expanded to false X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mikko Perttunen The DMACTX field determines which context, as specified in the TRANSCFG register, is used. While during boot it doesn't matter which is used, later on it matters and this value is reused by the firmware. Signed-off-by: Mikko Perttunen --- drivers/gpu/drm/tegra/falcon.c | 8 ++++++++ drivers/gpu/drm/tegra/falcon.h | 1 + 2 files changed, 9 insertions(+) diff --git a/drivers/gpu/drm/tegra/falcon.c b/drivers/gpu/drm/tegra/falcon.c index 3762d87759d9..c0d85463eb1a 100644 --- a/drivers/gpu/drm/tegra/falcon.c +++ b/drivers/gpu/drm/tegra/falcon.c @@ -48,6 +48,14 @@ static int falcon_copy_chunk(struct falcon *falcon, if (target == FALCON_MEMORY_IMEM) cmd |= FALCON_DMATRFCMD_IMEM; + /* + * Use second DMA context (i.e. the one for firmware). Strictly + * speaking, at this point both DMA contexts point to the firmware + * stream ID, but this register's value will be reused by the firmware + * for later DMA transactions, so we need to use the correct value. + */ + cmd |= FALCON_DMATRFCMD_DMACTX(1); + falcon_writel(falcon, offset, FALCON_DMATRFMOFFS); falcon_writel(falcon, base, FALCON_DMATRFFBOFFS); falcon_writel(falcon, cmd, FALCON_DMATRFCMD); diff --git a/drivers/gpu/drm/tegra/falcon.h b/drivers/gpu/drm/tegra/falcon.h index c56ee32d92ee..1955cf11a8a6 100644 --- a/drivers/gpu/drm/tegra/falcon.h +++ b/drivers/gpu/drm/tegra/falcon.h @@ -50,6 +50,7 @@ #define FALCON_DMATRFCMD_IDLE (1 << 1) #define FALCON_DMATRFCMD_IMEM (1 << 4) #define FALCON_DMATRFCMD_SIZE_256B (6 << 8) +#define FALCON_DMATRFCMD_DMACTX(v) (((v) & 0x7) << 12) #define FALCON_DMATRFFBOFFS 0x0000111c -- 2.36.1