Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f51dc892 authored by Shameer Kolothum's avatar Shameer Kolothum Committed by Joerg Roedel
Browse files

iommu/dma: Add HW MSI(GICv3 ITS) address regions reservation



Modified iommu_dma_get_resv_regions() to include GICv3 ITS
region on ACPI based ARM platfiorms which may require HW MSI
reservations.

Signed-off-by: default avatarShameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Reviewed-by: default avatarRobin Murphy <robin.murphy@arm.com>
Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent 8b4282e6
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include <linux/acpi_iort.h>
#include <linux/device.h>
#include <linux/dma-iommu.h>
#include <linux/gfp.h>
@@ -167,13 +168,18 @@ EXPORT_SYMBOL(iommu_put_dma_cookie);
 *
 * IOMMU drivers can use this to implement their .get_resv_regions callback
 * for general non-IOMMU-specific reservations. Currently, this covers host
 * bridge windows for PCI devices.
 * bridge windows for PCI devices and GICv3 ITS region reservation on ACPI
 * based ARM platforms that may require HW MSI reservation.
 */
void iommu_dma_get_resv_regions(struct device *dev, struct list_head *list)
{
	struct pci_host_bridge *bridge;
	struct resource_entry *window;

	if (!is_of_node(dev->iommu_fwspec->iommu_fwnode) &&
		iort_iommu_msi_get_resv_regions(dev, list) < 0)
		return;

	if (!dev_is_pci(dev))
		return;