mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 20:32:04 +09:00
rk3368: iommu: add page fault call back for master
Signed-off-by: Simon <xxm@rock-chips.com>
This commit is contained in:
@@ -593,6 +593,8 @@ static irqreturn_t rockchip_iommu_irq(int irq, void *dev_id)
|
||||
if (data->domain)
|
||||
report_iommu_fault(data->domain, data->iommu,
|
||||
fault_address, flags);
|
||||
if (data->fault_handler)
|
||||
data->fault_handler(data->iommu, IOMMU_PAGEFAULT, dte, fault_address, 1);
|
||||
|
||||
rockchip_iommu_page_fault_done(data->res_bases[i],
|
||||
data->dbgname);
|
||||
|
||||
@@ -38,6 +38,7 @@ struct iommu_drvdata {
|
||||
struct iommu_domain *domain; /* domain given to iommu_attach_device() */
|
||||
unsigned int pgtable;
|
||||
struct rk_iovmm vmm;
|
||||
rockchip_iommu_fault_handler_t fault_handler;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_ROCKCHIP_IOVMM
|
||||
|
||||
@@ -40,7 +40,9 @@ int rockchip_iovmm_invalidate_tlb(struct device *dev)
|
||||
void rockchip_iovmm_set_fault_handler(struct device *dev,
|
||||
rockchip_iommu_fault_handler_t handler)
|
||||
{
|
||||
return;
|
||||
struct iommu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
|
||||
|
||||
data->fault_handler = handler;
|
||||
}
|
||||
|
||||
int rockchip_iovmm_activate(struct device *dev)
|
||||
|
||||
Reference in New Issue
Block a user