Searched hist:"2635 c226036c1bf44b86575d0bc721505c8201e3" (Results 1 – 1 of 1) sorted by relevance
/openbmc/linux/sound/soc/ |
H A D | Kconfig | diff 2635c226036c1bf44b86575d0bc721505c8201e3 Mon Jul 26 13:21:42 CDT 2021 Peter Ujfalusi <peter.ujfalusi@linux.intel.com> ASoC: topology: Select SND_DYNAMIC_MINORS
The indexes of the devices are described within the topology file, it is a possibility that the topology encodes invalid indexes when DYNAMIC_MINORS is not enabled in kernel:
#define SNDRV_MINOR_COMPRESS 2 /* 2 - 3 */ #define SNDRV_MINOR_HWDEP 4 /* 4 - 7 */ #define SNDRV_MINOR_RAWMIDI 8 /* 8 - 15 */ #define SNDRV_MINOR_PCM_PLAYBACK 16 /* 16 - 23 */ #define SNDRV_MINOR_PCM_CAPTURE 24 /* 24 - 31 */
If the topology assigns an index greater than 7 for PLAYBACK/CAPTURE PCM then there will be minor number collision.
As an example: card0 creates a capture PCM with index 10 -> minor = 34 card1 creates compress device with index 0 -> minor = 34
Card1 will fail to instantiate because the minor for the compress stream is already taken.
To avoid seemingly mysterious issues with card creation, select the DYNAMIC_MINORS when the topology is enabled.
The other option would be to try to do out of bound index checks in case of DYNAMIC_MINOR is not enabled and do not even attempt to create the device with failing the topology load.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20210726182142.179604-1-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
|