lkml.org 
[lkml]   [2021]   [Sep]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 14/33] iommu/mediatek: Always enable output PA over 32bits in isr
    Date
    Currently the output PA[32:33] is contained by the flag IOVA_34.
    This is not right. the iova_34 has no relation with pa[32:33], the 32bits
    iova still could map to pa[32:33]. Move it out from the flag.

    No need fix tag since currently only mt8192 use the calulation and it
    always has this IOVA_34 flag.

    Prepare for the IOMMU that still use IOVA 32bits but its dram size may be
    over 4GB.

    Signed-off-by: Yong Wu <yong.wu@mediatek.com>
    ---
    drivers/iommu/mtk_iommu.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
    index 4a33b6c6b1db..ef98f19ce86e 100644
    --- a/drivers/iommu/mtk_iommu.c
    +++ b/drivers/iommu/mtk_iommu.c
    @@ -289,11 +289,11 @@ static irqreturn_t mtk_iommu_isr(int irq, void *dev_id)
    write = fault_iova & F_MMU_FAULT_VA_WRITE_BIT;
    if (MTK_IOMMU_HAS_FLAG(data->plat_data, IOVA_34_EN)) {
    va34_32 = FIELD_GET(F_MMU_INVAL_VA_34_32_MASK, fault_iova);
    - pa34_32 = FIELD_GET(F_MMU_INVAL_PA_34_32_MASK, fault_iova);
    fault_iova = fault_iova & F_MMU_INVAL_VA_31_12_MASK;
    fault_iova |= (u64)va34_32 << 32;
    - fault_pa |= (u64)pa34_32 << 32;
    }
    + pa34_32 = FIELD_GET(F_MMU_INVAL_PA_34_32_MASK, fault_iova);
    + fault_pa |= (u64)pa34_32 << 32;

    fault_port = F_MMU_INT_ID_PORT_ID(regval);
    if (MTK_IOMMU_HAS_FLAG(data->plat_data, HAS_SUB_COMM)) {
    --
    2.18.0
    \
     
     \ /
      Last update: 2021-09-23 14:02    [W:4.055 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site