Merge "arm-smmu: Add clock and regulator vote in qcom io page table sync path"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
27a17e4cc4
@@ -1459,7 +1459,9 @@ static void arm_smmu_qcom_tlb_sync(void *cookie)
|
||||
{
|
||||
struct arm_smmu_domain *smmu_domain = cookie;
|
||||
|
||||
arm_smmu_rpm_get(smmu_domain->smmu);
|
||||
__arm_smmu_flush_iotlb_all(&smmu_domain->domain, false);
|
||||
arm_smmu_rpm_put(smmu_domain->smmu);
|
||||
}
|
||||
|
||||
static const struct qcom_iommu_pgtable_ops arm_smmu_pgtable_ops = {
|
||||
|
@@ -385,9 +385,18 @@ static arm_lpae_iopte arm_lpae_install_table(arm_lpae_iopte *table,
|
||||
struct arm_lpae_io_pgtable *data)
|
||||
{
|
||||
arm_lpae_iopte old, new;
|
||||
unsigned long flags = 0;
|
||||
|
||||
/*
|
||||
* Drop the lock for TLB SYNC operation in order to
|
||||
* enable clock & regulator through rpm hooks and
|
||||
* resoter after it.
|
||||
*/
|
||||
|
||||
spin_unlock_irqrestore(&data->lock, flags);
|
||||
/* Due to tlb maintenance in unmap being deferred */
|
||||
qcom_io_pgtable_tlb_sync(data->iommu_pgtbl_ops, data->iop.cookie);
|
||||
spin_lock_irqsave(&data->lock, flags);
|
||||
|
||||
new = __pa(table) | ARM_LPAE_PTE_TYPE_TABLE;
|
||||
if (cfg->quirks & IO_PGTABLE_QUIRK_ARM_NS)
|
||||
|
Reference in New Issue
Block a user