Re: [PATCH v3 2/6] iommu/ipmmu-vmsa: tidyup register definitions

2019-11-06 Thread Niklas Söderlund
Hi Shimoda-san,

Thanks for your patch,

On 2019-11-06 11:35:46 +0900, Yoshihiro Shimoda wrote:
> To support different registers memory mapping hardware easily
> in the future, this patch tidies up the register definitions
> as below:
>  - Add comments to state to which SoCs or SoC families they apply
>  - Add categories about MMU "context" and uTLB registers
> 
> No change behavior.
> 
> Signed-off-by: Yoshihiro Shimoda 

Reviewed-by: Niklas Söderlund 

> ---
>  drivers/iommu/ipmmu-vmsa.c | 58 
> --
>  1 file changed, 30 insertions(+), 28 deletions(-)
> 
> diff --git a/drivers/iommu/ipmmu-vmsa.c b/drivers/iommu/ipmmu-vmsa.c
> index c4ec166..79975e1 100644
> --- a/drivers/iommu/ipmmu-vmsa.c
> +++ b/drivers/iommu/ipmmu-vmsa.c
> @@ -101,47 +101,49 @@ static struct ipmmu_vmsa_device *to_ipmmu(struct device 
> *dev)
>  
>  #define IM_CTX_SIZE  0x40
>  
> -#define IMCTR0x
> -#define IMCTR_INTEN  (1 << 2)
> -#define IMCTR_FLUSH  (1 << 1)
> -#define IMCTR_MMUEN  (1 << 0)
> -
> -#define IMTTBCR  0x0008
> -#define IMTTBCR_EAE  (1 << 31)
> +/* MMU "context" registers */
> +#define IMCTR0x  /* R-Car Gen2/3 
> */
> +#define IMCTR_INTEN  (1 << 2)/* R-Car Gen2/3 */
> +#define IMCTR_FLUSH  (1 << 1)/* R-Car Gen2/3 */
> +#define IMCTR_MMUEN  (1 << 0)/* R-Car Gen2/3 */
> +
> +#define IMTTBCR  0x0008  /* R-Car Gen2/3 
> */
> +#define IMTTBCR_EAE  (1 << 31)   /* R-Car Gen2/3 */
>  #define IMTTBCR_SH0_INNER_SHAREABLE  (3 << 12)   /* R-Car Gen2 only */
>  #define IMTTBCR_ORGN0_WB_WA  (1 << 10)   /* R-Car Gen2 only */
>  #define IMTTBCR_IRGN0_WB_WA  (1 << 8)/* R-Car Gen2 only */
>  #define IMTTBCR_SL0_TWOBIT_LVL_1 (2 << 6)/* R-Car Gen3 only */
> -#define IMTTBCR_SL0_LVL_1(1 << 4)
> +#define IMTTBCR_SL0_LVL_1(1 << 4)/* R-Car Gen2 only */
>  
> -#define IMBUSCR  0x000c
> -#define IMBUSCR_DVM  (1 << 2)
> -#define IMBUSCR_BUSSEL_MASK  (3 << 0)
> +#define IMBUSCR  0x000c  /* R-Car Gen2 
> only */
> +#define IMBUSCR_DVM  (1 << 2)/* R-Car Gen2 only */
> +#define IMBUSCR_BUSSEL_MASK  (3 << 0)/* R-Car Gen2 only */
>  
> -#define IMTTLBR0 0x0010
> -#define IMTTUBR0 0x0014
> +#define IMTTLBR0 0x0010  /* R-Car Gen2/3 */
> +#define IMTTUBR0 0x0014  /* R-Car Gen2/3 */
>  
> -#define IMSTR0x0020
> -#define IMSTR_MHIT   (1 << 4)
> -#define IMSTR_ABORT  (1 << 2)
> -#define IMSTR_PF (1 << 1)
> -#define IMSTR_TF (1 << 0)
> +#define IMSTR0x0020  /* R-Car Gen2/3 
> */
> +#define IMSTR_MHIT   (1 << 4)/* R-Car Gen2/3 */
> +#define IMSTR_ABORT  (1 << 2)/* R-Car Gen2/3 */
> +#define IMSTR_PF (1 << 1)/* R-Car Gen2/3 */
> +#define IMSTR_TF (1 << 0)/* R-Car Gen2/3 */
>  
> -#define IMMAIR0  0x0028
> +#define IMMAIR0  0x0028  /* R-Car Gen2/3 
> */
>  
> -#define IMELAR   0x0030  /* IMEAR on R-Car Gen2 
> */
> -#define IMEUAR   0x0034  /* R-Car Gen3 only */
> +#define IMELAR   0x0030  /* R-Car 
> Gen2/3, IMEAR on R-Car Gen2 */
> +#define IMEUAR   0x0034  /* R-Car Gen3 
> only */
>  
> +/* uTLB registers */
>  #define IMUCTR(n)((n) < 32 ? IMUCTR0(n) : IMUCTR32(n))
> -#define IMUCTR0(n)   (0x0300 + ((n) * 16))
> -#define IMUCTR32(n)  (0x0600 + (((n) - 32) * 16))
> -#define IMUCTR_TTSEL_MMU(n)  ((n) << 4)
> -#define IMUCTR_FLUSH (1 << 1)
> -#define IMUCTR_MMUEN (1 << 0)
> +#define IMUCTR0(n)   (0x0300 + ((n) * 16))   /* 
> R-Car Gen2/3 */
> +#define IMUCTR32(n)  (0x0600 + (((n) - 32) * 16))/* 
> R-Car Gen3 only */
> +#define IMUCTR_TTSEL_MMU(n)  ((n) << 4)  /* R-Car Gen2/3 */
> +#define IMUCTR_FLUSH (1 << 1)/* R-Car Gen2/3 */
> +#define IMUCTR_MMUEN (1 << 0)/* R-Car Gen2/3 */
>  
>  #define IMUASID(n)   ((n) < 32 ? IMUASID0(n) : IMUASID32(n))
> -#define IMUASID0(n)  (0x0308 + ((n) * 16))
> -#define IMUASID32(n) (0x0608 + (((n) - 32) * 16))
> +

