Bug 7929 - [p1022ds] dmesg error: wm8776 1-001a: Unable to configure MCLK ratio 12288000/44100
Summary: [p1022ds] dmesg error: wm8776 1-001a: Unable to configure MCLK ratio 12288000...
Status: VERIFIED FIXED
Alias: None
Product: BSPs
Classification: Build System, Metadata & Runtime
Component: bsps-meta-fsl-ppc (show other bugs)
Version: 1.9
Hardware: Other ppc
: Medium normal
Target Milestone: 1.9
Assignee: Chunrong Guo
QA Contact: Yi Zhao
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2015-06-29 06:36 UTC by Yi Zhao
Modified: 2015-09-08 07:01 UTC (History)
5 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: Regression (Used to work)
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments
messages (73.04 KB, application/octet-stream)
2015-06-29 06:36 UTC, Yi Zhao
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Yi Zhao 2015-06-29 06:36:25 UTC
Created attachment 2564 [details]
messages

Image location: http://autobuilder.yoctoproject.org/pub/releases/yocto-1.9_M1.rc1/machines/p1022ds/

Git rev
poky: master/18e902b2dc17746af453869bcc1fba4dbae7c94f
meta-fsl-ppc: master/36bd6ce8c63b8876c96fc1cd50e43863cdc2e44e

When system boot up, there are some error messages in dmesg:
########################
Nov 10 21:51:06 p1022ds user.err kernel: wm8776 1-001a: Unable to configure MCLK ratio 12288000/44100
Nov 10 21:51:06 p1022ds user.err kernel: wm8776 1-001a: ASoC: can't set wm8776-hifi-playback hw params: -22
Nov 10 21:51:06 p1022ds user.err kernel: wm8776 1-001a: Unable to configure MCLK ratio 12288000/44100
Nov 10 21:51:06 p1022ds user.err kernel: wm8776 1-001a: ASoC: can't set wm8776-hifi-playback hw params: -22
Nov 10 21:51:06 p1022ds user.err pulseaudio[2169]: [pulseaudio] module-alsa-card.c: Failed to find a working profile.
Nov 10 21:51:06 p1022ds user.err pulseaudio[2169]: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="0" name="platform-snd-soc-p1022ds.0" card_name="alsa_card.platform-snd-soc-p1022ds.0" namereg_fail=false tsched=yes fixed_latency_
#########################

boot args: root=/dev/nfs rw nfsroot=128.224.163.137:/export/pxeboot/rootfs ip=dhcp console=ttyS0,115200 diufb=15M video=fslfb:800x600-24@60,monitor=1 tty0 debug cache-sram=0xfff00000,0x8000

This issue only happens when X start up (run level 5), doesn't happen on run level 3.

I attached the full log for messages
Comment 1 Chunrong Guo 2015-06-30 03:28:01 UTC
hello zhao ,

this issue is about sound driver.

can you try the following steps ?

step 1:

you can check kernel configure options .

Kernel Configure Tree View Options

Kernel Configure Tree View Options Description 
Device Drivers  --->

[*] Sound card support  --->

    [*]   Preclaim OSS device numbers

    [*]   Advanced Linux Sound Architecture  --->

        [*]   OSS Mixer API

        [*]   OSS PCM (digital audio) API

        [*]     OSS PCM (digital audio) API - Include plugin system

        [*]   Verbose procfs contents

        [*]   ALSA for SoC audio support  --->

            [*]   ALSA SoC support for the Freescale P1022DS board



step 2: 

(1)After u-boot start up, setting and saving environments and reset:
   setenv hwconfig audclk:12
   save
   reset
(2) After kernel start up with ramdisk root file system, find the kernel output like this:

snd-soc-p1022ds snd-soc-p1022ds.0:  wm8776-hifi-playback <-> ffe15000.ssi mapping ok
snd-soc-p1022ds snd-soc-p1022ds.0:  wm8776-hifi-capture <-> ffe15000.ssi mapping ok
Comment 2 Yi Zhao 2015-07-02 09:09:40 UTC
Hi Chunrong,

