[alsa-devel] mcasp: stream has more channels (2) than are enabled in mcasp (0)

Peter Ujfalusi peter.ujfalusi at ti.com
Mon Apr 18 17:36:05 CEST 2016


On 04/04/2016 11:59 AM, Rick Mann wrote:
> I've got a Beaglebone Green with a custom cape (CODEC and amp and some
> other stuff).
> 
> Kernel 4.4.6-bone-rt-r6. When I load the overlay that should set up my
> CODEC in the device tree, I get the following in the log.
> 
> [  367.172337] davinci-mcasp 48038000.mcasp: stream has more channels (2)
> than are enabled in mcasp (0) [  367.172374] davinci-mcasp 48038000.mcasp:
> ASoC: can't set 48038000.mcasp hw params: -22
> 
> You can see a little more log context, along with the DTS, here:
> 
> http://pastebin.com/UPB1xjPF
> 
> Can anyone tell me what this means? Thanks!

The fragment mostly looks OK, but am335x have 4 serializers, not 16 and the
num-serializer is deprecated at least in upstream kernel.

Something goes wrong when the McASP is loaded for sure, some parameters did
not got updated via DT perhaps, or most likely the DT fragment is loaded after
the McASP is loaded.
Can you print out:
slots, max_active_serializers, active_serializers and channels in
mcasp_common_hw_param() function?
Also just in case, can you put a dev_err() print in davinci_mcasp_probe() to
see when the driver is loaded compared to the time when the fragment is loaded?

If McASP is built in, try to build it as module and load the audio modules
after the DT fragments are handled.

-- 
Péter


More information about the Alsa-devel mailing list