Re: WM5102 - Help to make baytrail machine driver work

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 5/8/17 7:57 PM, Paulo Sergio wrote:
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@xxxxxxxxxxxxxxxxxxxxxxxxxxx>:
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

nope. I don't know how many issues we've fixed since 4.4 but it's not a matter of just swapping out one firmware with another. You'll have better luck with plain vanilla 4.11 + regular firmware and restarting modifying one of the latest machine drivers.


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


_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux