Unverified Commit 5a184f1c authored by Cezary Rojewski's avatar Cezary Rojewski Committed by Mark Brown
Browse files

ASoC: Intel: catpt: Fix the device initialization



The DMA mask shall be coerced before any buffer allocations for the
device are done.  At the same time explain why DMA mask of 31 bits is
used in the first place.

Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Fixes: 7a10b66a ("ASoC: Intel: catpt: Device driver lifecycle")
Signed-off-by: default avatarCezary Rojewski <cezary.rojewski@intel.com>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20260320101217.1243688-1-cezary.rojewski@intel.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 2594196f
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -281,7 +281,15 @@ static int catpt_acpi_probe(struct platform_device *pdev)
	if (IS_ERR(cdev->pci_ba))
		return PTR_ERR(cdev->pci_ba);

	/* alloc buffer for storing DRAM context during dx transitions */
	/*
	 * As per design HOST is responsible for preserving firmware's runtime
	 * context during D0 -> D3 -> D0 transitions.  Addresses used for DMA
	 * to/from HOST memory shall be outside the reserved range of 0xFFFxxxxx.
	 */
	ret = dma_coerce_mask_and_coherent(cdev->dev, DMA_BIT_MASK(31));
	if (ret)
		return ret;

	cdev->dxbuf_vaddr = dmam_alloc_coherent(dev, catpt_dram_size(cdev),
						&cdev->dxbuf_paddr, GFP_KERNEL);
	if (!cdev->dxbuf_vaddr)
+0 −3
Original line number Diff line number Diff line
@@ -125,9 +125,6 @@ int catpt_dmac_probe(struct catpt_dev *cdev)
	dmac->dev = cdev->dev;
	dmac->irq = cdev->irq;

	ret = dma_coerce_mask_and_coherent(cdev->dev, DMA_BIT_MASK(31));
	if (ret)
		return ret;
	/*
	 * Caller is responsible for putting device in D0 to allow
	 * for I/O and memory access before probing DW.