Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
From: Bibek Kumar Patro <quic_bibekkum@quicinc.com>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: <robdclark@gmail.com>, <will@kernel.org>, <robin.murphy@arm.com>,
	<joro@8bytes.org>, <jgg@ziepe.ca>, <jsnitsel@redhat.com>,
	<robh@kernel.org>, <krzysztof.kozlowski@linaro.org>,
	<quic_c_gdjako@quicinc.com>, <konrad.dybcio@linaro.org>,
	<iommu@lists.linux.dev>, <linux-arm-msm@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v13 4/6] iommu/arm-smmu: add ACTLR data and support for SM8550
Date: Wed, 3 Jul 2024 17:45:23 +0530	[thread overview]
Message-ID: <6da77880-2ba4-4b02-8b3e-cb0fbd0a9daf@quicinc.com> (raw)
In-Reply-To: <ueuhu5xfzp2rnuxzeqqd6cho476adidztgx7oq2tbiufauv6h4@obblpxvqwnno>



On 7/2/2024 12:04 AM, Dmitry Baryshkov wrote:
> On Fri, Jun 28, 2024 at 07:34:33PM GMT, Bibek Kumar Patro wrote:
>> Add ACTLR data table for SM8550 along with support for
>> same including SM8550 specific implementation operations.
>>
>> Signed-off-by: Bibek Kumar Patro <quic_bibekkum@quicinc.com>
>> ---
>>   drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 89 ++++++++++++++++++++++
>>   1 file changed, 89 insertions(+)
>>
>> diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
>> index 77c9abffe07d..b4521471ffe9 100644
>> --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
>> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
>> @@ -23,6 +23,85 @@
>>
>>   #define CPRE			(1 << 1)
>>   #define CMTLB			(1 << 0)
>> +#define PREFETCH_SHIFT		8
>> +#define PREFETCH_DEFAULT	0
>> +#define PREFETCH_SHALLOW	(1 << PREFETCH_SHIFT)
>> +#define PREFETCH_MODERATE	(2 << PREFETCH_SHIFT)
>> +#define PREFETCH_DEEP		(3 << PREFETCH_SHIFT)
>> +
>> +static const struct actlr_config sm8550_apps_actlr_cfg[] = {
>> +	{ 0x18a0, 0x0000, PREFETCH_SHALLOW | CPRE | CMTLB },
>> +	{ 0x18e0, 0x0000, PREFETCH_SHALLOW | CPRE | CMTLB },
>> +	{ 0x0800, 0x0020, PREFETCH_DEFAULT | CMTLB },
>> +	{ 0x1800, 0x00c0, PREFETCH_DEFAULT | CMTLB },
>> +	{ 0x1820, 0x0000, PREFETCH_DEFAULT | CMTLB },
>> +	{ 0x1860, 0x0000, PREFETCH_DEFAULT | CMTLB },
>> +	{ 0x0c01, 0x0020, PREFETCH_DEEP | CPRE | CMTLB },
> 
> - Please keep the list sorted

Sure Dmitry, will sort this list in reverse-christmas-tree order
in next iteration. Thanks for this input.

> - Please comment, which devices use these settings.

As discussed in earlier versions of this patch, these table entries
are kind of just blind values for SMMU device, where SMMU do not have
idea on which SID belong to which client. During probe time when the
clients' Stream-ID has corresponding ACTLR entry then the driver would
set value in register.
Also some might have their prefetch settings as proprietary.
Hence did not add the comments for device using these settings.


Thanks & regards,
Bibek

> 
>> +	{ 0x0c02, 0x0020, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x0c03, 0x0020, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x0c04, 0x0020, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x0c05, 0x0020, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x0c06, 0x0020, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x0c07, 0x0020, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x0c08, 0x0020, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x0c09, 0x0020, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x0c0c, 0x0020, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x0c0d, 0x0020, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x0c0e, 0x0020, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x0c0f, 0x0020, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x1961, 0x0000, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x1962, 0x0000, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x1963, 0x0000, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x1964, 0x0000, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x1965, 0x0000, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x1966, 0x0000, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x1967, 0x0000, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x1968, 0x0000, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x1969, 0x0000, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x196c, 0x0000, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x196d, 0x0000, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x196e, 0x0000, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x196f, 0x0000, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x19c1, 0x0010, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x19c2, 0x0010, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x19c3, 0x0010, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x19c4, 0x0010, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x19c5, 0x0010, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x19c6, 0x0010, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x19c7, 0x0010, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x19c8, 0x0010, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x19c9, 0x0010, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x19cc, 0x0010, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x19cd, 0x0010, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x19ce, 0x0010, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x19cf, 0x0010, PREFETCH_DEEP | CPRE | CMTLB },
>> +	{ 0x1c00, 0x0002, PREFETCH_SHALLOW | CPRE | CMTLB },
>> +	{ 0x1c01, 0x0000, PREFETCH_DEFAULT | CMTLB },
>> +	{ 0x1920, 0x0000, PREFETCH_SHALLOW | CPRE | CMTLB },
>> +	{ 0x1923, 0x0000, PREFETCH_SHALLOW | CPRE | CMTLB },
>> +	{ 0x1924, 0x0000, PREFETCH_SHALLOW | CPRE | CMTLB },
>> +	{ 0x1940, 0x0000, PREFETCH_SHALLOW | CPRE | CMTLB },
>> +	{ 0x1941, 0x0004, PREFETCH_SHALLOW | CPRE | CMTLB },
>> +	{ 0x1943, 0x0000, PREFETCH_SHALLOW | CPRE | CMTLB },
>> +	{ 0x1944, 0x0000, PREFETCH_SHALLOW | CPRE | CMTLB },
>> +	{ 0x1947, 0x0000, PREFETCH_SHALLOW | CPRE | CMTLB },
>> +};
>> +
>> +static const struct actlr_config sm8550_gfx_actlr_cfg[] = {
>> +	{ 0x0000, 0x03ff, PREFETCH_DEEP | CPRE | CMTLB },
>> +};
>> +
>> +static const struct actlr_variant sm8550_actlr[] = {
>> +	{
>> +		.io_start = 0x15000000,
>> +		.actlrcfg = sm8550_apps_actlr_cfg,
>> +		.num_actlrcfg = ARRAY_SIZE(sm8550_apps_actlr_cfg)
>> +	}, {
>> +		.io_start = 0x03da0000,
>> +		.actlrcfg = sm8550_gfx_actlr_cfg,
>> +		.num_actlrcfg = ARRAY_SIZE(sm8550_gfx_actlr_cfg)
>> +	},
>> +};
>>
>>   static struct qcom_smmu *to_qcom_smmu(struct arm_smmu_device *smmu)
>>   {
>> @@ -606,6 +685,15 @@ static const struct qcom_smmu_match_data sdm845_smmu_500_data = {
>>   	/* Also no debug configuration. */
>>   };
>>
>> +
>> +static const struct qcom_smmu_match_data sm8550_smmu_500_impl0_data = {
>> +	.impl = &qcom_smmu_500_impl,
>> +	.adreno_impl = &qcom_adreno_smmu_500_impl,
>> +	.cfg = &qcom_smmu_impl0_cfg,
>> +	.actlrvar = sm8550_actlr,
>> +	.num_smmu = ARRAY_SIZE(sm8550_actlr),
>> +};
>> +
>>   static const struct qcom_smmu_match_data qcom_smmu_500_impl0_data = {
>>   	.impl = &qcom_smmu_500_impl,
>>   	.adreno_impl = &qcom_adreno_smmu_500_impl,
>> @@ -640,6 +728,7 @@ static const struct of_device_id __maybe_unused qcom_smmu_impl_of_match[] = {
>>   	{ .compatible = "qcom,sm8250-smmu-500", .data = &qcom_smmu_500_impl0_data },
>>   	{ .compatible = "qcom,sm8350-smmu-500", .data = &qcom_smmu_500_impl0_data },
>>   	{ .compatible = "qcom,sm8450-smmu-500", .data = &qcom_smmu_500_impl0_data },
>> +	{ .compatible = "qcom,sm8550-smmu-500", .data = &sm8550_smmu_500_impl0_data },
>>   	{ .compatible = "qcom,smmu-500", .data = &qcom_smmu_500_impl0_data },
>>   	{ }
>>   };
>> --
>> 2.34.1
>>
> 

  reply	other threads:[~2024-07-03 12:15 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-28 14:04 [PATCH v13 0/6] iommu/arm-smmu: introduction of ACTLR implementation for Qualcomm SoCs Bibek Kumar Patro
2024-06-28 14:04 ` [PATCH v13 1/6] iommu/arm-smmu: re-enable context caching in smmu reset operation Bibek Kumar Patro
2024-06-28 14:04 ` [PATCH v13 2/6] iommu/arm-smmu: refactor qcom_smmu structure to include single pointer Bibek Kumar Patro
2024-06-28 14:04 ` [PATCH v13 3/6] iommu/arm-smmu: introduction of ACTLR for custom prefetcher settings Bibek Kumar Patro
2024-06-28 14:04 ` [PATCH v13 4/6] iommu/arm-smmu: add ACTLR data and support for SM8550 Bibek Kumar Patro
2024-07-01 18:34   ` Dmitry Baryshkov
2024-07-03 12:15     ` Bibek Kumar Patro [this message]
2024-07-03 13:02       ` Will Deacon
2024-07-04  9:12         ` Bibek Kumar Patro
2024-07-04 11:26           ` Dmitry Baryshkov
2024-07-04 11:23       ` Dmitry Baryshkov
2024-07-10 17:44         ` Bibek Kumar Patro
2024-06-28 14:04 ` [PATCH v13 5/6] iommu/arm-smmu: add ACTLR data and support for SC7280 Bibek Kumar Patro
2024-06-28 14:04 ` [PATCH v13 6/6] iommu/arm-smmu: add support for PRR bit setup Bibek Kumar Patro
2024-06-28 14:17   ` Rob Clark
2024-06-28 15:09     ` Bibek Kumar Patro
2024-06-28 15:44       ` Rob Clark
2024-07-01 11:00         ` Bibek Kumar Patro
2024-07-01 20:31           ` Rob Clark
2024-07-03 11:38             ` Bibek Kumar Patro
2024-07-04 14:46               ` Rob Clark
2024-07-04 15:58                 ` Rob Clark
2024-07-09 19:42                   ` Bibek Kumar Patro
2024-07-10 17:01                     ` Rob Clark
2024-07-10 22:01                       ` Konrad Dybcio
2024-07-15 11:01                         ` Bibek Kumar Patro
2024-07-15 10:59                       ` Bibek Kumar Patro
2024-07-15 20:07                         ` Rob Clark
2024-07-16 12:14                           ` Konrad Dybcio
2024-07-19 12:59                             ` Bibek Kumar Patro
2024-07-17 10:27                           ` Bibek Kumar Patro
2024-07-17 15:00                             ` Rob Clark
2024-07-19 12:38                               ` Bibek Kumar Patro

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6da77880-2ba4-4b02-8b3e-cb0fbd0a9daf@quicinc.com \
    --to=quic_bibekkum@quicinc.com \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=iommu@lists.linux.dev \
    --cc=jgg@ziepe.ca \
    --cc=joro@8bytes.org \
    --cc=jsnitsel@redhat.com \
    --cc=konrad.dybcio@linaro.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=quic_c_gdjako@quicinc.com \
    --cc=robdclark@gmail.com \
    --cc=robh@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox