diff options
author | Mikko Perttunen <mperttunen@nvidia.com> | 2022-06-27 17:19:51 +0300 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2022-07-08 17:27:52 +0300 |
commit | e078d8d6c3849019b927edb5beeca38dea00050c (patch) | |
tree | 2ee06f4ee4f31d0de2513ada7cf6ac1b5e419a57 /drivers/gpu/drm/tegra/falcon.c | |
parent | 2486254781eab6f6119fabea78f11386c54460d2 (diff) | |
download | linux-e078d8d6c3849019b927edb5beeca38dea00050c.tar.xz |
drm/tegra: falcon: Set DMACTX field on DMA transactions
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 <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Diffstat (limited to 'drivers/gpu/drm/tegra/falcon.c')
-rw-r--r-- | drivers/gpu/drm/tegra/falcon.c | 8 |
1 files changed, 8 insertions, 0 deletions
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); |