[alsa-devel] WM5102 - Help to make baytrail machine driver work

Paulo Sergio pstglia at gmail.com
Tue May 9 02:57:34 CEST 2017


Adding alsa list + intel devs (Sorry for that )

Inline answers for Charles Keepax questions bellow:

2017-05-08 5:24 GMT-03:00 Charles Keepax <ckeepax at opensource.wolfsonmicro.com>:
> On Sun, May 07, 2017 at 10:42:31PM -0300, Paulo Sergio wrote:
>> Hi,
>>
>>
>> I'm trying to make wm5102 work on Lenovo Yoga 2 1051F (Baytrail) again
>> and  would like some tips.
>>
>> With a revised machine driver code [1] ( based on bytcr_rt5640 and
>> some ports from Lenovo kernel [2]) I can initialize
>> and setting routes with alsa mixer  [3], I still don't have sound.
>>
>> However now if I connect 'HPOUT1' to 'Tone Generator 1' I can hear the 1k tone.
>> Question: When I do this association, it is using my route? (in my
>> case CODEC OUT -> SSP0 TX -> AIF1RX)
>> Or this internal tone generator has a direct link to HPOUTs?
>>
>> Here's some lines from my dmesg output while attemptig to play
>> something (complete dmesg - see [4]):
>>
>> [  211.801176] arizona spi-WM510204:00: FLL1: Fref=25000000 Fout=49152000
>> [  211.801184] arizona spi-WM510204:00: FLL1: Fvco=98304000Hz
>> [  211.801190] arizona spi-WM510204:00: FLL1: GCD=4000
>> [  211.801195] arizona spi-WM510204:00: FLL1: N=7 THETA=a8d LAMBDA=c35
>> [  211.801200] arizona spi-WM510204:00: FLL1: FRATIO=0(0) OUTDIV=2 REFCLK_DIV=1
>> [  211.801204] arizona spi-WM510204:00: FLL1: GAIN=4
>> [  211.801210] arizona spi-WM510204:00: 173 <= a8d
>> [  211.801227] arizona spi-WM510204:00: 174 <= c35
>> [  211.801234] arizona spi-WM510204:00: 176 <= 40
>> [  211.801241] arizona spi-WM510204:00: 179 <= 10
>> [  211.813301] arizona spi-WM510204:00: 172 <= 8007
>> [  211.813353] arizona spi-WM510204:00: 171 <= 1
>> [  211.813366] arizona spi-WM510204:00: FLL1: Waiting for FLL lock...
>> [  211.814098] arizona spi-WM510204:00: d23 => 100
>> [  211.814641] arizona spi-WM510204:00: d23 => 101
>> [  211.814651] arizona spi-WM510204:00: FLL1: FLL locked (1 polls)
>> [  211.814660] arizona spi-WM510204:00: SYSCLK set to 49152000Hz
>> [  211.814668] arizona spi-WM510204:00: SYSCLK set to 49152000Hz
>> [  211.814675] arizona spi-WM510204:00: 101 <= 300
>> [  211.814882] wm5102-codec wm5102-codec: AIF1: BCLK 1536000Hz LRCLK 48000Hz
>> [  211.814892] arizona spi-WM510204:00: 80 <= 3
>> [  211.815191] arizona spi-WM510204:00: 4dc <= 0
>> [  211.815339] arizona spi-WM510204:00: 4dd <= 0
>> [  211.815460] arizona spi-WM510204:00: 80 <= 0
>> [  211.815662] sst-mfld-platform sst-mfld-platform: Enter: enable=1
>> port_name=ssp0-port
>> [  211.816833] wm5102-codec wm5102-codec: AIF1: BCLK 1536000Hz LRCLK 48000Hz
>> [  211.816845] arizona spi-WM510204:00: 80 <= 3
>> [  211.817030] arizona spi-WM510204:00: 4dc <= 0
>> [  211.817287] arizona spi-WM510204:00: 4dd <= 0
>>
>> Thanks in advance!
>>
>>
>> [1] - https://github.com/pstglia/linux/tree/lenovo_yoga2_returns
>> [2] - https://github.com/lenovo-yt2-dev/android_kernel_lenovo_baytrail/blob/cm-12.1/sound/soc/intel/board/byt_bl_wm5102.c
>> [3] - https://drive.google.com/file/d/0BxO6THtB865fQnQyZkx6c05Nbjg/view?usp=sharing
>> [4] - https://drive.google.com/file/d/0BxO6THtB865fRy0xV3F0elRrUHM/view?usp=sharing
>
> OK good news you are getting sound from the Tone generator, that
> likely implies things are setup sensibly on the CODEC side. My
> suspicion would be that data is not making it over the I2S.
> Probalby worth copying the Intel guys on the email, as I don't
> know know much about that side of things.

Copied alsa list and Intel guys (hit reply instead of reply all - my apologies)

>
> How are you setting up the I2S? As in which side is master, what
> format are you using? Also do you see any over/underflow error,
> does the system complain with "Error playing sample".

The only part where I2S is explicity used on machine driver is this
setting on backend DAI (SSP0-Codec)

dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
| SND_SOC_DAIFMT_CBS_CFS,

And after setting the routes using routes mentioned on [3], I have no
errors, but no sound

Note: Based on Lenovo code, I concluded this device uses ssp0, so I'm
using a fw file "fw_sst_0f28_ssp0.bin" posted another thread.
Could use the hacks used on kernel 4.11, but as I'm still testing with
kernel 4.4, using this fw would make things easier

x86_64:/data # alsa_aplay -v TNT.mp3
Playing raw data 'TNT.mp3' : Unsigned 8 bit, Rate 8000 Hz, Mono
Plug PCM: Rate conversion PCM (48000, sformat=U8)
Converter: linear-interpolation
Protocol version: 10002
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : U8
  subformat    : STD
  channels     : 1
  rate         : 8000
  exact rate   : 8000 (8000/1)
  msbits       : 8
  buffer_size  : 4000
  period_size  : 1000
  period_time  : 125000
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 1000
  period_event : 0
  start_threshold  : 4000
  stop_threshold   : 4000
  silence_threshold: 0
  silence_size : 0
  boundary     : 262144000
Slave: Route conversion PCM (sformat=S16_LE)
  Transformation table:
    0 <- 0
    1 <- 0
Its setup is:
  stream       : PLAYBACK
  access       : MMAP_INTERLEAVED
  format       : U8
  subformat    : STD
  channels     : 1
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 8
  buffer_size  : 24000
  period_size  : 6000
  period_time  : 125000
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 6000
  period_event : 0
  start_threshold  : 24000
  stop_threshold   : 24000
  silence_threshold: 0
  silence_size : 0
  boundary     : 1572864000
Slave: Hardware PCM card 0 'baytrailcraudio' device 0 subdevice 0
Its setup is:
  stream       : PLAYBACK
  access       : MMAP_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 24000
  period_size  : 6000
  period_time  : 125000
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 6000
  period_event : 0
  start_threshold  : 24000
  stop_threshold   : 24000
  silence_threshold: 0
  silence_size : 0
  boundary     : 1572864000
  appl_ptr     : 0
  hw_ptr       : 0


Regards,
Pstglia


More information about the Alsa-devel mailing list