[PATCH v3 2/6] iommu/ipmmu-vmsa: tidyup register definitions

2019-11-05 Thread Yoshihiro Shimoda
To support different registers memory mapping hardware easily
in the future, this patch tidies up the register definitions
as below:
 - Add comments to state to which SoCs or SoC families they apply
 - Add categories about MMU "context" and uTLB registers

No change behavior.

Signed-off-by: Yoshihiro Shimoda 
---
 drivers/iommu/ipmmu-vmsa.c | 58 --
 1 file changed, 30 insertions(+), 28 deletions(-)

diff --git a/drivers/iommu/ipmmu-vmsa.c b/drivers/iommu/ipmmu-vmsa.c
index c4ec166..79975e1 100644
--- a/drivers/iommu/ipmmu-vmsa.c
+++ b/drivers/iommu/ipmmu-vmsa.c
@@ -101,47 +101,49 @@ static struct ipmmu_vmsa_device *to_ipmmu(struct device 
*dev)
 
 #define IM_CTX_SIZE0x40
 
-#define IMCTR  0x
-#define IMCTR_INTEN(1 << 2)
-#define IMCTR_FLUSH(1 << 1)
-#define IMCTR_MMUEN(1 << 0)
-
-#define IMTTBCR0x0008
-#define IMTTBCR_EAE(1 << 31)
+/* MMU "context" registers */
+#define IMCTR  0x  /* R-Car Gen2/3 */
+#define IMCTR_INTEN(1 << 2)/* R-Car Gen2/3 */
+#define IMCTR_FLUSH(1 << 1)/* R-Car Gen2/3 */
+#define IMCTR_MMUEN(1 << 0)/* R-Car Gen2/3 */
+
+#define IMTTBCR0x0008  /* R-Car Gen2/3 
*/
+#define IMTTBCR_EAE(1 << 31)   /* R-Car Gen2/3 */
 #define IMTTBCR_SH0_INNER_SHAREABLE(3 << 12)   /* R-Car Gen2 only */
 #define IMTTBCR_ORGN0_WB_WA(1 << 10)   /* R-Car Gen2 only */
 #define IMTTBCR_IRGN0_WB_WA(1 << 8)/* R-Car Gen2 only */
 #define IMTTBCR_SL0_TWOBIT_LVL_1   (2 << 6)/* R-Car Gen3 only */
