Commit b50ad38d authored by Thierry Reding's avatar Thierry Reding

drm/tegra: vic: 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 b8cbb04f
...@@ -56,41 +56,30 @@ static void vic_writel(struct vic *vic, u32 value, unsigned int offset) ...@@ -56,41 +56,30 @@ static void vic_writel(struct vic *vic, u32 value, unsigned int offset)
static int vic_boot(struct vic *vic) static int vic_boot(struct vic *vic)
{ {
#ifdef CONFIG_IOMMU_API u32 fce_ucode_size, fce_bin_data_offset, stream_id;
struct iommu_fwspec *spec = dev_iommu_fwspec_get(vic->dev);
#endif
u32 fce_ucode_size, fce_bin_data_offset;
void *hdr; void *hdr;
int err = 0; int err = 0;
#ifdef CONFIG_IOMMU_API if (vic->config->supports_sid && tegra_dev_iommu_get_stream_id(vic->dev, &stream_id)) {
if (vic->config->supports_sid && spec) {
u32 value; u32 value;
value = TRANSCFG_ATT(1, TRANSCFG_SID_FALCON) | value = TRANSCFG_ATT(1, TRANSCFG_SID_FALCON) |
TRANSCFG_ATT(0, TRANSCFG_SID_HW); TRANSCFG_ATT(0, TRANSCFG_SID_HW);
vic_writel(vic, value, VIC_TFBIF_TRANSCFG); vic_writel(vic, value, VIC_TFBIF_TRANSCFG);
if (spec->num_ids > 0) { /*
value = spec->ids[0] & 0xffff; * STREAMID0 is used for input/output buffers. Initialize it to SID_VIC in case
* context isolation is not enabled, and SID_VIC is used for both firmware and
/* * data buffers.
* STREAMID0 is used for input/output buffers. *
* Initialize it to SID_VIC in case context isolation * If context isolation is enabled, it will be overridden by the SETSTREAMID
* is not enabled, and SID_VIC is used for both firmware * opcode as part of each job.
* and data buffers. */
* vic_writel(vic, stream_id, VIC_THI_STREAMID0);
* If context isolation is enabled, it will be
* overridden by the SETSTREAMID opcode as part of /* STREAMID1 is used for firmware loading. */
* each job. vic_writel(vic, stream_id, VIC_THI_STREAMID1);
*/
vic_writel(vic, value, VIC_THI_STREAMID0);
/* STREAMID1 is used for firmware loading. */
vic_writel(vic, value, VIC_THI_STREAMID1);
}
} }
#endif
/* setup clockgating registers */ /* setup clockgating registers */
vic_writel(vic, CG_IDLE_CG_DLY_CNT(4) | vic_writel(vic, CG_IDLE_CG_DLY_CNT(4) |
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment