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

Paulo Sergio pstglia at gmail.com
Fri May 13 04:54:55 CEST 2016


Hi again

2016-05-09 11:22 GMT-03:00 Charles Keepax <ckeepax at opensource.wolfsonmicro.com>:
>> alsa_amixer -Dhw:0 cset name='HPOUT1L Input 1 Volume' 32
>> alsa_amixer -Dhw:0 cset name='HPOUT1R Input 1' AIF1RX2
>> alsa_amixer -Dhw:0 cset name='HPOUT1R Input 1 Volume' 32
>> alsa_amixer -Dhw:0 cset name='Headset Mic Switch' on
>
> From your machine driver I would have expected this last control
> to be "Headphone Switch", although I do appear to see things
> turning on in your log so I guess that switch is already on?

It was already on. But just in case, I've added it to alsa_amixer cmd list

Added also the routes/controls that Pierre pointed on his github UCM ( see [1] )


> Overall, I would say it looks good. One thing I would perhaps
> try, connect up this path as you have been doing, but whilst the
> audio is playing (or attempting to at least) connect the route:
>
> 'HPOUT1R Input 1' 'Tone Generator 1'
>
> This will hook the right headphone channel up to the chips
> internal 1k tone generator. Careful it will be loud, but its
> a good check to make sure the clocks are all happy inside the
> chip. If you hear that tone, I would say the CODEC side looks
> happy, but let me know how you get on.

We tried, but unfortunatelly no tone when hooking the tone generator.
Saved dmesg, logcat and alsa_amixer output in case you want to take a look [2]

I'm still having this message on logcat:
"out_write: error -1 - cannot prepare channel: Device or resource busy"
which happens when trying to ioctl
SNDRV_PCM_IOCTL_PREPARE to /dev/snd/pcmC0D0p

Maybe the problem is something wrong/missing on Machine Driver...
Pierre said It would be good base the code on bytcr_5640...

* * *

I tried also other thing. So far I've been changing host_ipc_index
from 5 to 0 on atom/sst/sst_acpi, because this device's DSDT uses a
different
IRQ order from what drivers expect. It allows fw loading and card
registering, but I was wondering if the other index entries are mapped
by the driver.

To ensure all indexes are read in the position driver wants, I
modified irq order on DSDT, reverted ipc_host_index to 5 and tried
booting it.
I tested it, but the results are the samewhen using original DSDT and
changing host_ipc_index to 0. Saved replaced DSDT and logs here [3]

* * *

Regards
Pstglia

[1] - https://drive.google.com/file/d/0BxO6THtB865fQnQyZkx6c05Nbjg/view?usp=sharing
[2] - https://drive.google.com/folderview?id=0BxO6THtB865fZk5sSEdrbTVsREU&usp=sharing
[3] - https://drive.google.com/folderview?id=0BxO6THtB865fWGU1MTlJazBnZzg&usp=sharing


More information about the Alsa-devel mailing list