]> git.baikalelectronics.ru Git - kernel.git/commit
iommu/vt-d: Enable ATS for the devices in SATC table
authorYian Chen <yian.chen@intel.com>
Tue, 1 Mar 2022 02:01:59 +0000 (10:01 +0800)
committerJoerg Roedel <jroedel@suse.de>
Fri, 4 Mar 2022 15:46:31 +0000 (16:46 +0100)
commit3cb3ffda34961853a1c4392599c65a3f8ca18ed3
treef9af4bcfd06e54db41eaed1956f66d20a39fd44d
parent7cdfd814f64b06140da82a2182955552873baa2f
iommu/vt-d: Enable ATS for the devices in SATC table

Starting from Intel VT-d v3.2, Intel platform BIOS can provide additional
SATC table structure. SATC table includes a list of SoC integrated devices
that support ATC (Address translation cache).

Enabling ATC (via ATS capability) can be a functional requirement for SATC
device operation or optional to enhance device performance/functionality.
This is determined by the bit of ATC_REQUIRED in SATC table. When IOMMU is
working in scalable mode, software chooses to always enable ATS for every
device in SATC table because Intel SoC devices in SATC table are trusted to
use ATS.

On the other hand, if IOMMU is in legacy mode, ATS of SATC capable devices
can work transparently to software and be automatically enabled by IOMMU
hardware. As the result, there is no need for software to enable ATS on
these devices.

This also removes dmar_find_matched_atsr_unit() helper as it becomes dead
code now.

Signed-off-by: Yian Chen <yian.chen@intel.com>
Link: https://lore.kernel.org/r/20220222185416.1722611-1-yian.chen@intel.com
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Link: https://lore.kernel.org/r/20220301020159.633356-13-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/intel/iommu.c
include/linux/intel-iommu.h