-#define IMTTBCR_SL0_LVL_1  (1 << 4)
+#define IMTTBCR_SL0_LVL_1  (1 << 4)/* R-Car Gen2 only */
 
-#define IMBUSCR0x000c
-#define IMBUSCR_DVM(1 << 2)
-#define IMBUSCR_BUSSEL_MASK(3 << 0)
+#define IMBUSCR0x000c  /* R-Car Gen2 
only */
+#define IMBUSCR_DVM(1 << 2)/* R-Car Gen2 only */
+#define IMBUSCR_BUSSEL_MASK(3 << 0)/* R-Car Gen2 only */
 
-#define IMTTLBR0   0x0010
-#define IMTTUBR0   0x0014
+#define IMTTLBR0   0x0010  /* R-Car Gen2/3 */
+#define IMTTUBR0   0x0014  /* R-Car Gen2/3 */
 
-#define IMSTR  0x0020
-#define IMSTR_MHIT (1 << 4)
-#define IMSTR_ABORT(1 << 2)
-#define IMSTR_PF   (1 << 1)
-#define IMSTR_TF   (1 << 0)
+#define IMSTR  0x0020  /* R-Car Gen2/3 */
+#define IMSTR_MHIT (1 << 4)/* R-Car Gen2/3 */
+#define IMSTR_ABORT(1 << 2)/* R-Car Gen2/3 */
+#define IMSTR_PF   (1 << 1)/* R-Car Gen2/3 */
+#define IMSTR_TF   (1 << 0)/* R-Car Gen2/3 */
 
-#define IMMAIR00x0028
+#define IMMAIR00x0028  /* R-Car Gen2/3 
*/
 
-#define IMELAR 0x0030  /* IMEAR on R-Car Gen2 */
-#define IMEUAR 0x0034  /* R-Car Gen3 only */
+#define IMELAR 0x0030  /* R-Car Gen2/3, IMEAR 
on R-Car Gen2 */
+#define IMEUAR 0x0034  /* R-Car Gen3 only */
 
+/* uTLB registers */
 #define IMUCTR(n)  ((n) < 32 ? IMUCTR0(n) : IMUCTR32(n))
-#define IMUCTR0(n) (0x0300 + ((n) * 16))
-#define IMUCTR32(n)(0x0600 + (((n) - 32) * 16))
-#define IMUCTR_TTSEL_MMU(n)((n) << 4)
-#define IMUCTR_FLUSH   (1 << 1)
-#define IMUCTR_MMUEN   (1 << 0)
+#define IMUCTR0(n) (0x0300 + ((n) * 16))   /* 
R-Car Gen2/3 */
+#define IMUCTR32(n)(0x0600 + (((n) - 32) * 16))/* 
R-Car Gen3 only */
+#define IMUCTR_TTSEL_MMU(n)((n) << 4)  /* R-Car Gen2/3 */
+#define IMUCTR_FLUSH   (1 << 1)/* R-Car Gen2/3 */
+#define IMUCTR_MMUEN   (1 << 0)/* R-Car Gen2/3 */
 
 #define IMUASID(n) ((n) < 32 ? IMUASID0(n) : IMUASID32(n))
-#define IMUASID0(n)(0x0308 + ((n) * 16))
-#define IMUASID32(n)   (0x0608 + (((n) - 32) * 16))
+#define IMUASID0(n)(0x0308 + ((n) * 16))   /* 
R-Car Gen2/3 */
+#define IMUASID32(n)   (0x0608 + (((n) - 32) * 16))/* 
R-Car Gen3 only */
 
 /* 
-
  * Root device