Re: [PATCH v2 1/4] iommu/arm-smmu: Introduce wrapper for writeq/readq

From: Robin Murphy
Date: Thu Aug 22 2019 - 10:30:33 EST


On 20/08/2019 13:08, Will Deacon wrote:
Hi Gregory, Hanna,

On Thu, Jul 11, 2019 at 05:02:39PM +0200, Gregory CLEMENT wrote:
From: Hanna Hawa <hannah@xxxxxxxxxxx>

This patch introduces the smmu_writeq_relaxed/smmu_readq_relaxed
helpers, as preparation to add specific Marvell work-around for
accessing 64 bits width registers of ARM SMMU.

Signed-off-by: Hanna Hawa <hannah@xxxxxxxxxxx>
Signed-off-by: Gregory CLEMENT <gregory.clement@xxxxxxxxxxx>
---
drivers/iommu/arm-smmu.c | 36 +++++++++++++++++++++++++++---------
1 file changed, 27 insertions(+), 9 deletions(-)

Sorry for the delay in replying to this -- Robin's been reworking the driver
so that implementation quirks can be specified more cleanly. Please can you
take a look at:

https://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git/log/?h=for-joerg/arm-smmu/refactoring

and try to respin your patches on top of that?

Right, the arm_smmu_impl design was specifically anticipating this quirk as well - it should just be a case of a cfg_probe hook to hide the features which can't work, plus {read,write}_reg64 hooks to override any remaining 64-bit accesses with the explicit hi_lo_* variants, munged together (either statically or dynamically) with the standard MMU-500 hooks.

Robin.