Skip to content

Commit

Permalink
Merge "msm: kgsl: Skip crashdumper if MMU is not attached"
Browse files Browse the repository at this point in the history
  • Loading branch information
qctecmdr authored and Gerrit - the friendly Code Review server committed Sep 4, 2020
2 parents c71411b + 3b8fd30 commit c166b82
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 3 deletions.
4 changes: 3 additions & 1 deletion drivers/gpu/msm/adreno_a6xx_snapshot.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
/* Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
Expand Down Expand Up @@ -1474,6 +1474,8 @@ static void _a6xx_do_crashdump(struct kgsl_device *device)
if (a6xx_capturescript.gpuaddr == 0 ||
a6xx_crashdump_registers.gpuaddr == 0)
return;
if (!test_bit(KGSL_MMU_STARTED, &device->mmu.flags))
return;

/* IF the SMMU is stalled we cannot do a crash dump */
kgsl_regread(device, A6XX_RBBM_STATUS3, &val);
Expand Down
6 changes: 5 additions & 1 deletion drivers/gpu/msm/kgsl_iommu.c
Original file line number Diff line number Diff line change
Expand Up @@ -1759,7 +1759,9 @@ static int kgsl_iommu_start(struct kgsl_mmu *mmu)
}

/* Make sure the hardware is programmed to the default pagetable */
return kgsl_iommu_set_pt(mmu, mmu->defaultpagetable);
kgsl_iommu_set_pt(mmu, mmu->defaultpagetable);
set_bit(KGSL_MMU_STARTED, &mmu->flags);
return 0;
}

static int
Expand Down Expand Up @@ -2144,6 +2146,8 @@ static void kgsl_iommu_stop(struct kgsl_mmu *mmu)
for (i = 0; i < KGSL_IOMMU_CONTEXT_MAX; i++)
_detach_context(&iommu->ctx[i]);
}

clear_bit(KGSL_MMU_STARTED, &mmu->flags);
}

static u64
Expand Down
3 changes: 2 additions & 1 deletion drivers/gpu/msm/kgsl_mmu.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Copyright (c) 2002,2007-2017, The Linux Foundation. All rights reserved.
/* Copyright (c) 2002,2007-2017,2020, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
Expand Down Expand Up @@ -712,6 +712,7 @@ static struct kgsl_pagetable *nommu_getpagetable(struct kgsl_mmu *mmu,
static int nommu_init(struct kgsl_mmu *mmu)
{
mmu->features |= KGSL_MMU_GLOBAL_PAGETABLE;
set_bit(KGSL_MMU_STARTED, &mmu->flags);
return 0;
}

Expand Down
3 changes: 3 additions & 0 deletions drivers/gpu/msm/kgsl_mmu.h
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,9 @@ struct kgsl_mmu {
} priv;
};

/* KGSL MMU FLAGS */
#define KGSL_MMU_STARTED BIT(0)

#define KGSL_IOMMU_PRIV(_device) (&((_device)->mmu.priv.iommu))

extern struct kgsl_mmu_ops kgsl_iommu_ops;
Expand Down

0 comments on commit c166b82

Please sign in to comment.