(In reply to comment #1)
> hello zhao ,
> 
> this issue is about sound driver.
> 
> can you try the following steps ?
> 
> step 1:
> 
> you can check kernel configure options .
> 
> Kernel Configure Tree View Options
> 
> Kernel Configure Tree View Options Description 
> Device Drivers  --->
> 
> [*] Sound card support  --->
> 
>     [*]   Preclaim OSS device numbers
> 
>     [*]   Advanced Linux Sound Architecture  --->
> 
>         [*]   OSS Mixer API
> 
>         [*]   OSS PCM (digital audio) API
> 
>         [*]     OSS PCM (digital audio) API - Include plugin system
> 
>         [*]   Verbose procfs contents
> 
>         [*]   ALSA for SoC audio support  --->
> 
>             [*]   ALSA SoC support for the Freescale P1022DS board
> 
> 
> 

I got the kernel and rootfs from http://autobuilder.yoctoproject.org/pub/releases/yocto-1.9_M1.rc1/machines/p1022ds/

I checked the default config for this kernel:
The following 4 options are not enabled.
     [*]   Preclaim OSS device numbers
         [*]   OSS Mixer API 
         [*]   OSS PCM (digital audio) API
         [*]     OSS PCM (digital audio) API - Include plugin system

I rebuild a new kernel and enable all above options you mentioned. But it still doesn't work.


> step 2: 
> 
> (1)After u-boot start up, setting and saving environments and reset:
>    setenv hwconfig audclk:12
>    save
>    reset

Already setting this 

> (2) After kernel start up with ramdisk root file system, find the kernel
> output like this:
> 
> snd-soc-p1022ds snd-soc-p1022ds.0:  wm8776-hifi-playback <-> ffe15000.ssi
> mapping ok
> snd-soc-p1022ds snd-soc-p1022ds.0:  wm8776-hifi-capture <-> ffe15000.ssi
> mapping ok

The above messages also show in the /var/log/message:

# grep "snd-soc-p1022ds" /var/log/messages 
Nov 10 23:59:56 p1022ds user.err kernel: snd-soc-p1022ds snd-soc-p1022ds.0: ASoC: platform ffe0c100.dma-channel not registered
Nov 10 23:59:56 p1022ds user.err kernel: snd-soc-p1022ds snd-soc-p1022ds.0: could not register card
Nov 10 23:59:56 p1022ds user.info kernel: platform snd-soc-p1022ds.0: Driver snd-soc-p1022ds requests probe deferral
Nov 10 23:59:56 p1022ds user.info kernel: snd-soc-p1022ds snd-soc-p1022ds.0:  wm8776-hifi-playback <-> ffe15000.ssi mapping ok
Nov 10 23:59:56 p1022ds user.info kernel: snd-soc-p1022ds snd-soc-p1022ds.0:  wm8776-hifi-capture <-> ffe15000.ssi mapping ok
Nov 10 23:59:56 p1022ds user.info kernel:   #0: snd-soc-p1022ds
Nov 11 00:00:01 p1022ds user.err pulseaudio[2179]: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="0" name="platform-snd-soc-p1022ds.0" card_name=
"alsa_card.platform-snd-soc-p1022ds.0" namereg_fail=false tsched=yes fixed_latency_
Nov 11 00:00:02 p1022ds user.err pulseaudio[2179]: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="0" name="platform-snd-soc-p1022ds.0" card_name=
"alsa_card.platform-snd-soc-p1022ds.0" namereg_fail=false tsched=yes fixed_latency_
Nov 11 00:00:02 p1022ds user.err pulseaudio[2179]: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="0" name="platform-snd-soc-p1022ds.0" card_name=
"alsa_card.platform-snd-soc-p1022ds.0" namereg_fail=false tsched=yes fixed_latency_
Nov 11 00:00:03 p1022ds user.err pulseaudio[2179]: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="0" name="platform-snd-soc-p1022ds.0" card_name=
"alsa_card.platform-snd-soc-p1022ds.0" namereg_fail=false tsched=yes fixed_latency_
Nov 11 00:00:03 p1022ds user.err pulseaudio[2179]: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="0" name="platform-snd-soc-p1022ds.0" card_name=
"alsa_card.platform-snd-soc-p1022ds.0" namereg_fail=false tsched=yes fixed_latency_
Nov 11 00:00:04 p1022ds user.err pulseaudio[2179]: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="0" name="platform-snd-soc-p1022ds.0" card_name=
"alsa_card.platform-snd-soc-p1022ds.0" namereg_fail=false tsched=yes fixed_latency_
Nov 11 00:00:04 p1022ds user.warn pulseaudio[2179]: [pulseaudio] module-udev-detect.c: Tried to configure /devices/soc.0/ffe15000.ssi/snd-soc-p1022ds.0/sound/card0 (alsa_card.platform-s
nd-soc-p1022ds.0) more often than 5 times in 10s


Thanks,
Yi
Comment 3 Chunrong Guo 2015-07-03 03:18:41 UTC
hello zhao,

I test codec clock sources setting as 11MHz  and AUDIO works well.
you can try the following steps:

setenv hwconfig 'audclk:11'
save
reset
Comment 4 Yi Zhao 2015-07-03 06:15:43 UTC
(In reply to comment #3)
> hello zhao,
> 
> I test codec clock sources setting as 11MHz  and AUDIO works well.
> you can try the following steps:
> 
> setenv hwconfig 'audclk:11'
> save
> reset

Thanks, Chunrong.

It works. Does it need to change the default setting from 12 to 11 in u-boot code ?

Yi
Comment 5 Chunrong Guo 2015-07-03 08:07:59 UTC
It is known bug:

If pull up R37 and R38 do not welded on board, MIC port will work on "line in" mode.

· Because of TDM and AUDIO is pin multiplex, TDM and AUDIO can’t enable simultaneous! And AUDIO codec clock sources only setting as 11MHz or 12MHz !

For u-boot environment setting, following is success setting:

setenv hwconfig 'audclk:11' /* codec clock is 11MHz */

setenv hwconfig 'audclk:12' /* codec clock is 12MHz */
Comment 6 Chunrong Guo 2015-08-04 08:39:35 UTC
It is known bug:

If pull up R37 and R38 do not welded on board, MIC port will work on "line in" mode.

· Because of TDM and AUDIO is pin multiplex, TDM and AUDIO can’t enable simultaneous! And AUDIO codec clock sources only setting as 11MHz or 12MHz !

For u-boot environment setting, following is success setting:

setenv hwconfig 'audclk:11' /* codec clock is 11MHz */

setenv hwconfig 'audclk:12' /* codec clock is 12MHz */
Comment 7 Yi Zhao 2015-09-08 07:01:38 UTC
Verified