[alsa-devel] writing an alsa driver

Michele Curti michele.curti at gmail.com
Tue Jun 23 11:09:33 CEST 2015


On Mon, Jun 15, 2015 at 06:04:28PM +0100, Liam Girdwood wrote:
> Michele, can you change your machine driver to use the Vinods BYT DSP
> PCM driver (base it on bytcr_rt5640.c). Please test probing/booting with
> the current FW release from Vinod too. That way you should be ready to
> integrate the new FW when it is released. Please also CC Vinod on any
> issues you have getting the FW to boot using the new driver/FW.
>

Hi,
an update, thanks to Vinod now the driver compiles enabling only the (new)
CONFIG_SND_SOC_INTEL_BYTCR_RT5645_MACH option.

The sound card shows up:
[zio at asus ~]$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: baytrailcraudio [baytrailcraudio], device 0: Baytrail Audio (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

There are a lot of errors about missing backend dai:
[    7.195570]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port

dmesg with some debug output enabled:
[    2.198045] snd-soc-dummy snd-soc-dummy: codec register snd-soc-dummy
[    2.198058] snd-soc-dummy snd-soc-dummy: ASoC: dai register snd-soc-dummy #1
[    2.198064] snd-soc-dummy snd-soc-dummy: ASoC: Registered DAI 'snd-soc-dummy-dai'
[    2.198070] snd-soc-dummy snd-soc-dummy: ASoC: Registered codec 'snd-soc-dummy'
[    2.198075] snd-soc-dummy snd-soc-dummy: ASoC: platform register snd-soc-dummy
[    2.198081] snd-soc-dummy snd-soc-dummy: ASoC: Registered platform 'snd-soc-dummy'
[    2.200659] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0
[    2.204484] ACPI: Lid Switch [LID]
[    2.210292] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
[    2.214379] ACPI: Power Button [PWRB]
[    2.221387] intel_sst_acpi 80860F28:00: for 80860F28
[    2.223389] intel_sst_acpi 80860F28:00: ACPI device id: 80860f28
[    2.223503] sst-mfld-platform sst-mfld-platform: ASoC: platform register sst-mfld-platform
[    2.223514] sst-mfld-platform sst-mfld-platform: ASoC: Registered platform 'sst-mfld-platform'
[    2.223521] sst-mfld-platform sst-mfld-platform: ASoC: dai register sst-mfld-platform #5
[    2.223527] sst-mfld-platform sst-mfld-platform: ASoC: Registered DAI 'media-cpu-dai'
[    2.223532] sst-mfld-platform sst-mfld-platform: ASoC: Registered DAI 'compress-cpu-dai'
[    2.223537] sst-mfld-platform sst-mfld-platform: ASoC: Registered DAI 'ssp0-port'
[    2.223542] sst-mfld-platform sst-mfld-platform: ASoC: Registered DAI 'ssp1-port'
[    2.223547] sst-mfld-platform sst-mfld-platform: ASoC: Registered DAI 'ssp2-port'
[    2.223621] intel_sst_acpi 80860F28:00: LPE base: 0x90a00000 size:0x200000
[    2.226965] intel_sst_acpi 80860F28:00: IRAM base: 0x90ac0000
[    2.230340] intel_sst_acpi 80860F28:00: DRAM base: 0x90b00000
[    2.233631] intel_sst_acpi 80860F28:00: SHIM base: 0x90b40000
[    2.236865] intel_sst_acpi 80860F28:00: Mailbox base: 0x90b44000
[    2.240034] intel_sst_acpi 80860F28:00: DDR base: 0x20000000
[    2.240884] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input2
[    2.240891] ACPI: Sleep Button [SLPB]
[    2.249534] intel_sst_acpi 80860F28:00: Got drv data max stream 25
[    2.253392] [Firmware Bug]: No valid trip found
[    2.256962] media: Linux media interface: v0.10
[    2.261504] wmi: Mapper loaded
[    2.266609] intel_sst_acpi 80860F28:00: Registered IRQ 0x6
[    2.266619] intel_sst_acpi 80860F28:00: Requesting FW intel/fw_sst_0f28.bin now...
[    2.267746] intel_sst_acpi 80860F28:00: registering device Intel(R) SST LPE
[    2.267792] intel_sst_acpi 80860F28:00: LPE is already in RESET state, No action
[    2.275168] intel_sst_acpi 80860F28:00: Enter
[    2.275177] intel_sst_acpi 80860F28:00: Request Fw completed
[    2.275486] intel_sst_acpi 80860F28:00: copied fw to ffff88007a900000
[    2.275493] intel_sst_acpi 80860F28:00: phys: 7a900000
[    2.275907] intel_sst_acpi 80860F28:00: Enter
[    2.275914] intel_sst_acpi 80860F28:00: header sign=$SST\xffffff86\xffffffdf	 size=9df86 modules=1 fmt=100 size=20
[    2.275920] intel_sst_acpi 80860F28:00: module sign $SSTr\xffffffdf	 size 9df72 blocks 13 type ffff
[    2.275925] intel_sst_acpi 80860F28:00: module entrypoint 0x0
[    2.278703] [drm] Initialized drm 1.1.0 20060810
[    2.278900] mei_txe 0000:00:1a.0: can't derive routing for PCI INT A
[    2.278903] mei_txe 0000:00:1a.0: PCI INT A: no GSI
[    2.293372] Linux video capture interface: v2.00
[    2.306515] ACPI: Battery Slot [BATC] (battery present)
[    2.346408] input: PC Speaker as /devices/platform/pcspkr/input/input3
[    2.356216] rt5645 i2c-10EC5648:00: codec register i2c-10EC5648:00
[    2.356244] rt5645 i2c-10EC5648:00: ASoC: dai register i2c-10EC5648:00 #2
[    2.356251] rt5645 i2c-10EC5648:00: ASoC: Registered DAI 'rt5645-aif1'
[    2.356257] rt5645 i2c-10EC5648:00: ASoC: Registered DAI 'rt5645-aif2'
[    2.356263] rt5645 i2c-10EC5648:00: ASoC: Registered codec 'i2c-10EC5648:00'
[    2.378914] uvcvideo: Found UVC 1.00 device USB2.0 VGA UVC WebCam (04f2:b483)
[    2.392617] cfg80211: Calling CRDA to update world regulatory domain
[    2.402518] input: USB2.0 VGA UVC WebCam as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/input/input4
[    2.405826] usbcore: registered new interface driver uvcvideo
[    2.409489] USB Video Class driver (1.1.1)
[    2.417281] SSE version of gcm_enc/dec engaged.
[    2.480445] Bluetooth: Core ver 2.20
[    2.483723] NET: Registered protocol family 31
[    2.486857] Bluetooth: HCI device and connection manager initialized
[    2.493490] Bluetooth: HCI socket layer initialized
[    2.497095] Bluetooth: L2CAP socket layer initialized
[    2.500650] Bluetooth: SCO socket layer initialized
[    2.509247] [drm] Memory usable by graphics device = 2048M
[    2.512242] checking generic (80000000 410000) vs hw (80000000 10000000)
[    2.512250] fb: switching to inteldrmfb from EFI VGA
[    2.515466] Console: switching to colour dummy device 80x25
[    2.518207] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
[    2.518382] [drm] Replacing VGA console driver
[    2.520674] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    2.522230] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.523796] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.526625] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    2.529055] bytx205_rt5645 bytx205_rt5645: ASoC: binding Baytrail Audio Port at idx 0
[    2.529076] bytx205_rt5645 bytx205_rt5645: ASoC: binding Baytrail Compressed Port at idx 1
[    2.529082] bytx205_rt5645 bytx205_rt5645: ASoC: binding SSP1-Codec at idx 2
[    2.529385] sst-mfld-platform sst-mfld-platform: ASoC: adding ssp2 Tx widget
[    2.529394] sst-mfld-platform sst-mfld-platform: ASoC: adding ssp2 Rx widget
[    2.529401] sst-mfld-platform sst-mfld-platform: ASoC: adding ssp1 Tx widget
[    2.529408] sst-mfld-platform sst-mfld-platform: ASoC: adding ssp1 Rx widget
[    2.529415] sst-mfld-platform sst-mfld-platform: ASoC: adding ssp0 Tx widget
[    2.529420] sst-mfld-platform sst-mfld-platform: ASoC: adding ssp0 Rx widget
[    2.529426] sst-mfld-platform sst-mfld-platform: ASoC: adding Compress Playback widget
[    2.529433] sst-mfld-platform sst-mfld-platform: ASoC: adding Headset Playback widget
[    2.529439] sst-mfld-platform sst-mfld-platform: ASoC: adding Headset Capture widget
[    2.529498] snd-soc-dummy snd-soc-dummy: ASoC: adding Playback widget
[    2.529506] snd-soc-dummy snd-soc-dummy: ASoC: adding Capture widget
[    2.531155] asus_wmi: ASUS WMI generic driver loaded
[    2.533317] iTCO_vendor_support: vendor-support=0
[    2.534266] sst-mfld-platform sst-mfld-platform: widget type=22 name=codec_in0
[    2.534292] sst-mfld-platform sst-mfld-platform: widget type=22 name=codec_in1
[    2.534312] sst-mfld-platform sst-mfld-platform: widget type=23 name=codec_out0
[    2.534340] sst-mfld-platform sst-mfld-platform: widget type=23 name=codec_out1
[    2.534368] sst-mfld-platform sst-mfld-platform: widget type=6 name=media0_in
[    2.534385] sst-mfld-platform sst-mfld-platform: widget type=6 name=media1_in
[    2.534400] sst-mfld-platform sst-mfld-platform: widget type=6 name=media2_in
[    2.534415] sst-mfld-platform sst-mfld-platform: widget type=6 name=media3_in
[    2.534451] sst-mfld-platform sst-mfld-platform: widget type=6 name=media0_out
[    2.534471] sst-mfld-platform sst-mfld-platform: widget type=6 name=media1_out
[    2.534490] sst-mfld-platform sst-mfld-platform: widget type=6 name=pcm0_in
[    2.534505] sst-mfld-platform sst-mfld-platform: widget type=6 name=pcm1_in
[    2.534519] sst-mfld-platform sst-mfld-platform: widget type=6 name=pcm0_out
[    2.534541] sst-mfld-platform sst-mfld-platform: widget type=6 name=pcm1_out
[    2.534572] sst-mfld-platform sst-mfld-platform: widget type=6 name=pcm2_out
[    2.534596] sst-mfld-platform sst-mfld-platform: widget type=6 name=sprot_loop_in
[    2.534608] sst-mfld-platform sst-mfld-platform: widget type=6 name=media_loop1_in
[    2.534622] sst-mfld-platform sst-mfld-platform: widget type=6 name=media_loop2_in
[    2.534636] sst-mfld-platform sst-mfld-platform: widget type=6 name=sprot_loop_out
[    2.534661] sst-mfld-platform sst-mfld-platform: widget type=6 name=media_loop1_out
[    2.534697] sst-mfld-platform sst-mfld-platform: widget type=6 name=media_loop2_out
[    2.534727] sst-mfld-platform sst-mfld-platform: widget type=4 name=media0_out mix 0
[    2.534763] sst-mfld-platform sst-mfld-platform: widget type=4 name=media1_out mix 0
[    2.534783] sst-mfld-platform sst-mfld-platform: widget type=4 name=pcm0_out mix 0
[    2.534804] sst-mfld-platform sst-mfld-platform: widget type=4 name=pcm1_out mix 0
[    2.534827] sst-mfld-platform sst-mfld-platform: widget type=4 name=pcm2_out mix 0
[    2.534850] sst-mfld-platform sst-mfld-platform: widget type=4 name=sprot_loop_out mix 0
[    2.534875] sst-mfld-platform sst-mfld-platform: widget type=4 name=media_loop1_out mix 0
[    2.534905] sst-mfld-platform sst-mfld-platform: widget type=4 name=media_loop2_out mix 0
[    2.534934] sst-mfld-platform sst-mfld-platform: widget type=4 name=codec_out0 mix 0
[    2.534962] sst-mfld-platform sst-mfld-platform: widget type=4 name=codec_out1 mix 0
[    2.535181] rt5645 i2c-10EC5648:00: ASoC: adding AIF2 Playback widget
[    2.535192] rt5645 i2c-10EC5648:00: ASoC: adding AIF2 Capture widget
[    2.535199] rt5645 i2c-10EC5648:00: ASoC: adding AIF1 Playback widget
[    2.535205] rt5645 i2c-10EC5648:00: ASoC: adding AIF1 Capture widget
[    2.536951] asus_wmi: Initialization: 0x1
[    2.537106] asus_wmi: BIOS WMI version: 7.9
[    2.537375] asus_wmi: SFUN value: 0x37
[    2.540185] bytx205_rt5645 bytx205_rt5645: ASoC: probe baytrailcraudio dai link 0 late -2
[    2.540194] bytx205_rt5645 bytx205_rt5645: ASoC: probe baytrailcraudio dai link 1 late -2
[    2.540200] bytx205_rt5645 bytx205_rt5645: ASoC: probe baytrailcraudio dai link 2 late -2
[    2.540206] bytx205_rt5645 bytx205_rt5645: ASoC: probe baytrailcraudio dai link 0 late -1
[    2.540211] bytx205_rt5645 bytx205_rt5645: ASoC: probe baytrailcraudio dai link 1 late -1
[    2.540216] bytx205_rt5645 bytx205_rt5645: ASoC: probe baytrailcraudio dai link 2 late -1
[    2.540221] bytx205_rt5645 bytx205_rt5645: ASoC: probe baytrailcraudio dai link 0 late 0
[    2.540226] bytx205_rt5645 bytx205_rt5645: ASoC: probe baytrailcraudio dai link 1 late 0
[    2.540232] bytx205_rt5645 bytx205_rt5645: ASoC: probe baytrailcraudio dai link 2 late 0
[    2.540237] bytx205_rt5645 bytx205_rt5645: ASoC: probe baytrailcraudio dai link 0 late 1
[    2.540242] bytx205_rt5645 bytx205_rt5645: ASoC: probe baytrailcraudio dai link 1 late 1
[    2.540247] bytx205_rt5645 bytx205_rt5645: ASoC: probe baytrailcraudio dai link 2 late 1
[    2.540252] bytx205_rt5645 bytx205_rt5645: ASoC: probe baytrailcraudio dai link 0 late 2
[    2.540425] bytx205_rt5645 bytx205_rt5645: ASoC: registered pcm #0 Baytrail Audio (*)
[    2.540458] bytx205_rt5645 bytx205_rt5645: snd-soc-dummy-dai <-> media-cpu-dai mapping ok
[    2.540480] bytx205_rt5645 bytx205_rt5645: ASoC: probe baytrailcraudio dai link 1 late 2
[    2.540539] compress asoc: snd-soc-dummy-dai <-> compress-cpu-dai mapping ok
[    2.540555] bytx205_rt5645 bytx205_rt5645: ASoC: probe baytrailcraudio dai link 2 late 2
[    2.540635] bytx205_rt5645 bytx205_rt5645: ASoC: registered pcm #2 ((null))
[    2.540642] bytx205_rt5645 bytx205_rt5645: rt5645-aif1 <-> ssp1-port mapping ok
[    2.541070] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[    2.541203] iTCO_wdt: Found a Bay Trail SoC TCO device (Version=3, TCOBASE=0x0460)
[    2.541602] rt5645 i2c-10EC5648:00: AIF2 Playback -> AIF2RX
[    2.541617] rt5645 i2c-10EC5648:00: AIF2TX -> AIF2 Capture
[    2.541626] rt5645 i2c-10EC5648:00: AIF1 Playback -> AIF1RX
[    2.541635] rt5645 i2c-10EC5648:00: AIF1TX -> AIF1 Capture
[    2.541644]  SSP1-Codec: connected DAI link sst-mfld-platform:ssp1 Tx -> i2c-10EC5648:00:AIF1 Playback
[    2.541649]  SSP1-Codec: connected DAI link i2c-10EC5648:00:AIF1 Capture -> sst-mfld-platform:ssp1 Rx
[    2.541778] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
[    2.546368] input: Asus WMI hotkeys as /devices/platform/asus-nb-wmi/input/input5
[    2.549984] intel_rapl: Found RAPL domain package
[    2.550004] intel_rapl: Found RAPL domain core
[    2.550559] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    2.550579] [drm] Driver supports precise vblank timestamp query.
[    2.550605] asus_wmi: Number of fans: 1
[    2.562665] i2c_hid i2c-PDEC3393:00: error in i2c_hid_init_report size:7 / ret_size:4
[    2.571771] i2c_hid i2c-PDEC3393:00: error in i2c_hid_init_report size:19 / ret_size:4
[    2.572129] input: PDEC3393:00 0B05:8585 as /devices/platform/80860F41:00/i2c-0/i2c-PDEC3393:00/0018:0B05:8585.0001/input/input6
[    2.582969] hid-generic 0018:0B05:8585.0001: input,hidraw0: <UNKNOWN> HID v1.00 Keyboard [PDEC3393:00 0B05:8585] on 
[    2.603240] brcmfmac: brcmf_sdio_drivestrengthinit: No SDIO Drive strength init done for chip 43340 rev 2 pmurev 20
[    2.603874] usbcore: registered new interface driver brcmfmac
[    2.621326] random: nonblocking pool is initialized
[    2.629496] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    2.656020] i2c_hid i2c-ELAN0100:00: error in i2c_hid_init_report size:633 / ret_size:7
[    2.662642] i2c_hid i2c-ELAN0100:00: error in i2c_hid_init_report size:131 / ret_size:7
[    2.663158] input: ELAN0100:00 04F3:0401 as /devices/platform/80860F41:03/i2c-3/i2c-ELAN0100:00/0018:04F3:0401.0002/input/input7
[    2.663557] hid-generic 0018:04F3:0401.0002: input,hidraw1: <UNKNOWN> HID v1.00 Mouse [ELAN0100:00 04F3:0401] on 
[    2.669058] mousedev: PS/2 mouse device common for all mice
[    2.688871] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[    2.689089] fbcon: inteldrmfb (fb0) is primary device
[    2.689295] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input8
[    2.689612] [drm] Initialized i915 1.6.0 20150522 for 0000:00:02.0 on minor 0
[    3.812671] Console: switching to colour frame buffer device 170x48
[    3.823431] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[    3.823434] i915 0000:00:02.0: registered panic notifier
[    4.785003] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Jun 17 2014 11:48:43 version 6.10.190.49 (r485840) FWID 01-8744bcd2
[    4.803337] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code
[    4.904294] brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists
[    4.904305] brcmfmac: brcmf_add_if: ignore IF event
[    5.542226] cfg80211: Calling CRDA to update world regulatory domain
[    5.812381] cfg80211: Calling CRDA to update world regulatory domain
[    6.827403] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out in widget list pos 0
[    6.827413] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out mix 0 in widget list pos 1
[    6.827419] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out in widget list pos 2
[    6.827424] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out mix 0 in widget list pos 3
[    6.827429]  Baytrail Audio Port: ASoC: found 0 audio capture paths
[    6.827433]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid capture route
[    6.827437]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    6.827442]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    6.827522] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    6.827783]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 1 fmt 2
[    6.827813]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.827818]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.827956]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.827975]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 1 fmt 2
[    6.828253]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.828261]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.828329]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.828361]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 1 fmt 2
[    6.828583]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.828589]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.828650]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.828697]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.828703]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    6.828710] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=1
[    6.828715] sst-mfld-platform sst-mfld-platform: Stream name=Headset Capture
[    6.828722] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    6.829961] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out in widget list pos 0
[    6.829970] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out mix 0 in widget list pos 1
[    6.829976] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out in widget list pos 2
[    6.829981] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out mix 0 in widget list pos 3
[    6.829986]  Baytrail Audio Port: ASoC: found 0 audio capture paths
[    6.829990]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid capture route
[    6.829994]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    6.829998]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    6.830007] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    6.830260]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 1 fmt 2
[    6.830291]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.830296]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.830432]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.830451]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 1 fmt 2
[    6.830642]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.830648]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.830716]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.830742]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 1 fmt 2
[    6.830954]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.830960]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.831022]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.831068]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.831075]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    6.831083] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=1
[    6.831088] sst-mfld-platform sst-mfld-platform: Stream name=Headset Capture
[    6.831094] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    6.837561] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out in widget list pos 0
[    6.837571] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out mix 0 in widget list pos 1
[    6.837577] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out in widget list pos 2
[    6.837582] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out mix 0 in widget list pos 3
[    6.837587]  Baytrail Audio Port: ASoC: found 0 audio capture paths
[    6.837591]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid capture route
[    6.837595]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    6.837599]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    6.837608] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    6.838129]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 1 fmt 2
[    6.838168]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.838176]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.838440]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.838481]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 1 fmt 2
[    6.838714]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.838722]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.838885]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.838931]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 1 fmt 2
[    6.839136]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.839143]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.839200]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.839240]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.839247]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    6.839254] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=1
[    6.839258] sst-mfld-platform sst-mfld-platform: Stream name=Headset Capture
[    6.839265] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    6.840348] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out in widget list pos 0
[    6.840356] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out mix 0 in widget list pos 1
[    6.840362] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out in widget list pos 2
[    6.840367] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out mix 0 in widget list pos 3
[    6.840372]  Baytrail Audio Port: ASoC: found 0 audio capture paths
[    6.840376]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid capture route
[    6.840379]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    6.840383]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    6.840392] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    6.841255]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 1 fmt 2
[    6.841285]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.841290]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.841627]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.841670]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 1 fmt 2
[    6.841886]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.841892]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.842071]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.842116]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 1 fmt 2
[    6.842325]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.842331]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.842396]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.842441]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.842449]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    6.842457] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=1
[    6.842462] sst-mfld-platform sst-mfld-platform: Stream name=Headset Capture
[    6.842469] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    6.846232] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out in widget list pos 0
[    6.846242] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out mix 0 in widget list pos 1
[    6.846248] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out in widget list pos 2
[    6.846253] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out mix 0 in widget list pos 3
[    6.846258]  Baytrail Audio Port: ASoC: found 0 audio capture paths
[    6.846263]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid capture route
[    6.846266]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    6.846270]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    6.846280] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    6.846528]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.846562]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.846567]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.846710]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.846730]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.846910]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.846915]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.846974]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.846994]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.847098]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.847103]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.847146]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.847191]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.847198]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    6.847205] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=1
[    6.847210] sst-mfld-platform sst-mfld-platform: Stream name=Headset Capture
[    6.847216] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    6.847953] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out in widget list pos 0
[    6.847962] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out mix 0 in widget list pos 1
[    6.847968] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out in widget list pos 2
[    6.847972] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out mix 0 in widget list pos 3
[    6.847978]  Baytrail Audio Port: ASoC: found 0 audio capture paths
[    6.847981]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid capture route
[    6.847985]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    6.847989]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    6.848047] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    6.848317]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.848351]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.848356]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.848503]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.848529]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.848745]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.848750]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.848820]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.848843]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.849058]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.849064]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.849126]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.849171]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.849177]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    6.849184] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=1
[    6.849189] sst-mfld-platform sst-mfld-platform: Stream name=Headset Capture
[    6.849196] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    6.849725] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out in widget list pos 0
[    6.849734] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out mix 0 in widget list pos 1
[    6.849740] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out in widget list pos 2
[    6.849745] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out mix 0 in widget list pos 3
[    6.849750]  Baytrail Audio Port: ASoC: found 0 audio capture paths
[    6.849754]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid capture route
[    6.849758]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    6.849762]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    6.849770] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    6.850274]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.850309]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.850314]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.850586]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.850626]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.850855]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.850862]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.851022]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.851067]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.851251]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.851257]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.851309]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.851409]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.851417]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    6.851427] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=1
[    6.851431] sst-mfld-platform sst-mfld-platform: Stream name=Headset Capture
[    6.851439] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    6.852020] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out in widget list pos 0
[    6.852030] sst-mfld-platform sst-mfld-platform: ASoC: added pcm2_out mix 0 in widget list pos 1
[    6.852037] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out in widget list pos 2
[    6.852043] sst-mfld-platform sst-mfld-platform: ASoC: added pcm1_out mix 0 in widget list pos 3
[    6.852049]  Baytrail Audio Port: ASoC: found 0 audio capture paths
[    6.852053]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid capture route
[    6.852058]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    6.852062]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    6.852072] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    6.853057]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.853095]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.853101]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.853429]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.853477]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.853691]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.853697]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.853895]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.853947]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.854172]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.854179]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.854248]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.854295]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.854302]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    6.854310] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=1
[    6.854316] sst-mfld-platform sst-mfld-platform: Stream name=Headset Capture
[    6.854323] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    6.855016] sst-mfld-platform sst-mfld-platform: ASoC: added media1_in in widget list pos 0
[    6.855025]  Baytrail Audio Port: ASoC: found 0 audio playback paths
[    6.855030]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid playback route
[    6.855037]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    6.855042]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    6.855051] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    6.855189]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.855200]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    6.855206] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=0
[    6.855211] sst-mfld-platform sst-mfld-platform: Stream name=Headset Playback
[    6.855216] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    6.855614] sst-mfld-platform sst-mfld-platform: ASoC: added media1_in in widget list pos 0
[    6.855623]  Baytrail Audio Port: ASoC: found 0 audio playback paths
[    6.855627]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid playback route
[    6.855631]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    6.855636]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    6.855644] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    6.855775]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.855783]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    6.855789] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=0
[    6.855794] sst-mfld-platform sst-mfld-platform: Stream name=Headset Playback
[    6.855799] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    6.856210] sst-mfld-platform sst-mfld-platform: ASoC: added media1_in in widget list pos 0
[    6.856218]  Baytrail Audio Port: ASoC: found 0 audio playback paths
[    6.856223]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid playback route
[    6.856227]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    6.856231]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    6.856240] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    6.856422]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.856430]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    6.856436] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=0
[    6.856441] sst-mfld-platform sst-mfld-platform: Stream name=Headset Playback
[    6.856447] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    6.856848] sst-mfld-platform sst-mfld-platform: ASoC: added media1_in in widget list pos 0
[    6.856856]  Baytrail Audio Port: ASoC: found 0 audio playback paths
[    6.856861]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid playback route
[    6.856865]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    6.856869]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    6.856878] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    6.857452]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.857460]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    6.857467] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=0
[    6.857472] sst-mfld-platform sst-mfld-platform: Stream name=Headset Playback
[    6.857477] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    6.857942] sst-mfld-platform sst-mfld-platform: ASoC: added media1_in in widget list pos 0
[    6.857950]  Baytrail Audio Port: ASoC: found 0 audio playback paths
[    6.857954]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid playback route
[    6.857958]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    6.857962]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    6.857971] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    6.858275]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.858310]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.858316]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.858482]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.858504]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.858718]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.858725]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.858800]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.858827]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.859057]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.859064]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.859125]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.859171]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.859178]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    6.859186] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=0
[    6.859191] sst-mfld-platform sst-mfld-platform: Stream name=Headset Playback
[    6.859199] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    6.859701] sst-mfld-platform sst-mfld-platform: ASoC: added media1_in in widget list pos 0
[    6.859709]  Baytrail Audio Port: ASoC: found 0 audio playback paths
[    6.859714]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid playback route
[    6.859718]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    6.859723]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    6.859732] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    6.860023]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.860059]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.860065]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.860235]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.860258]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.860485]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.860497]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.860573]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.860599]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    6.860823]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    6.860830]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    6.860896]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.860936]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    6.860944]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    6.860952] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=0
[    6.860957] sst-mfld-platform sst-mfld-platform: Stream name=Headset Playback
[    6.860964] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    6.861583] sst-mfld-platform sst-mfld-platform: ASoC: added media1_in in widget list pos 0
[    6.861592]  Baytrail Audio Port: ASoC: found 0 audio playback paths
[    6.861597]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid playback route
... snip ...
[    7.192410]  Baytrail Audio Port: ASoC: found 0 audio playback paths
[    7.192415]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid playback route
[    7.192419]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    7.192423]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    7.192433] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    7.192955]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    7.192993]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    7.192999]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    7.193295]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    7.193339]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    7.193535]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    7.193541]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    7.193710]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    7.193758]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    7.193886]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    7.193892]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    7.193940]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    7.193986]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    7.193993]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    7.194002] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=0
[    7.194007] sst-mfld-platform sst-mfld-platform: Stream name=Headset Playback
[    7.194014] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    7.194528] sst-mfld-platform sst-mfld-platform: ASoC: added media1_in in widget list pos 0
[    7.194536]  Baytrail Audio Port: ASoC: found 0 audio playback paths
[    7.194541]  Baytrail Audio Port: ASoC: Baytrail Audio Port no valid playback route
[    7.194545]  Baytrail Audio Port: ASoC: found 0 new BE paths
[    7.194550]  Baytrail Audio Port: ASoC: open FE Baytrail Audio Port
[    7.194592] intel_sst_acpi 80860F28:00: Enable: pm usage count: 0
[    7.195526]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    7.195564]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    7.195570]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    7.195885]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    7.195930]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    7.196127]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    7.196133]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    7.196314]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    7.196363]  Baytrail Audio Port: ASoC: hw_params FE Baytrail Audio Port rate 48000 chan 2 fmt 2
[    7.196487]  Baytrail Audio Port: ASoC: prepare FE Baytrail Audio Port
[    7.196493]  Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
[    7.196549]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    7.196597]  Baytrail Audio Port: ASoC: hw_free FE Baytrail Audio Port
[    7.196604]  Baytrail Audio Port: ASoC: close FE Baytrail Audio Port
[    7.196613] sst-mfld-platform sst-mfld-platform: enter, dai-name=media-cpu-dai dir=0
[    7.196618] sst-mfld-platform sst-mfld-platform: Stream name=Headset Playback
[    7.196624] intel_sst_acpi 80860F28:00: Disable: pm usage count: 1
[    8.698043] cfg80211: Calling CRDA to update world regulatory domain
[    9.498693] intel_sst_acpi 80860F28:00: LPE is already in RESET state, No action
[   11.844228] cfg80211: Calling CRDA to update world regulatory domain
[   11.857334]  Baytrail Audio Port: ASoC: pop wq checking: Playback status: inactive waiting: yes

