Received: by 2002:a05:6a10:9afc:0:0:0:0 with SMTP id t28csp4131938pxm; Tue, 1 Mar 2022 11:56:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJyBNx3ML7IjQcmyyipCGlo5utHkCeja8fegWi2T3AEDFDiCjn2gZKNWy4fqVAygocOQttdn X-Received: by 2002:a17:907:3f95:b0:6d3:feb2:ef88 with SMTP id hr21-20020a1709073f9500b006d3feb2ef88mr20178448ejc.480.1646164618023; Tue, 01 Mar 2022 11:56:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646164618; cv=none; d=google.com; s=arc-20160816; b=WBtSxOASgu+T5MyXApg9u91/mS+aIZSaMj4vAhsft00GstX+3FMBm0G7o2PhL8hx3h rwr2jsc9C6WTZgI4Wakloos1OjitWrNRERWdSD5Ym9QnlDTDu2DD2t3ECDVQSFAXZsMb h/QNMfdWMb6Dn8m8UTHXCR30CNnvn1w1UV88ku0WWEVzwRKHeha9KO63+4d5NGT8SRLt bMOvs0oM2GkyLRsZ+UKauziV1oHavIWgZfB3uwKK5N3S2CJKS7VPITRpE5rZ69CX5STt xZVMPGrJ4tjt0kLmpFNpqncMrOMXqPhO4Mto4XXVZb+gGLxaYaF4VmH+Ow7SIYsWp/y8 xSXA== 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=5Mix95hZnPw7DLW+zsx/wARTOVHfJ0lbWWEi2ceaxVE=; b=FU1KIe2vOEv3eKrmyeLG6JMctdFdy++ha5B0TI854hAuw/dolnBzV8Fky3spdV4+RJ d2AIujhaHN2nErxZyMnAxZ9+eIDUShMftNUkitFUV7p5G7IRSN3lfHbgSIU2DDRXz+To LGCLmMBB973cgYNoNjUiYAJYJoky+IMJ5vZB+kur6xeh9y+RZ6NLmN620Y79SQPqBmGq u1QMLDJi1t8CYEIEVdapZaJJq1mfy63CQ0Nl69RiFixMR7tc53dc4E7MJOoTL8BftAYO bEC6m337LJU1rEKlycTEgSvQyWdiS0pcrVtxbediaqt2e8gsEOxHBaClVy1+i8sN/mxz Wfrw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@kapsi.fi header.s=20161220 header.b=XguYhe2T; 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 j16-20020a056402239000b00413764ba48esi9220621eda.630.2022.03.01.11.56.34; Tue, 01 Mar 2022 11:56:58 -0800 (PST) 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=XguYhe2T; 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 S236101AbiCAQQs (ORCPT + 99 others); Tue, 1 Mar 2022 11:16:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42090 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233241AbiCAQQS (ORCPT ); Tue, 1 Mar 2022 11:16:18 -0500 Received: from mail.kapsi.fi (mail.kapsi.fi [IPv6:2001:67c:1be8::25]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 115868EB47; Tue, 1 Mar 2022 08:15:34 -0800 (PST) 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=5Mix95hZnPw7DLW+zsx/wARTOVHfJ0lbWWEi2ceaxVE=; b=XguYhe2T6oPS1+3HvX2t1KOvtX SH368tVJZutQsy1JmZ4FYNPEqUd+yXavrMPpVRVqbywj0Vnjq5ITdpZicyYcSNCcsVP+Ev1nfP7Nu dbmKwNyzSEldiI7Gv2uHv/UwXHVVMGpELJDR03DOjLTqL44cQnkZvrccB//G6/sEIDKfBUfI0W4W1 fWxnTy6/kIsqOSjdRJRSh1LrJMnTGm8ZHVqUASNhczmY9uSkVzVxDmX+qKnf6FwIGzwfNCe8WIiY1 M8bSrntAKqoaG03FE2S7CGHJN3o5S2ERDtUwH2eam07KgQm9k7dRYxNZU46WqJSqam+ispmdzXb3b Mnwtj+Vw==; Received: from 91-158-25-70.elisa-laajakaista.fi ([91.158.25.70] helo=toshino.localdomain) by mail.kapsi.fi with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1nP59r-0003Z8-6M; Tue, 01 Mar 2022 18:15:27 +0200 From: cyndis@kapsi.fi 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 v4 7/9] drm/tegra: falcon: Set DMACTX field on DMA transactions Date: Tue, 1 Mar 2022 18:14:53 +0200 Message-Id: <20220301161455.4037062-8-cyndis@kapsi.fi> X-Mailer: git-send-email 2.35.0 In-Reply-To: <20220301161455.4037062-1-cyndis@kapsi.fi> References: <20220301161455.4037062-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 223ab2ceb7e6..8bdb72f08f58 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.35.0