ASoC: Intel: Skylake: Add module instance id generation APIs
authorDharageswari R <dharageswari.r@intel.com>
Thu, 22 Sep 2016 08:30:37 +0000 (14:00 +0530)
committerMark Brown <broonie@kernel.org>
Sat, 24 Sep 2016 18:26:24 +0000 (19:26 +0100)
commit700a9a63f9c1bc13abaa956eacc0bfcaf3a201c2
tree427b291810c2caa35082e542fe1be4a70cd4313e
parentdde53bcc3ea054a72b6d42a6fe56beb4b1a914f2
ASoC: Intel: Skylake: Add module instance id generation APIs

Driver needs to send unique module instance id to firmware while
creating the module and uses this id to communicate with DSP for setting
parameters while audio use case is ongoing.

But, we have upper bound of instance ID. The current IDs are coming from
topology but it doesn't know the upper bound and can't assign unique
id's subject to upper bounds as we can create a big graph but not all
parts running at same time.

This patch adds a 128bit unique id management routines which are built
on top of ffz() for faster implementation. Unfortunately ffz() works on
32bits values, so additional code is added on top of ffz() to create a
128bit unique id.

Signed-off-by: Dharageswari R <dharageswari.r@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/skylake/skl-sst-dsp.h
sound/soc/intel/skylake/skl-sst-utils.c
sound/soc/intel/skylake/skl-topology.h