android_kernel_samsung_sm8650/drivers/iommu/iommu-logger.h
Chris Goldsworthy 9913ccceda qcom-iommu-util: Take a snapshot of the qcom-iommu-util module from msm-5.15
Take a snapshot of our qcom-iommu-util module as of commit
f843a80d2c45 ("Merge "defconfig: gen3auto: Separated if_changed"") on
msm-5.15. Update minor lint warnings with respect to header inclusions
and spacing.

Change-Id: Ib33f54f081eb029ade172254a6732c49dcf1f73d
Signed-off-by: Chris Goldsworthy <quic_cgoldswo@quicinc.com>
2022-05-06 18:28:28 -07:00

52 lines
1.4 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only */
/* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. */
#ifndef __LINUX_QTI_IOMMU_LOGGER_H
#define __LINUX_QTI_IOMMU_LOGGER_H
#include <linux/io-pgtable.h>
enum iommu_logger_pgtable_fmt {
IOMMU_LOGGER_ARM_32_LPAE_S1,
IOMMU_LOGGER_ARM_64_LPAE_S1,
IOMMU_LOGGER_MAX_PGTABLE_FMTS,
};
/*
* Each group may have more than one domain; but each domain may
* only have one group.
*/
struct iommu_debug_attachment {
struct iommu_domain *domain;
struct iommu_group *group;
char *client_name;
enum iommu_logger_pgtable_fmt fmt;
unsigned int levels;
/*
* Virtual addresses of the top-level page tables are stored here,
* as they are more useful for debug tools than physical addresses.
*/
void *ttbr0;
void *ttbr1;
struct list_head list;
};
#if IS_ENABLED(CONFIG_QTI_IOMMU_SUPPORT)
int iommu_logger_register(struct iommu_debug_attachment **a,
struct iommu_domain *domain, struct device *dev,
struct io_pgtable *iop);
void iommu_logger_unregister(struct iommu_debug_attachment *a);
#else
static inline int iommu_logger_register(struct iommu_debug_attachment **a,
struct iommu_domain *domain,
struct device *dev,
struct io_pgtable *iop)
{
return 0;
}
static inline void iommu_logger_unregister(struct iommu_debug_attachment *a) {}
#endif /* CONFIG_QTI_IOMMU_LOGGER */
#endif /* __LINUX_QTI_IOMMU_LOGGER_H */