So, still no sound but there are new things I can play with ^^

Here the patch:

Signed-off-by: Michele Curti <michele.curti at gmail.com>
---
 sound/soc/codecs/rt5645.c             |   2 +
 sound/soc/intel/Kconfig               |  18 ++-
 sound/soc/intel/atom/sst/sst_acpi.c   |   2 +
 sound/soc/intel/boards/Makefile       |   2 +
 sound/soc/intel/boards/bytcr_rt5645.c | 224 ++++++++++++++++++++++++++++++++++
 5 files changed, 246 insertions(+), 2 deletions(-)
 create mode 100644 sound/soc/intel/boards/bytcr_rt5645.c

diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c
index 9ce311e..7733659 100644
--- a/sound/soc/codecs/rt5645.c
+++ b/sound/soc/codecs/rt5645.c
@@ -3192,6 +3192,7 @@ static const struct regmap_config rt5645_regmap = {
 
 static const struct i2c_device_id rt5645_i2c_id[] = {
 	{ "rt5645", 0 },
+	{ "rt5648", 0 },
 	{ "rt5650", 0 },
 	{ }
 };
@@ -3200,6 +3201,7 @@ MODULE_DEVICE_TABLE(i2c, rt5645_i2c_id);
 #ifdef CONFIG_ACPI
 static struct acpi_device_id rt5645_acpi_match[] = {
 	{ "10EC5645", 0 },
+	{ "10EC5648", 0 },
 	{ "10EC5650", 0 },
 	{},
 };
diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
index f3060a4..33d26b9 100644
--- a/sound/soc/intel/Kconfig
+++ b/sound/soc/intel/Kconfig
@@ -87,14 +87,28 @@ config SND_SOC_INTEL_BROADWELL_MACH
 	  If unsure select "N".
 
 config SND_SOC_INTEL_BYTCR_RT5640_MACH
-	tristate "ASoC Audio DSP Support for MID BYT Platform"
+	tristate "ASoC Audio DSP Support for MID BYT Platform with RT5640 codec"
 	depends on X86 && I2C
 	select SND_SOC_RT5640
 	select SND_SST_MFLD_PLATFORM
 	select SND_SST_IPC_ACPI
 	help
 	  This adds support for ASoC machine driver for Intel(R) MID Baytrail platform
-          used as alsa device in audio substem in Intel(R) MID devices
+          used as alsa device in audio substem in Intel(R) MID devices coupled with a
+          Realtek RT5640 codec.
+          Say Y if you have such a device
+          If unsure select "N".
+
+config SND_SOC_INTEL_BYTCR_RT5645_MACH
+	tristate "ASoC Audio DSP Support for MID BYT Platform with RT5645 codec"
+	depends on X86 && I2C
+	select SND_SOC_RT5645
+	select SND_SST_MFLD_PLATFORM
+	select SND_SST_IPC_ACPI
+	help
+	  This adds support for ASoC machine driver for Intel(R) MID Baytrail platform
+          used as alsa device in audio substem in Intel(R) MID devices coupled with a
+          Realtek RT5645 codec.
           Say Y if you have such a device
           If unsure select "N".
 
diff --git a/sound/soc/intel/atom/sst/sst_acpi.c b/sound/soc/intel/atom/sst/sst_acpi.c
index bb19b58..d908758 100644
--- a/sound/soc/intel/atom/sst/sst_acpi.c
+++ b/sound/soc/intel/atom/sst/sst_acpi.c
@@ -345,6 +345,8 @@ static int sst_acpi_remove(struct platform_device *pdev)
 static struct sst_machines sst_acpi_bytcr[] = {
 	{"10EC5640", "T100", "bytt100_rt5640", NULL, "intel/fw_sst_0f28.bin",
 						&byt_rvp_platform_data },
+	{"10EC5648", "X205", "bytx205_rt5645", NULL, "intel/fw_sst_0f28.bin",
+						&byt_rvp_platform_data },
 	{},
 };
 
diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
index cb94895..8e71631 100644
--- a/sound/soc/intel/boards/Makefile
+++ b/sound/soc/intel/boards/Makefile
@@ -3,6 +3,7 @@ snd-soc-sst-byt-rt5640-mach-objs := byt-rt5640.o
 snd-soc-sst-byt-max98090-mach-objs := byt-max98090.o
 snd-soc-sst-broadwell-objs := broadwell.o
 snd-soc-sst-bytcr-rt5640-objs := bytcr_rt5640.o
+snd-soc-sst-bytcr-rt5645-objs := bytcr_rt5645.o
 snd-soc-sst-cht-bsw-rt5672-objs := cht_bsw_rt5672.o
 snd-soc-sst-cht-bsw-rt5645-objs := cht_bsw_rt5645.o
 snd-soc-sst-cht-bsw-max98090_ti-objs := cht_bsw_max98090_ti.o
@@ -12,6 +13,7 @@ obj-$(CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH) += snd-soc-sst-byt-rt5640-mach.o
 obj-$(CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH) += snd-soc-sst-byt-max98090-mach.o
 obj-$(CONFIG_SND_SOC_INTEL_BROADWELL_MACH) += snd-soc-sst-broadwell.o
 obj-$(CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH) += snd-soc-sst-bytcr-rt5640.o
+obj-$(CONFIG_SND_SOC_INTEL_BYTCR_RT5645_MACH) += snd-soc-sst-bytcr-rt5645.o
 obj-$(CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH) += snd-soc-sst-cht-bsw-rt5672.o
 obj-$(CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH) += snd-soc-sst-cht-bsw-rt5645.o
 obj-$(CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH) += snd-soc-sst-cht-bsw-max98090_ti.o
diff --git a/sound/soc/intel/boards/bytcr_rt5645.c b/sound/soc/intel/boards/bytcr_rt5645.c
new file mode 100644
index 0000000..9890d7b
--- /dev/null
+++ b/sound/soc/intel/boards/bytcr_rt5645.c
@@ -0,0 +1,224 @@
+/*
+ *  byt_cr_dpcm_rt5645.c - ASoc Machine driver for Intel Byt CR platform
+ *
+ *  Copyright (C) 2014 Intel Corp
+ *  Author: Subhransu S. Prusty <subhransu.s.prusty at intel.com>
+ *  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; version 2 of the License.
+ *
+ *  This program is distributed in the hope that it will be useful, but
+ *  WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  General Public License for more details.
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ */
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/device.h>
+#include <linux/slab.h>
+#include <linux/input.h>
+#include <sound/pcm.h>
+#include <sound/pcm_params.h>
+#include <sound/soc.h>
+#include "../../codecs/rt5645.h"
+#include "../atom/sst-atom-controls.h"
+
+static const struct snd_soc_dapm_widget byt_dapm_widgets[] = {
+	SND_SOC_DAPM_HP("Headphone", NULL),
+	SND_SOC_DAPM_MIC("Headset Mic", NULL),
+	SND_SOC_DAPM_MIC("Int Mic", NULL),
+	SND_SOC_DAPM_SPK("Ext Spk", NULL),
+};
+
+static const struct snd_soc_dapm_route byt_audio_map[] = {
+	{"IN1P", NULL, "Headset Mic"},
+	{"IN1N", NULL, "Headset Mic"},
+	{"DMIC L1", NULL, "Int Mic"},
+	{"DMIC R1", NULL, "Int Mic"},
+	{"Headphone", NULL, "HPOL"},
+	{"Headphone", NULL, "HPOR"},
+	{"Ext Spk", NULL, "SPOL"},
+	{"Ext Spk", NULL, "SPOR"},
+
+	{"AIF1 Playback", NULL, "ssp1 Tx"},
+	{"ssp1 Tx", NULL, "codec_out0"},
+	{"ssp1 Tx", NULL, "codec_out1"},
+	{"codec_in0", NULL, "ssp1 Rx"},
+	{"codec_in1", NULL, "ssp1 Rx"},
+	{"ssp1 Rx", NULL, "AIF1 Capture"},
+};
+
+static const struct snd_kcontrol_new byt_mc_controls[] = {
+	SOC_DAPM_PIN_SWITCH("Headphone"),
+	SOC_DAPM_PIN_SWITCH("Headset Mic"),
+	SOC_DAPM_PIN_SWITCH("Int Mic"),
+	SOC_DAPM_PIN_SWITCH("Ext Spk"),
+};
+
+static int byt_aif1_hw_params(struct snd_pcm_substream *substream,
+					struct snd_pcm_hw_params *params)
+{
+	struct snd_soc_pcm_runtime *rtd = substream->private_data;
+	struct snd_soc_dai *codec_dai = rtd->codec_dai;
+	int ret;
+
+	snd_soc_dai_set_bclk_ratio(codec_dai, 50);
+
+	ret = snd_soc_dai_set_sysclk(codec_dai, RT5645_SCLK_S_PLL1,
+				     params_rate(params) * 512,
+				     SND_SOC_CLOCK_IN);
+	if (ret < 0) {
+		dev_err(rtd->dev, "can't set codec clock %d\n", ret);
+		return ret;
+	}
+
+	ret = snd_soc_dai_set_pll(codec_dai, 0, RT5645_PLL1_S_BCLK1,
+				  params_rate(params) * 50,
+				  params_rate(params) * 512);
+	if (ret < 0) {
+		dev_err(rtd->dev, "can't set codec pll: %d\n", ret);
+		return ret;
+	}
+
+	return 0;
+}
+
+static const struct snd_soc_pcm_stream byt_dai_params = {
+	.formats = SNDRV_PCM_FMTBIT_S24_LE,
+	.rate_min = 48000,
+	.rate_max = 48000,
+	.channels_min = 2,
+	.channels_max = 2,
+};
+
+static int byt_codec_fixup(struct snd_soc_pcm_runtime *rtd,
+			    struct snd_pcm_hw_params *params)
+{
+	struct snd_interval *rate = hw_param_interval(params,
+			SNDRV_PCM_HW_PARAM_RATE);
+	struct snd_interval *channels = hw_param_interval(params,
+						SNDRV_PCM_HW_PARAM_CHANNELS);
+
+	/* The DSP will covert the FE rate to 48k, stereo, 24bits */
+	rate->min = rate->max = 48000;
+	channels->min = channels->max = 2;
+
+	/* set SSP12to 24-bit */
+	params_set_format(params, SNDRV_PCM_FORMAT_S24_LE);
+	return 0;
+}
+
+static unsigned int rates_48000[] = {
+	48000,
+};
+
+static struct snd_pcm_hw_constraint_list constraints_48000 = {
+	.count = ARRAY_SIZE(rates_48000),
+	.list  = rates_48000,
+};
+
+static int byt_aif1_startup(struct snd_pcm_substream *substream)
+{
+	return snd_pcm_hw_constraint_list(substream->runtime, 0,
+			SNDRV_PCM_HW_PARAM_RATE,
+			&constraints_48000);
+}
+
+static struct snd_soc_ops byt_aif1_ops = {
+	.startup = byt_aif1_startup,
+};
+
+static struct snd_soc_ops byt_be_ssp1_ops = {
+	.hw_params = byt_aif1_hw_params,
+};
+
+static struct snd_soc_dai_link byt_dailink[] = {
+	[MERR_DPCM_AUDIO] = {
+		.name = "Baytrail Audio Port",
+		.stream_name = "Baytrail Audio",
+		.cpu_dai_name = "media-cpu-dai",
+		.codec_dai_name = "snd-soc-dummy-dai",
+		.codec_name = "snd-soc-dummy",
+		.platform_name = "sst-mfld-platform",
+		.ignore_suspend = 1,
+		.dynamic = 1,
+		.dpcm_playback = 1,
+		.dpcm_capture = 1,
+		.ops = &byt_aif1_ops,
+	},
+	[MERR_DPCM_COMPR] = {
+		.name = "Baytrail Compressed Port",
+		.stream_name = "Baytrail Compress",
+		.cpu_dai_name = "compress-cpu-dai",
+		.codec_dai_name = "snd-soc-dummy-dai",
+		.codec_name = "snd-soc-dummy",
+		.platform_name = "sst-mfld-platform",
+	},
+		/* back ends */
+	{
+		.name = "SSP1-Codec",
+		.be_id = 1,
+		.cpu_dai_name = "ssp1-port",
+		.platform_name = "sst-mfld-platform",
+		.no_pcm = 1,
+		.codec_dai_name = "rt5645-aif1",
+		.codec_name = "i2c-10EC5648:00",
+		.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
+						| SND_SOC_DAIFMT_CBS_CFS,
+		.be_hw_params_fixup = byt_codec_fixup,
+		.ignore_suspend = 1,
+		.dpcm_playback = 1,
+		.dpcm_capture = 1,
+		.ops = &byt_be_ssp1_ops,
+	},
+};
+
+/* SoC card */
+static struct snd_soc_card snd_soc_card_byt = {
+	.name = "baytrailcraudio",
+	.dai_link = byt_dailink,
+	.num_links = ARRAY_SIZE(byt_dailink),
+	.dapm_widgets = byt_dapm_widgets,
+	.num_dapm_widgets = ARRAY_SIZE(byt_dapm_widgets),
+	.dapm_routes = byt_audio_map,
+	.num_dapm_routes = ARRAY_SIZE(byt_audio_map),
+	.controls = byt_mc_controls,
+	.num_controls = ARRAY_SIZE(byt_mc_controls),
+};
+
+static int snd_byt_mc_probe(struct platform_device *pdev)
+{
+	int ret_val = 0;
+
+	/* register the soc card */
+	snd_soc_card_byt.dev = &pdev->dev;
+
+	ret_val = devm_snd_soc_register_card(&pdev->dev, &snd_soc_card_byt);
+	if (ret_val) {
+		dev_err(&pdev->dev, "devm_snd_soc_register_card failed %d\n", ret_val);
+		return ret_val;
+	}
+	platform_set_drvdata(pdev, &snd_soc_card_byt);
+	return ret_val;
+}
+
+static struct platform_driver snd_byt_mc_driver = {
+	.driver = {
+		.name = "bytx205_rt5645",
+		.pm = &snd_soc_pm_ops,
+	},
+	.probe = snd_byt_mc_probe,
+};
+
+module_platform_driver(snd_byt_mc_driver);
+
+MODULE_DESCRIPTION("ASoC Intel(R) Baytrail CR Machine driver");
+MODULE_AUTHOR("Subhransu S. Prusty <subhransu.s.prusty at intel.com>");
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:bytx205_rt5645");
-- 
2.4.4

Regards,
Michele


More information about the Alsa-devel mailing list