On Mon, Aug 26, 2024 at 04:33:24PM +0530, Bibek Kumar Patro wrote: > > > On 8/23/2024 9:29 PM, Will Deacon wrote: > > On Fri, Aug 16, 2024 at 11:12:58PM +0530, Bibek Kumar Patro wrote: > > > Add ACTLR data table for SC7280 along with support for > > > same including SC7280 specific implementation operations. > > > > > > Signed-off-by: Bibek Kumar Patro <quic_bibekkum@xxxxxxxxxxx> > > > --- > > > drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 58 +++++++++++++++++++++- > > > 1 file changed, 57 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c > > > index dc143b250704..a776c7906c76 100644 > > > --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c > > > +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c > > > @@ -31,6 +31,55 @@ > > > #define PREFETCH_MODERATE (2 << PREFETCH_SHIFT) > > > #define PREFETCH_DEEP (3 << PREFETCH_SHIFT) > > > > > > +static const struct actlr_config sc7280_apps_actlr_cfg[] = { > > > + { 0x0800, 0x04e0, PREFETCH_DEFAULT | CMTLB }, > > > + { 0x0900, 0x0402, PREFETCH_SHALLOW | CPRE | CMTLB }, > > > + { 0x0901, 0x0000, PREFETCH_SHALLOW | CPRE | CMTLB }, > > > + { 0x0d01, 0x0000, PREFETCH_SHALLOW | CPRE | CMTLB }, > > > + { 0x1181, 0x0420, PREFETCH_DEEP | CPRE | CMTLB }, > > > + { 0x1182, 0x0420, PREFETCH_DEEP | CPRE | CMTLB }, > > > + { 0x1183, 0x0420, PREFETCH_DEEP | CPRE | CMTLB }, > > > + { 0x1184, 0x0420, PREFETCH_DEEP | CPRE | CMTLB }, > > > + { 0x1185, 0x0420, PREFETCH_DEEP | CPRE | CMTLB }, > > > + { 0x1186, 0x0420, PREFETCH_DEEP | CPRE | CMTLB }, > > > + { 0x1187, 0x0420, PREFETCH_DEEP | CPRE | CMTLB }, > > > + { 0x1188, 0x0420, PREFETCH_DEEP | CPRE | CMTLB }, > > > + { 0x1189, 0x0420, PREFETCH_DEEP | CPRE | CMTLB }, > > > + { 0x118b, 0x0420, PREFETCH_DEEP | CPRE | CMTLB }, > > > + { 0x118c, 0x0420, PREFETCH_DEEP | CPRE | CMTLB }, > > > + { 0x118d, 0x0420, PREFETCH_DEEP | CPRE | CMTLB }, > > > + { 0x118e, 0x0420, PREFETCH_DEEP | CPRE | CMTLB }, > > > + { 0x118f, 0x0420, PREFETCH_DEEP | CPRE | CMTLB }, > > > + { 0x2000, 0x0020, PREFETCH_DEFAULT | CMTLB }, > > > + { 0x2040, 0x0000, PREFETCH_DEFAULT | CMTLB }, > > > + { 0x2062, 0x0000, PREFETCH_DEFAULT | CMTLB }, > > > + { 0x2080, 0x0020, PREFETCH_DEFAULT | CMTLB }, > > > + { 0x20c0, 0x0020, PREFETCH_DEFAULT | CMTLB }, > > > + { 0x2100, 0x0020, PREFETCH_DEFAULT | CMTLB }, > > > + { 0x2140, 0x0000, PREFETCH_DEFAULT | CMTLB }, > > > + { 0x2180, 0x0020, PREFETCH_SHALLOW | CPRE | CMTLB }, > > > + { 0x2181, 0x0004, PREFETCH_SHALLOW | CPRE | CMTLB }, > > > + { 0x2183, 0x0000, PREFETCH_SHALLOW | CPRE | CMTLB }, > > > + { 0x2184, 0x0020, PREFETCH_SHALLOW | CPRE | CMTLB }, > > > + { 0x2187, 0x0000, PREFETCH_SHALLOW | CPRE | CMTLB }, > > > +}; > > > + > > > +static const struct actlr_config sc7280_gfx_actlr_cfg[] = { > > > + { 0x0000, 0x07ff, PREFETCH_DEEP | CPRE | CMTLB }, > > > +}; > > > > It's Will "stuck record" Deacon here again to say that I don't think > > this data belongs in the driver. > > > > Hi Will, > > It will be difficult to reach a consensus here, with Robin and the DT folks > okay to keep it in the driver, while you believe it doesn't belong there. > > Robin, Rob, could you please share your thoughts on concluding the placement > of this prefetch data? > > As discussed earlier [1], the prefetch value for each client doesn’t define > the hardware topology and is implementation-defined register writes used by > the software driver. It does reflect the hardware topology though, doesn't it? Those magic hex masks above refer to stream ids, so the table is hard-coding the prefetch values for particular matches. If I run on a different SoC configuration with the same table, then the prefetch settings will be applied to the wrong devices. How is that not hardware topology? WIll