• Ian Minett's avatar
    ALSA: hda - Update CA0132 codec to load DSP firmware binary · 01ef7dbf
    Ian Minett authored
    This patch adds the code needed to fetch the DSP binary image from the local
    firmware install location and transfer it over to the chip using the new DSP
    loader bus ops.
    Actual DSP effect controls, parameters and mixers are to be included later.
    
    - Add calls to new DSP loader system to transfer firmware to the hardware.
    - Add chip read/write routines, DSP I/O, SCP packet format helper functions and
      transfer DMA management.
    - Add guard around DSP download to ensure loader config switch is enabled.
    
    The general scheme for downloading the DSP is as follows:
    1) If DSP firmware loader is enabled, ca0132_download_dsp() is called
    to start the process.
    2) Driver requests DSP image using request_firmware().
    3) Driver sets up the streaming DMA for DSP image download
    with dspload_image() and dspxfr_image(), which in turn calls the DSP loader
    op snd_hda_codec_load_dsp_prepare() to ready the system.
    4) DSP image will consist of 1 or more segments, each transferred in sequence
    by a call to dspxfr_one_seg() and snd_hda_codec_load_dsp_trigger().
    5) Once complete, the loader state is cleaned up with
    snd_hda_codec_load_dsp_cleanup().
    Signed-off-by: default avatarIan Minett <ian_minett@creativelabs.com>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    01ef7dbf
patch_ca0132.c 66.9 KB