• Mark Brown's avatar
    ALSA/ASoC/SOF/Intel: improve support for ES8336-based platforms · efb1a2d3
    Mark Brown authored
    Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
    
    This patchset adds a number of improvements for ES8336-based Intel
    platforms, which are not well supported at all in Linux. Since
    Christmas 2021, we've seen dozens of reports of broken audio [1].
    
    The fundamental problem is that those platforms were built for Windows
    but using an I2S codec - instead of the HDaudio traditional
    solution. As a result, we are missing all the usual information needed
    to configure the audio card (which I2S, what configuration, DMICs or
    not, etc). The situation is similar to Baytrail with all possible
    permutations enabled.
    
    Some of the information can be discovered by checking the contents of
    the 'NHLT' ACPI table. This helps discover at run-time which SSP to
    use, and the number of microphones present. This NHLT-based solution
    helps remove quirks that were added earlier.
    
    Unfortunately, there are still a number of platform properties that
    are not described by ACPI, just as GPIOs used for speakers, jack
    detection inversion, etc. For some case, quirks are still provided in
    the machine drivers.
    
    Additional work will likely be needed, e.g. to detect which MCLK needs
    to be used, refine the UCM settings, add the ES8326 codec driver, but
    this is a first-step towards an 'out of the box' experience on Intel
    platforms.
    
    This patchset touches the sound/hda/intel-nhlt parts but should IMHO
    be merged in the ASoC tree.
    
    I would like to acknowledge the help of Nikolai Kostrigin, Mauro
    Carvalho Chehab, Huajun Li, David Yang (@yangxiaohua2009) and other
    GitHub testers.
    
    [1] https://github.com/thesofproject/linux/issues?q=is%3Aissue+is%3Aopen+label%3A%22codec+ES8336%22
    efb1a2d3
Kconfig 22.3 KB