drm/tegra: nvdec: Use tegra_dev_iommu_get_stream_id()
authorThierry Reding <treding@nvidia.com>
Thu, 17 Nov 2022 12:34:23 +0000 (13:34 +0100)
committerThierry Reding <treding@nvidia.com>
Fri, 27 Jan 2023 16:49:44 +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/nvdec.c

index 10fd215..86c5818 100644 (file)
@@ -67,26 +67,18 @@ static inline void nvdec_writel(struct nvdec *nvdec, u32 value,
 
 static int nvdec_boot_falcon(struct nvdec *nvdec)
 {
-#ifdef CONFIG_IOMMU_API
-       struct iommu_fwspec *spec = dev_iommu_fwspec_get(nvdec->dev);
-#endif
+       u32 stream_id;
        int err;
 
-#ifdef CONFIG_IOMMU_API
-       if (nvdec->config->supports_sid && spec) {
+       if (nvdec->config->supports_sid && tegra_dev_iommu_get_stream_id(nvdec->dev, &stream_id)) {
                u32 value;
 
                value = TRANSCFG_ATT(1, TRANSCFG_SID_FALCON) | TRANSCFG_ATT(0, TRANSCFG_SID_HW);
                nvdec_writel(nvdec, value, NVDEC_TFBIF_TRANSCFG);
 
-               if (spec->num_ids > 0) {
-                       value = spec->ids[0] & 0xffff;
-
-                       nvdec_writel(nvdec, value, VIC_THI_STREAMID0);
-                       nvdec_writel(nvdec, value, VIC_THI_STREAMID1);
-               }
+               nvdec_writel(nvdec, stream_id, VIC_THI_STREAMID0);
+               nvdec_writel(nvdec, stream_id, VIC_THI_STREAMID1);
        }
-#endif
 
        err = falcon_boot(&nvdec->falcon);
        if (err < 0)