Re: [PATCH v4] dmaengine: qcom: bam_dma: Avoid writing unavailable register

From: Georgi Djakov
Date: Tue Jan 07 2025 - 16:30:56 EST


On 20.12.24 11:42, 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@xxxxxxxxxxx>
---

My Dragonboard db845c fails to boot on recent linux-next releases and
git bisect points to this patch. It boots again when it's reverted.

[..]

bchan->reconfigure = 0;
@@ -1192,10 +1199,11 @@ static int bam_init(struct bam_device *bdev)
u32 val;
/* read revision and configuration information */
- if (!bdev->num_ees) {
- val = readl_relaxed(bam_addr(bdev, 0, BAM_REVISION));
+ val = readl_relaxed(bam_addr(bdev, 0, BAM_REVISION));
+ if (!bdev->num_ees)
bdev->num_ees = (val >> NUM_EES_SHIFT) & NUM_EES_MASK;
- }
+
+ bdev->bam_revision = val & REVISION_MASK;

The problem seems to occur when we try to read the revision for the
slimbus bam instance at 0x17184000 (which has "qcom,num-ees = <2>;").

Thanks,
Georgi