• Jeeja KP's avatar
    ASoC: Intel: Skylake: Fix module load when module size > DMA buffer size · b7d0254c
    Jeeja KP authored
    When module size > DMA buffer size, driver copies first chunk and waits
    for the BDL complete interrupt. BDL complete interrupt never occurs and
    wait time expires as module load IPC is not send to start the DMA from
    DSP.
    
    To fix the above issue need to follow the below steps:
    1. After copying the first chunk, send the module load IPC to start the
    DMA.
    2. Wait for the BDL interrupt. Once interrupt is received, copy the
    next chunk.
    3. Continue step 2 till all bytes are copied.
    4. When all the bytes are copied (bytes_left = 0), wait for module load
    IPC response
    5. Handled module load IPC response messages, check the load module IPC
    response and wake up the thread to complete module load.
    Signed-off-by: default avatarJeeja KP <jeeja.kp@intel.com>
    Acked-by: default avatarVinod Koul <vinod.koul@intel.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    b7d0254c
skl-sst-ipc.c 29.1 KB