Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
From: Md Sadre Alam <quic_mdalam@quicinc.com>
To: Stephan Gerhold <stephan.gerhold@linaro.org>
Cc: <vkoul@kernel.org>, <robin.murphy@arm.com>,
	<u.kleine-koenig@baylibre.com>, <martin.petersen@oracle.com>,
	<fenghua.yu@intel.com>, <av2082000@gmail.com>,
	<linux-arm-msm@vger.kernel.org>, <dmaengine@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <quic_mmanikan@quicinc.com>,
	<quic_srichara@quicinc.com>, <quic_varada@quicinc.com>
Subject: Re: [PATCH v4] dmaengine: qcom: bam_dma: Avoid writing unavailable register
Date: Fri, 10 Jan 2025 17:29:29 +0530	[thread overview]
Message-ID: <fb253fa0-7877-e1b8-138a-b9d9a80c81f1@quicinc.com> (raw)
In-Reply-To: <Z4D2jQNNW94qGIlv@linaro.org>



On 1/10/2025 3:59 PM, Stephan Gerhold wrote:
> On Fri, Dec 20, 2024 at 03:12:03PM +0530, Md Sadre Alam wrote:
>> Avoid writing unavailable register in BAM-Lite mode.
>> BAM_DESC_CNT_TRSHLD register is unavailable in BAM-Lite
>> mode. Its only available in BAM-NDP mode. So only write
>> this register for clients who is using BAM-NDP.
>>
>> Signed-off-by: Md Sadre Alam <quic_mdalam@quicinc.com>
> 
> What are we actually fixing here? Which platform is affected? Is there a
> crash, reset, or incorrect behavior?
On SDX75, QPIC use BAM-Lite and as per HW description this
BAM_DESC_CNT_TRSHLD register is not available, and writing to this
SDX75 was hanging.
> 
> We have had this code for years without reported issues, with both
> BAM-NDP and BAM-Lite instances. The register documentation on APQ8016E
> documents the BAM_DESC_CNT_TRSHLD register even for the BAM-Lite
> instance. There is a comment that it doesn't apply to BAM-Lite, but I
> would expect the written value just ends up being ignored in that case.
With older xPU it was being ignored but with new xPU its hanging. HW
team suggested don't write this register for BAM-Lite mode since its not
available.
> 
> Also, there is not just BAM-NDP and BAM-Lite, but also plain "BAM". What
> about that one? Should we write to BAM_DESC_CNT_TRSHLD?
Apart from BAM-Lite this register available in all the BAM
> 
>> ---
>> Change in [v4]
>>
>> * Added in_range() macro
>>
>> Change in [v3]
>>
>> * Removed BAM_LITE macro
>>
>> * Updated commit message
>>
>> * Adjusted if condition check
>>
>> * Renamed BAM-NDP macro to BAM_NDP_REVISION_START and
>>     BAM_NDP_REVISION_END
>>
>> Change in [v2]
>>
>> * Replace 0xff with REVISION_MASK in the statement
>>     bdev->bam_revision = val & REVISION_MASK
>>
>> Change in [v1]
>>
>> * Added initial patch
>>
>>   drivers/dma/qcom/bam_dma.c | 24 ++++++++++++++++--------
>>   1 file changed, 16 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c
>> index bbc3276992bb..c14557efd577 100644
>> --- a/drivers/dma/qcom/bam_dma.c
>> +++ b/drivers/dma/qcom/bam_dma.c
>> @@ -59,6 +59,9 @@ struct bam_desc_hw {
>>   #define DESC_FLAG_NWD BIT(12)
>>   #define DESC_FLAG_CMD BIT(11)
>>   
>> +#define BAM_NDP_REVISION_START	0x20
>> +#define BAM_NDP_REVISION_END	0x27
>> +
> 
> Are you sure this covers all SoCs we support upstream? If one of the
> older or newer supported SoCs uses a value outside of this range, it
> will now be missing the register write.
I got this data from HW team. Will confirm once again if any SOCs we are 
missing.

Thanks,
Alam.

  reply	other threads:[~2025-01-10 11:59 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-20  9:42 [PATCH v4] dmaengine: qcom: bam_dma: Avoid writing unavailable register Md Sadre Alam
2024-12-24 10:41 ` Vinod Koul
2025-01-07 21:30 ` Georgi Djakov
2025-01-08 11:10   ` Vinod Koul
2025-01-08 11:14     ` Md Sadre Alam
2025-01-10  5:23     ` Md Sadre Alam
2025-01-08 11:14   ` Md Sadre Alam
2025-01-10  5:21   ` Md Sadre Alam
2025-01-10 10:29 ` Stephan Gerhold
2025-01-10 11:59   ` Md Sadre Alam [this message]
2025-01-10 12:07     ` Stephan Gerhold
2025-01-10 12:23       ` Md Sadre Alam

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=fb253fa0-7877-e1b8-138a-b9d9a80c81f1@quicinc.com \
    --to=quic_mdalam@quicinc.com \
    --cc=av2082000@gmail.com \
    --cc=dmaengine@vger.kernel.org \
    --cc=fenghua.yu@intel.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=quic_mmanikan@quicinc.com \
    --cc=quic_srichara@quicinc.com \
    --cc=quic_varada@quicinc.com \
    --cc=robin.murphy@arm.com \
    --cc=stephan.gerhold@linaro.org \
    --cc=u.kleine-koenig@baylibre.com \
    --cc=vkoul@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