Hi Laurent, On Wed, Jun 8, 2016 at 5:48 PM, Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> wrote: > Hi Geert, > > On Wednesday 08 Jun 2016 09:04:17 Geert Uytterhoeven wrote: >> On Wed, Jun 8, 2016 at 2:18 AM, Laurent Pinchart wrote: >> >> --- 0031/drivers/iommu/ipmmu-vmsa.c >> >> +++ work/drivers/iommu/ipmmu-vmsa.c 2016-06-06 11:19:40.210607110 +0900 >> >> @@ -1074,7 +1074,7 @@ static const struct ipmmu_features ipmmu >> >> .twobit_imttbcr_sl0 = false, > >> }; >> >> >> >> -static const struct ipmmu_features ipmmu_features_r8a7795 = { >> >> +static const struct ipmmu_features ipmmu_features_rcar_gen3 = { >> >> .use_ns_alias_offset = false, >> >> .has_cache_leaf_nodes = true, >> >> .has_eight_ctx = true, >> >> @@ -1088,7 +1088,10 @@ static const struct of_device_id ipmmu_o >> >> .data = &ipmmu_features_default, >> >> }, { >> >> .compatible = "renesas,ipmmu-r8a7795", >> >> - .data = &ipmmu_features_r8a7795, >> >> + .data = &ipmmu_features_rcar_gen3, >> >> + }, { >> >> + .compatible = "renesas,ipmmu-r8a7796", >> >> + .data = &ipmmu_features_rcar_gen3, >> >> }, { >> >> /* Terminator */ >> >> }, >> >> @@ -1268,6 +1271,8 @@ IOMMU_OF_DECLARE(ipmmu_vmsa_iommu_of, "r >> >> ipmmu_vmsa_iommu_of_setup); >> >> IOMMU_OF_DECLARE(ipmmu_r8a7795_iommu_of, "renesas,ipmmu-r8a7795", >> >> ipmmu_vmsa_iommu_of_setup); >> >> +IOMMU_OF_DECLARE(ipmmu_r8a7796_iommu_of, "renesas,ipmmu-r8a7796", >> >> + ipmmu_vmsa_iommu_of_setup); >> > >> > How about a Gen3 generic compatible string in addition to the SoC-specific >> > ones ? >> >> Do we want to specify the number of utlbs here? >> Does it differ between r8a7795, r8a7796, and future members? > > It differs between IPMMU instances on a given SoC, so if we want to specify it > it should be a DT property. Can you please point out which documentation that says it varies with IPMMU instance? Based on IMUCTRn register description "H3-ES1" has 0-31 range while "Others" have 0-47. Thanks, / magnus