• Pierre-Louis Bossart's avatar
    ASoC: SOF: introduce new DEBUG_NOCODEC mode · 4bd1adb8
    Pierre-Louis Bossart authored
    The existing NOCODEC mode enforces a build-time mutual exclusion with
    the HDaudio link support, mostly to avoid any dependency on the
    snd_hdac library and references to HDAudio codec/i915 stuff.
    
    This is very useful to track dependencies and test a minimal
    configuration, but very painful for developers and CI: a recompilation
    and reinstall of the kernel modules is required.
    
    This patch suggests an alternate middle ground where the selection of
    the machine driver and all codec-related actions are bypassed at
    run-time, contingent on a kernel module parameter being set.
    
    For example setting BIT(10) with
    'options snd_sof sof_debug=0x401'
    is enough to switch from an HDaudio card to a nocodec one.
    
    This new DEBUG_NOCODEC mode is not suitable for distributions and
    end-users. It's not even recommended on all platforms, i.e. the
    NOCODEC mode is known not to work on specific devices where the BIOS
    did not configure support for I2S/DMIC interfaces. The usual
    development devices such as Chromebooks, Up boards and Intel RVP are
    the only recommended platforms where this mode can be supported.
    
    Note that the dynamic switch between HDaudio and nocodec may not
    always possible depending on hardware layout, pin-mux options, and
    BIOS settings. The audio subsustems on Intel platforms has to support
    4 types of interfaces and pin-mux can be complicated.
    
    Reviewers might ask: why didn't we do this earlier? The main reason is
    that all the codec-related configurations were not cleanly separated
    out in the sof/intel directory. With all the cleanups done recently,
    adding this opt-in behavior is relatively straightforward.
    
    Tested on UpExtreme (WHL) and UpExtreme i11 (TGL).
    Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Reviewed-by: default avatarRander Wang <rander.wang@intel.com>
    Reviewed-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
    Reviewed-by: default avatarPéter Ujfalusi <peter.ujfalusi@linux.intel.com>
    Reviewed-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
    Link: https://lore.kernel.org/r/20221027193540.259520-22-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    4bd1adb8
sof-audio.c 23.4 KB