Skip to content
Commit 00d46612 authored by Kai Vehmanen's avatar Kai Vehmanen Committed by Henrik Brix Andersen
Browse files

drivers: dma: intel-adsp-hda: modify stop dma logic

Commit b2eaa6448076 ("drivers: dma: intel-adsp-hda: add delay to stop
host dma") added a wait on GBUSY state to host DMA stop.

This is problematic as in some case (like SOF chain-DMA usage),
the host DMA side RUN bit is not cleared when intel_adsp_hda_dma_stop()
is called. It is not possible to wait on GBUSY bit as there are
valid cases where it can remain set.

Address the original problem described in SOF bug #8686 and add a
polling check for intel_adsp_hda_is_enabled(). As per the bug
description, in some cases the GEN/FIFORDY bits are not cleared
immediately and if a new call to intel_adsp_hda_dma_stop() is made, the
PM refcounting will go haywire.

Link: https://github.com/thesofproject/sof/issues/8686


Signed-off-by: default avatarKai Vehmanen <kai.vehmanen@linux.intel.com>
parent 415cb65e
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment