Commit 2abdd44e authored by Thierry Reding's avatar Thierry Reding
Browse files

drm/tegra: nvdec: Use tegra_dev_iommu_get_stream_id()



Use the newly implemented tegra_dev_iommu_get_stream_id() helper to
encapsulate and centralize the IOMMU stream ID access.

Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent b50ad38d
Loading
Loading
Loading
Loading
+4 −12
Original line number Original line Diff line number Diff line
@@ -67,26 +67,18 @@ static inline void nvdec_writel(struct nvdec *nvdec, u32 value,


static int nvdec_boot_falcon(struct nvdec *nvdec)
static int nvdec_boot_falcon(struct nvdec *nvdec)
{
{
#ifdef CONFIG_IOMMU_API
	u32 stream_id;
	struct iommu_fwspec *spec = dev_iommu_fwspec_get(nvdec->dev);
#endif
	int err;
	int err;


#ifdef CONFIG_IOMMU_API
	if (nvdec->config->supports_sid && tegra_dev_iommu_get_stream_id(nvdec->dev, &stream_id)) {
	if (nvdec->config->supports_sid && spec) {
		u32 value;
		u32 value;


		value = TRANSCFG_ATT(1, TRANSCFG_SID_FALCON) | TRANSCFG_ATT(0, TRANSCFG_SID_HW);
		value = TRANSCFG_ATT(1, TRANSCFG_SID_FALCON) | TRANSCFG_ATT(0, TRANSCFG_SID_HW);
		nvdec_writel(nvdec, value, NVDEC_TFBIF_TRANSCFG);
		nvdec_writel(nvdec, value, NVDEC_TFBIF_TRANSCFG);


		if (spec->num_ids > 0) {
		nvdec_writel(nvdec, stream_id, VIC_THI_STREAMID0);
			value = spec->ids[0] & 0xffff;
		nvdec_writel(nvdec, stream_id, VIC_THI_STREAMID1);

			nvdec_writel(nvdec, value, VIC_THI_STREAMID0);
			nvdec_writel(nvdec, value, VIC_THI_STREAMID1);
	}
	}
	}
#endif


	err = falcon_boot(&nvdec->falcon);
	err = falcon_boot(&nvdec->falcon);
	if (err < 0)
	if (err < 0)