NAK: [SRU][unstable][PATCH] UBUNTU: SAUCE: ASoC: SOF: Intel: fix HDA codec driver probe with multiple controllers

Seth Forshee seth.forshee at canonical.com
Tue Jan 21 21:02:37 UTC 2020


On Sun, Jan 19, 2020 at 10:55:33AM +0800, Hui Wang wrote:
> From: Kai Vehmanen <kai.vehmanen at linux.intel.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/1860248
> 
> In case system has multiple HDA controllers, it can happen that
> same HDA codec driver is used for codecs of multiple controllers.
> In this case, SOF may fail to probe the HDA driver and SOF
> initialization fails.
> 
> SOF HDA code currently relies that a call to request_module() will
> also run device matching logic to attach driver to the codec instance.
> However if driver for another HDA controller was already loaded and it
> already loaded the HDA codec driver, this breaks current logic in SOF.
> In this case the request_module() SOF does becomes a no-op and HDA
> Codec driver is not attached to the codec instance sitting on the HDA
> bus SOF is controlling. Typical scenario would be a system with both
> external and internal GPUs, with driver of the external GPU loaded
> first.
> 
> Fix this by adding similar logic as is used in legacy HDA driver
> where an explicit device_attach() call is done after request_module().
> 
> Also add logic to propagate errors reported by device_attach() back
> to caller. This also works in the case where drivers are not built
> as modules.
> 
> Signed-off-by: Kai Vehmanen <kai.vehmanen at linux.intel.com>
> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
> Link: https://lore.kernel.org/r/20200110235751.3404-8-pierre-louis.bossart@linux.intel.com
> Signed-off-by: Mark Brown <broonie at kernel.org>
> (cherry picked from commit 2c63bea714780f8e1fc9cb7bc10deda26fada25b
> git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git)
> Signed-off-by: Hui Wang <hui.wang at canonical.com>

This patch is already in 5.5, so it is not needed in unstable.



More information about the kernel-team mailing list