]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/tegra: Use tegra_dev_iommu_get_stream_id()
authorThierry Reding <treding@nvidia.com>
Thu, 17 Nov 2022 12:34:50 +0000 (13:34 +0100)
committerThierry Reding <treding@nvidia.com>
Fri, 27 Jan 2023 16:49:43 +0000 (17:49 +0100)
Use the newly implemented tegra_dev_iommu_get_stream_id() helper to
encapsulate and centralize the IOMMU stream ID access.

Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/drm/tegra/submit.c

index d775225bed1276ff04280c4b0584e813716920ef..2430fcc97448dafa3cd91c5393a74d395f74bf57 100644 (file)
@@ -609,21 +609,13 @@ int tegra_drm_ioctl_channel_submit(struct drm_device *drm, void *data,
                        host1x_memory_context_get(job->memory_context);
                }
        } else if (context->client->ops->get_streamid_offset) {
-#ifdef CONFIG_IOMMU_API
-               struct iommu_fwspec *spec;
-
                /*
                 * Job submission will need to temporarily change stream ID,
                 * so need to tell it what to change it back to.
                 */
-               spec = dev_iommu_fwspec_get(context->client->base.dev);
-               if (spec && spec->num_ids > 0)
-                       job->engine_fallback_streamid = spec->ids[0] & 0xffff;
-               else
-                       job->engine_fallback_streamid = 0x7f;
-#else
-               job->engine_fallback_streamid = 0x7f;
-#endif
+               if (!tegra_dev_iommu_get_stream_id(context->client->base.dev,
+                                                  &job->engine_fallback_streamid))
+                       job->engine_fallback_streamid = TEGRA_STREAM_ID_BYPASS;
        }
 
        /* Boot engine. */