USB audio on Android platform

来源:互联网 发布:python 宝典 高清 pdf 编辑:程序博客网 时间:2024/06/15 20:06

这种是android 手机为Host, audio设备为device. 

以MSM8x26  android 5.0/5.1 (Lolliop) 为例


1. source code

Kernel

 kernel/drivers/usb/otg

 kernel/sound/usb/pcm.c,card.c,stream.c

Frameworks/base

 services/usb/java/com/android/server/usb/UsbHostManager.java

 UsbAudioManager.java

hardware/libhardware

 hardware/libhardware/modules/usbaudio/audio_hw.c

Audio related

 AudioService.java, AudioSystem.java, AudioManager.java

 AudioPolicyIntefaceImpl.CPP AudioPolicyManager.cpp

  AudioFlinger.cpp  Threads.cpp


2. Qualcomm ehci HostController detection

msm_pmic_id_irqirq=288

msm_otg f9a55000.usb:IDstatus_w

PMIC: ID clear

msm_hsusb_ldo_enable mode=1

msm_otg f9a55000.usb:USB exited from low power mode

b_idle work

a_idle work

msm_hsusb_vbus_power on=1

usbin-valid triggered: 1host_mode: 1

a_wait_vrise work

msm_hsusb_hostmsm_hsusb_host: QualcommOn-Chip EHCI Host Controller

msm_otg_usbdev_notify action=3

msm_hsusb_hostmsm_hsusb_host: new USB busregistered, assigned bus number 1

msm_hsusb_hostmsm_hsusb_host:irq 166,iomem 0xf9a55000

msm_hsusb_hostmsm_hsusb_host: USB 2.0started, EHCI 1.00

usb_get_descriptorUSB_REQ_GET_DESCRIPTOR type=1 index=0

usb_get_descriptorUSB_REQ_GET_DESCRIPTOR type=2 index=0

usb_get_descriptorUSB_REQ_GET_DESCRIPTOR type=2 index=0

usb usb1: New USB device found,idVendor=1d6b,idProduct=0002

usb usb1: New USB device strings:Mfr=3, Product=2,SerialNumber=1

usb usb1: Product: Qualcomm On-ChipEHCI Host Controller

usb usb1: Manufacturer: Linux3.4.0-g8148a0cf-00553-g364b55fehci_hcd

usb usb1: SerialNumber:msm_hsusb_host

usb_ueventPRODUCT=1d6b/2/304

usb_set_configuration 1

msm_otg_usbdev_notify action=5

usb_set_configuration sendUSB_REQ_SET_CONFIGURATION 1

usb_ueventPRODUCT=1d6b/2/304

hub 1-0:1.0: USB hub found

hub_configureget_hub_descriptor

hub 1-0:1.0: 1 port detected

msm_otg_usbdev_notify action=1

UsbHostManager: Added deviceUsbDevice[mName=/dev/bus/usb/001/001,mVendorId=7531,mProductId=2,mClass=9,mSubclass=0,mProtocol=1,mManufacturerName=Linux3.4.0-g8148a0cf-00553-g364b55fehci_hcd,mProductName=QualcommOn-Chip EHCI HostController,mSerialNumber=msm_hsusb_host,mConfigurations=[

UsbHostManager: UsbConfiguration[mId=1,mName=null,mAttributes=224,mMaxPower=0,mInterfaces=[

UsbHostManager: UsbInterface[mId=0,mAlternateSetting=0,mName=null,mClass=9,mSubclass=0,mProtocol=0,mEndpoints=[

UsbHostManager: UsbEndpoint[mAddress=129,mAttributes=3,mMaxPacketSize=4,mInterval=12]]]]

a_wait_bcon work

msm_otg f9a55000.usb:USB in low power mode


3. enumeration audio device

usb 1-1: new full-speed USB devicenumber 2 usingmsm_hsusb_host

stk_als_poll_work_func:als input event145lux

usb_get_descriptorUSB_REQ_GET_DESCRIPTOR type=1 index=0

usb_get_descriptorUSB_REQ_GET_DESCRIPTOR type=2 index=0

usb_get_descriptorUSB_REQ_GET_DESCRIPTOR type=2 index=0

usb 1-1: New USB device found,idVendor=0d8c,idProduct=0012

usb 1-1: New USB device strings: Mfr=1,Product=2,SerialNumber=0

usb 1-1: Product: USB Audio Device

usb 1-1: Manufacturer: C-MediaElectronics Inc.

usb_ueventPRODUCT=d8c/12/100

usb_set_configuration 1

msm_otg_usbdev_notify action=5

usb_set_configuration sendUSB_REQ_SET_CONFIGURATION 1

usb_ueventPRODUCT=d8c/12/100

usb_set_interface interface=1alternates=1 state=7

usb_set_interface interface=1alternates=0 state=7

usb_set_interface interface=2alternates=1 state=7

usb_set_interface interface=2alternates=0 state=7

usb_ueventPRODUCT=d8c/12/100

usb_ueventPRODUCT=d8c/12/100

EventHub: No inputdevice configuration file found for device 'C-Media Electronics Inc. USB AudioDevice'.

input: C-Media Electronics Inc. USBAudio Device as /devices/platform/msm_hsusb_host/usb1/1-1/1-1:1.3/input/input10

generic-usb0003:0D8C:0012.0001: input,hidraw0: USB HID v1.00 Device [C-Media ElectronicsInc. USB Audio Device] on usb-msm_hsusb_host-1/input3

msm_otg_usbdev_notify action=1

EventHub: Unable todisable kernel key repeat for /dev/input/event10: Function not implemented

EventHub: New device:id=11,fd=251,path='/dev/input/event10', name='C-Media Electronics Inc. USB Audio Device',classes=0x80000001, configuration='',keyLayout='/system/usr/keylayout/Generic.kl',keyCharacterMap='/system/usr/keychars/Generic.kcm',builtinKeyboard=false,wakeMechanism=EVIOCSSUSPENDBLOCK,usingClockIoctl=true

InputReader: Deviceadded: id=11, name='C-Media Electronics Inc. USB Audio Device',sources=0x00000101

UsbHostManager: Added deviceUsbDevice[mName=/dev/bus/usb/001/002,mVendorId=3468,mProductId=18,mClass=0,mSubclass=0,mProtocol=0,mManufacturerName=C-MediaElectronicsInc.,mProductName=USB AudioDevice,mSerialNumber=null,mConfigurations=[

UsbHostManager: UsbConfiguration[mId=1,mName=null,mAttributes=128,mMaxPower=50,mInterfaces=[

UsbHostManager: UsbInterface[mId=0,mAlternateSetting=0,mName=null,mClass=1,mSubclass=1,mProtocol=0,mEndpoints=[]

UsbHostManager: UsbInterface[mId=1,mAlternateSetting=0,mName=null,mClass=1,mSubclass=2,mProtocol=0,mEndpoints=[]

UsbHostManager: UsbInterface[mId=1,mAlternateSetting=1,mName=null,mClass=1,mSubclass=2,mProtocol=0,mEndpoints=[

UsbHostManager: UsbEndpoint[mAddress=1,mAttributes=9,mMaxPacketSize=200,mInterval=1]]

UsbHostManager: UsbInterface[mId=2,mAlternateSetting=0,mName=null,mClass=1,mSubclass=2,mProtocol=0,mEndpoints=[]

UsbHostManager: UsbInterface[mId=2,mAlternateSetting=1,mName=null,mClass=1,mSubclass=2,mProtocol=0,mEndpoints=[

UsbHostManager: UsbEndpoint[mAddress=130,mAttributes=13,mMaxPacketSize=100,mInterval=1]]

UsbHostManager: UsbInterface[mId=3,mAlternateSetting=0,mName=null,mClass=3,mSubclass=0,mProtocol=0,mEndpoints=[

UsbHostManager: UsbEndpoint[mAddress=135,mAttributes=3,mMaxPacketSize=4,mInterval=2]]]]


4. Audio init and play

UsbAudioManager: sendDeviceNotification

 send Intent AudioManager.ACTION_USB_AUDIO_DEVICE_PLUG

   setWiredDeviceConnectionState(outDevice, state,params);

          sendMsgMSG_SET_WIRED_DEVICE_CONNECTION_STATE

            onSetWiredDeviceConnectionState()

               handleDeviceConnection()

                    AudioSystem.setDeviceConnectionState() (AudioSystem.java->AudioSystem.cpp)

                         AudioPolicyIntefaceImpl:setDeviceConnectionState()

                            AudioPolicyManager::setDeviceConnectionState()

                               AudioPolicyManager::setDeviceConnectionStateInt()


AudioPolicyManager::setDeviceConnectionStateInt()

  AudioPolicyManager::checkOutputsForDevice()

    mpClientInterface->openOutput()     frameworks/av/services/audiopolicy/AudioPolicyClientImpl.cpp

      af->openOutput()

frameworks/av/services/audioflinger/AudioFlinger.cpp

AudioFlinger::openOutput

  AudioFlinger::openOutput_l()

    hwDevHal->open_output_stream()

       adev_open_output_stream() 

hardware/libhardware/modules/usbaudio/audio_hw.c

    adev->hw_device.open_output_stream =adev_open_output_stream;


AudioFlinger: MixerThread::threadLoop_write  Threads.cpp

 AudioFlinger::PlaybackThread::threadLoop_write()

    ssize_tframesWritten =mNormalSink->write()

    bytesWritten =mOutput->stream->write()

          out_write() inusbaudio/audio_hw.c

hardware/libhardware/modules/usbaudio/audio_hw.c          

out->stream.write =out_write;


system/core/include/system/audio.h

audio_devices_t;

AUDIO_DEVICE_OUT_USB_ACCESSORY       = 0x2000,

AUDIO_DEVICE_OUT_USB_DEVICE                = 0x4000

frameworks/base/media/java/android/media/AudioSystem.java

public static final intDEVICE_OUT_USB_ACCESSORY = 0x2000;

public static final intDEVICE_OUT_USB_DEVICE = 0x4000;


5. Debug

Check device /dev/bus/usb/001/001exists or not
Check enumeration Ok or not
Use ellisys to check USBdata
Enable log in kernel/sound/usb, hardware/libhardware/modules/usbaudio
第一步 先检查枚举是否成功,不成功, 查kernel/drivers/usb
第二步 检查setDeviceConnectionState是否被调用,device/connected是否正确
第三步 usb_audio.c, open是否被调用
第四步 usb_audio.c   out_write是否被调用
第五步 usb_audio.c  out_write数据是否正确


6. Ellisys data



7. typical log

7.1. Connect OTG cable
20:50:29.966   626   626 D kernel  : [43050.705554] msm_pmic_id_irq irq=288
20:50:29.977   626   626 D kernel  : [43050.709883] msm_otg f9a55000.usb: ID status_w
20:50:29.977   626   626 D kernel  : [43050.709907] PMIC: ID clear
20:50:29.977   626   626 D kernel  : [43050.717245] msm_otg f9a55000.usb: USB exited from low power mode
20:50:29.977   626   626 D kernel  : [43050.717262] msm_otg_sm_work b_idle work
20:50:29.977   626   626 D kernel  : [43050.717279] msm_otg_sm_work a_idle work
20:50:30.206   626   626 D kernel  : [43050.939695] msm_otg_sm_work a_wait_vrise work
20:50:30.206   626   626 D kernel  : [43050.939714] msm_otg f9a55000.usb: host on
20:50:30.206   626   626 D kernel  : [43050.939724] msm_hsusb_host msm_hsusb_host: Qualcomm On-Chip EHCI Host Controller
20:50:30.207   626   626 D kernel  : [43050.940054] msm_hsusb_host msm_hsusb_host: new USB bus registered, assigned bus number 1
20:50:30.236   626   626 D kernel  : [43050.969700] msm_hsusb_host msm_hsusb_host: irq 166, io mem 0xf9a55000
20:50:30.256   626   626 D kernel  : [43050.989856] msm_hsusb_host msm_hsusb_host: USB 2.0 started, EHCI 1.00
20:50:30.256   626   626 D kernel  : [43050.989967] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
20:50:30.256   626   626 D kernel  : [43050.989978] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
20:50:30.256   626   626 D kernel  : [43050.989987] usb usb1: Product: Qualcomm On-Chip EHCI Host Controller
20:50:30.256   626   626 D kernel  : [43050.989995] usb usb1: Manufacturer: Linux 3.4.0+ ehci_hcd
20:50:30.256   626   626 D kernel  : [43050.990003] usb usb1: SerialNumber: msm_hsusb_host
20:50:30.256   626   626 D kernel  : [43050.990332] usb usb1: usb_probe_device
20:50:30.256   626   626 D kernel  : [43050.990357] usb_set_configuration send USB_REQ_SET_CONFIGURATION 1
20:50:30.256   626   626 D kernel  : [43050.990510] hub 1-0:1.0: usb_probe_interface
20:50:30.256   626   626 D kernel  : [43050.990521] hub 1-0:1.0: USB hub found
20:50:30.257   626   626 E kernel  : [43050.990530] hub_configure get_hub_descriptor
20:50:30.257   626   626 D kernel  : [43050.990554] hub 1-0:1.0: 1 port detected

20:50:30.269   928  1329 D UsbHostManager: Added device UsbDevice[mName=/dev/bus/usb/001/001,mVendorId=7531,mProductId=2,mClass=9,mSubclass=0,mProtocol=1,mManufacturerName=Linux 3.4.0+ ehci_hcd,mProductName=Qualcomm On-Chip EHCI Host Controller,mSerialNumber=msm_hsusb_host,mConfigurations=[
20:50:30.269   928  1329 D UsbHostManager: UsbConfiguration[mId=1,mName=null,mAttributes=224,mMaxPower=0,mInterfaces=[
20:50:30.269   928  1329 D UsbHostManager: UsbInterface[mId=0,mAlternateSetting=0,mName=null,mClass=9,mSubclass=0,mProtocol=0,mEndpoints=[
20:50:30.269   928  1329 D UsbHostManager: UsbEndpoint[mAddress=129,mAttributes=3,mMaxPacketSize=4,mInterval=12]]]]

20:50:30.456   626   626 D kernel  : [43051.189669] hub 1-0:1.0: hub_port_connect_change port 1, status 0101, change 0000, 12 Mb/s
20:50:30.457   626   626 D kernel  : [43051.189720] hub_port_init
20:50:30.576   626   626 D kernel  : [43051.309614] usb 1-1: new full-speed USB device number 2 using msm_hsusb_host
20:50:30.727   626   626 D kernel  : [43051.464400] usb 1-1: New USB device found, idVendor=0d8c, idProduct=000c
20:50:30.727   626   626 D kernel  : [43051.464433] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
20:50:30.727   626   626 D kernel  : [43051.464450] usb 1-1: Product: xxx USB Headphone Set 
20:50:30.727   626   626 D kernel  : [43051.465261] usb 1-1: usb_probe_device
20:50:30.727   626   626 D kernel  : [43051.465338] usb_set_configuration send USB_REQ_SET_CONFIGURATION 1
20:50:30.727   626   626 D kernel  : [43051.466980] snd-usb-audio 1-1:1.0: usb_probe_interface
20:50:30.727   626   626 D kernel  : [43051.467017] usb_audio_probe
20:50:30.727   626   626 D kernel  : [43051.467027] snd_usb_audio_probe
20:50:30.727   626   626 D kernel  : [43051.467041] snd_usb_audio_create
20:50:30.727   626   626 D kernel  : [43051.468374] snd_usb_audio_create longname=xxx USB Headphone Set at usb-msm_hsusb_host-1, full speed
20:50:30.727   626   626 D kernel  : [43051.468408] snd_usb_create_streams protocol=0
20:50:30.727   626   626 D kernel  : [43051.468421] snd_usb_create_stream
20:50:30.727   626   626 D kernel  : [43051.468541] snd_usb_parse_audio_interface int=1 alt=1
20:50:30.727   626   626 D kernel  : [43051.468556] usb_set_interface interface=1 alternates=1 state=7
20:50:30.738   626   626 D kernel  : [43051.471339] snd_usb_create_stream int=1 alt=0
20:50:30.738   626   626 D kernel  : [43051.471361] usb_set_interface interface=1 alternates=0 state=7
20:50:30.738   626   626 D kernel  : [43051.472359] snd_usb_create_stream
20:50:30.738   626   626 D kernel  : [43051.472477] snd_usb_parse_audio_interface int=2 alt=1
20:50:30.738   626   626 D kernel  : [43051.472491] usb_set_interface interface=2 alternates=1 state=7
20:50:30.738   626   626 D kernel  : [43051.475304] snd_usb_create_stream int=2 alt=0
20:50:30.738   626   626 D kernel  : [43051.475322] usb_set_interface interface=2 alternates=0 state=7
20:50:30.738   626   626 D kernel  : [43051.478430] usbhid 1-1:1.3: usb_probe_interface
20:50:30.766   626   626 D kernel  : [43051.500065] input: xxx USB Headphone Set   as /devices/platform/msm_hsusb_host/usb1/1-1/1-1:1.3/input/input9
20:50:30.766   626   626 D kernel  : [43051.500549] generic-usb 0003:0D8C:000C.0001: input,hidraw0: USB HID v1.00 Device [xxx USB Headphone Set  ] on usb-msm_hsusb_host-1/input3

20:50:30.777   928  1329 D UsbHostManager: Added device UsbDevice[mName=/dev/bus/usb/001/002,mVendorId=3468,mProductId=12,mClass=0,mSubclass=0,mProtocol=0,mManufacturerName=null,mProductName=xxx USB Headphone Set  ,mSerialNumber=null,mConfigurations=[
20:50:30.777   928  1329 D UsbHostManager: UsbConfiguration[mId=1,mName=null,mAttributes=160,mMaxPower=50,mInterfaces=[
20:50:30.777   928  1329 D UsbHostManager: UsbInterface[mId=0,mAlternateSetting=0,mName=null,mClass=1,mSubclass=1,mProtocol=0,mEndpoints=[]
20:50:30.777   928  1329 D UsbHostManager: UsbInterface[mId=1,mAlternateSetting=0,mName=null,mClass=1,mSubclass=2,mProtocol=0,mEndpoints=[]
20:50:30.777   928  1329 D UsbHostManager: UsbInterface[mId=1,mAlternateSetting=1,mName=null,mClass=1,mSubclass=2,mProtocol=0,mEndpoints=[
20:50:30.777   928  1329 D UsbHostManager: UsbEndpoint[mAddress=1,mAttributes=9,mMaxPacketSize=200,mInterval=1]]
20:50:30.777   928  1329 D UsbHostManager: UsbInterface[mId=2,mAlternateSetting=0,mName=null,mClass=1,mSubclass=2,mProtocol=0,mEndpoints=[]
20:50:30.777   928  1329 D UsbHostManager: UsbInterface[mId=2,mAlternateSetting=1,mName=null,mClass=1,mSubclass=2,mProtocol=0,mEndpoints=[
20:50:30.777   928  1329 D UsbHostManager: UsbEndpoint[mAddress=130,mAttributes=5,mMaxPacketSize=100,mInterval=1]]
20:50:30.777   928  1329 D UsbHostManager: UsbInterface[mId=3,mAlternateSetting=0,mName=null,mClass=3,mSubclass=0,mProtocol=0,mEndpoints=[
20:50:30.777   928  1329 D UsbHostManager: UsbEndpoint[mAddress=131,mAttributes=3,mMaxPacketSize=4,mInterval=32]]]]

20:50:30.812   928  1235 D EventHub: No input device configuration file found for device 'xxx USB Headphone Set  '.
20:50:30.820   928  1235 W EventHub: Unable to disable kernel key repeat for /dev/input/event9: Function not implemented
20:50:30.820   928  1235 I EventHub: New device: id=9, fd=268, path='/dev/input/event9', name='xxx USB Headphone Set  ', classes=0x80000001, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false, wakeMechanism=EVIOCSSUSPENDBLOCK, usingClockIoctl=true
20:50:30.820   928  1235 W EventHub: Unable to disable kernel key repeat for /dev/input/event9: Function not implemented
20:50:30.823   928  1235 I InputReader: Device added: id=9, name='xxx USB Headphone Set  ', sources=0x00000101

20:50:30.829   318  1255 V usb_audio_hw: usb:audio_hw::out adev_open_output_stream() handle:0x493, device:0x4000, flags:0x0
20:50:30.829   318  1255 V usb_audio_hw: out_get_sample_rate() = 44100
20:50:30.829   318  1255 I AudioFlinger: HAL output buffer size 448 frames, normal sink buffer size 896 frames
20:50:30.829   318  1255 V usb_audio_hw: out_get_sample_rate() = 44100
20:50:30.831   318  2845 I AudioFlinger: AudioFlinger's thread 0xb7265898 ready to run
20:50:30.835   318  2845 V usb_audio_hw: usb:audio_hw::out out_set_parameters() keys:card=1;device=0

20:50:30.836   626   626 D kernel  : [43051.578538] snd_usb_playback_open
20:50:30.836   626   626 D kernel  : [43051.578547] snd_usb_pcm_open
20:50:30.836   626   626 D kernel  : [43051.578553] setup_hw_info
20:50:30.836   626   626 D kernel  : [43051.578559] snd_usb_autoresume
20:50:30.836   626   626 D kernel  : [43051.578762] snd_usb_playback_close
20:50:30.836   626   626 D kernel  : [43051.578769] snd_usb_pcm_close
20:50:30.846   626   626 D kernel  : [43051.584447] snd_usb_playback_open
20:50:30.846   626   626 D kernel  : [43051.584462] snd_usb_pcm_open
20:50:30.846   626   626 D kernel  : [43051.584468] setup_hw_info
20:50:30.846   626   626 D kernel  : [43051.584544] snd_usb_playback_close
20:50:30.846   626   626 D kernel  : [43051.584551] snd_usb_pcm_close
20:50:30.846   626   626 D kernel  : [43051.584622] snd_usb_playback_open
20:50:30.846   626   626 D kernel  : [43051.584629] snd_usb_pcm_open
20:50:30.847   626   626 D kernel  : [43051.584634] setup_hw_info
20:50:30.847   626   626 D kernel  : [43051.584695] snd_usb_hw_params
20:50:30.847   626   626 D kernel  : [43051.584741] set_format
20:50:30.847   626   626 D kernel  : [43051.584749] set_format usb_set_interface int:1 alt:1
20:50:30.847   626   626 D kernel  : [43051.584758] usb_set_interface interface=1 alternates=1 state=7
20:50:30.856   626   626 D kernel  : [43051.594431] snd_usb_playback_close
20:50:30.856   626   626 D kernel  : [43051.594443] snd_usb_pcm_close
20:50:30.856   626   626 D kernel  : [43051.594450] snd_usb_pcm_close usb_set_interface int:1 alt: 0

20:50:30.856   318  1255 V usb_audio_hw: usb:audio_hw::device_get_parameters() keys:sup_sampling_rates
20:50:30.856   318  1255 V usb_audio_hw: usb:audio_hw::device_get_parameters = sup_sampling_rates=48000|44100
20:50:30.856   318  1255 V usb_audio_hw: usb:audio_hw::device_get_parameters() keys:sup_formats
20:50:30.857   318  1255 V usb_audio_hw: usb:audio_hw::device_get_parameters = sup_formats=AUDIO_FORMAT_PCM_16_BIT
20:50:30.857   318  1255 V usb_audio_hw: usb:audio_hw::device_get_parameters() keys:sup_channels
20:50:30.857   318  1255 V usb_audio_hw: usb:audio_hw::device_get_parameters = sup_channels=AUDIO_CHANNEL_OUT_STEREO

20:50:30.856   626   626 D kernel  : [43051.594458] usb_set_interface interface=1 alternates=0 state=7
20:50:30.857   626   626 D kernel  : [43051.595588] snd_usb_playback_open
20:50:30.857   626   626 D kernel  : [43051.595595] snd_usb_pcm_open
20:50:30.857   626   626 D kernel  : [43051.595600] setup_hw_info
20:50:30.857   626   626 D kernel  : [43051.595674] snd_usb_hw_params
20:50:30.857   626   626 D kernel  : [43051.595711] set_format
20:50:30.857   626   626 D kernel  : [43051.595718] set_format usb_set_interface int:1 alt:1
20:50:30.857   626   626 D kernel  : [43051.595726] usb_set_interface interface=1 alternates=1 state=7
20:50:30.857   626   626 D kernel  : [43051.598487] snd_usb_playback_close
20:50:30.857   626   626 D kernel  : [43051.598497] snd_usb_pcm_close
20:50:30.857   626   626 D kernel  : [43051.598504] snd_usb_pcm_close usb_set_interface int:1 alt: 0
20:50:30.857   626   626 D kernel  : [43051.598512] usb_set_interface interface=1 alternates=0 state=7

20:50:30.857   318  1255 V usb_audio_hw: usb:audio_hw::out out_set_parameters() keys:exiting=1
20:50:30.867   318  1255 V usb_audio_hw: usb:audio_hw::out adev_close_output_stream()
20:50:30.867   318  1255 V usb_audio_hw: usb:audio_hw::out adev_open_output_stream() handle:0x493, device:0x4000, flags:0x0
20:50:30.867   318  1255 V usb_audio_hw: out_get_sample_rate() = 48000
20:50:30.867   318  1255 I AudioFlinger: HAL output buffer size 480 frames, normal sink buffer size 960 frames
20:50:30.867   318  1255 V usb_audio_hw: out_get_sample_rate() = 48000
20:50:30.868   318  2854 I AudioFlinger: AudioFlinger's thread 0xb7265898 ready to run
20:50:30.872   318  1255 V usb_audio_hw: out_get_sample_rate() = 48000
20:50:30.872   318  1255 I AudioFlinger: HAL output buffer size 480 frames, normal sink buffer size 480 frames
20:50:30.872   318  1255 V usb_audio_hw: out_get_sample_rate() = 48000
20:50:30.873   318  2855 I AudioFlinger: AudioFlinger's thread 0xb36a4008 ready to run
20:50:30.875   318  1197 D audio_hw_extn: audio_extn_set_anc_parameters: anc_enabled:0
20:50:30.876   318  1197 E audio_a2dp_hw: adev_set_parameters: ERROR: set param called even when stream out is null
20:50:30.876   318  1197 V usb_audio_hw: audio_hw:usb adev_set_parameters(card=1;connect=16384;device=0)
20:50:30.883   318  1199 D audio_hw_extn: audio_extn_set_anc_parameters: anc_enabled:0

20:50:31.830   318  1256 V usb_audio_hw: usb: in adev_open_input_stream() rate:0, chanMask:0xC, fmt:1
20:50:31.831   318  1256 V usb_audio_hw: in_get_sample_rate() = 44100
20:50:31.831   318  1256 V usb_audio_hw: in_get_buffer_size() = 1792
20:50:31.831   318  1256 V usb_audio_hw: in_get_buffer_size() = 1792
20:50:31.831   318  1256 V usb_audio_hw: in_get_sample_rate() = 44100
20:50:31.833   318  2859 I AudioFlinger: AudioFlinger's thread 0xb3663008 ready to run
20:50:31.842   318  2859 V usb_audio_hw: usb: audio_hw::in in_set_parameters() keys:card=1;device=0

20:50:31.847   626   626 D kernel  : [43052.585544] snd_usb_capture_open
20:50:31.847   626   626 D kernel  : [43052.585575] snd_usb_pcm_open
20:50:31.847   626   626 D kernel  : [43052.585584] setup_hw_info
20:50:31.847   626   626 D kernel  : [43052.585601] snd_usb_autoresume
20:50:31.847   626   626 D kernel  : [43052.585785] snd_usb_capture_close
20:50:31.847   626   626 D kernel  : [43052.585801] snd_usb_pcm_close
20:50:31.847   626   626 D kernel  : [43052.585933] snd_usb_capture_open
20:50:31.847   626   626 D kernel  : [43052.585948] snd_usb_pcm_open
20:50:31.847   626   626 D kernel  : [43052.585959] setup_hw_info
20:50:31.847   626   626 D kernel  : [43052.586047] snd_usb_capture_close
20:50:31.847   626   626 D kernel  : [43052.586059] snd_usb_pcm_close
20:50:31.847   626   626 D kernel  : [43052.586187] snd_usb_capture_open
20:50:31.847   626   626 D kernel  : [43052.586199] snd_usb_pcm_open
20:50:31.847   626   626 D kernel  : [43052.586208] setup_hw_info
20:50:31.847   626   626 D kernel  : [43052.586304] snd_usb_hw_params
20:50:31.847   626   626 D kernel  : [43052.586377] set_format
20:50:31.847   626   626 D kernel  : [43052.586390] set_format usb_set_interface int:2 alt:1
20:50:31.847   626   626 D kernel  : [43052.586405] usb_set_interface interface=2 alternates=1 state=7
20:50:31.857   626   626 D kernel  : [43052.590706] snd_usb_capture_close
20:50:31.857   626   626 D kernel  : [43052.590726] snd_usb_pcm_close
20:50:31.857   626   626 D kernel  : [43052.590738] snd_usb_pcm_close usb_set_interface int:2 alt: 0
20:50:31.857   626   626 D kernel  : [43052.590752] usb_set_interface interface=2 alternates=0 state=7
20:50:31.857   626   626 D kernel  : [43052.592010] snd_usb_capture_open
20:50:31.857   626   626 D kernel  : [43052.592024] snd_usb_pcm_open
20:50:31.857   626   626 D kernel  : [43052.592034] setup_hw_info
20:50:31.857   626   626 D kernel  : [43052.592044] snd_usb_autoresume
20:50:31.857   626   626 D kernel  : [43052.592187] snd_usb_hw_params
20:50:31.857   626   626 D kernel  : [43052.592272] set_format
20:50:31.857   626   626 D kernel  : [43052.592302] set_format usb_set_interface int:2 alt:1
20:50:31.857   626   626 D kernel  : [43052.592319] usb_set_interface interface=2 alternates=1 state=7
20:50:31.857   626   626 D kernel  : [43052.595640] snd_usb_capture_close
20:50:31.857   626   626 D kernel  : [43052.595658] snd_usb_pcm_close
20:50:31.857   626   626 D kernel  : [43052.595669] snd_usb_pcm_close usb_set_interface int:2 alt: 0
20:50:31.857   626   626 D kernel  : [43052.595684] usb_set_interface interface=2 alternates=0 state=7

20:50:31.858   318  1256 V usb_audio_hw: usb:audio_hw::device_get_parameters() keys:sup_sampling_rates
20:50:31.858   318  1256 V usb_audio_hw: usb:audio_hw::device_get_parameters = sup_sampling_rates=48000|44100
20:50:31.859   318  1197 D audio_hw_extn: audio_extn_set_anc_parameters: anc_enabled:0
20:50:31.859   318  1197 E audio_a2dp_hw: adev_set_parameters: ERROR: set param called even when stream out is null
20:50:31.859   318  1197 V usb_audio_hw: audio_hw:usb adev_set_parameters(card=1;connect=-2147479552;device=0)

7.2. Music play
20:50:33.944   318  2854 V usb_audio_hw: usb:audio_hw::out out_set_parameters() keys:card=1;device=0;routing=16384
20:50:33.956   318  2852 V usb_audio_hw: usb:audio_hw::out start_output_stream(card:1 device:0)

20:50:33.956   626   626 D kernel  : [43054.698997] snd_usb_playback_open
20:50:33.956   626   626 D kernel  : [43054.699009] snd_usb_pcm_open
20:50:33.956   626   626 D kernel  : [43054.699014] setup_hw_info
20:50:33.956   626   626 D kernel  : [43054.699097] snd_usb_hw_params
20:50:33.956   626   626 D kernel  : [43054.699143] set_format
20:50:33.956   626   626 D kernel  : [43054.699152] set_format usb_set_interface int:1 alt:1
20:50:33.956   626   626 D kernel  : [43054.699160] usb_set_interface interface=1 alternates=1 state=7

20:50:33.960   318  2852 D usb_audio_hw: usb out_write (1920 of 0)
20:50:33.960   318  2852 D usb_audio_hw: usb out_write (1920 of 0)

20:50:33.966   626   626 D kernel  : [43054.702458] snd_usb_pcm_prepare
20:50:37.046   626   626 D kernel  : [43057.779614] snd_usb_playback_close
20:50:37.046   626   626 D kernel  : [43057.779636] snd_usb_pcm_close
20:50:37.046   626   626 D kernel  : [43057.779644] snd_usb_pcm_close usb_set_interface int:1 alt: 0
20:50:37.046   626   626 D kernel  : [43057.779653] usb_set_interface interface=1 alternates=0 state=7
20:50:37.046   626   626 D kernel  : [43057.781456] snd_usb_autosuspend
20:50:44.146   626   626 D kernel  : [43064.879917] snd_usb_playback_open
20:50:44.146   626   626 D kernel  : [43064.879928] snd_usb_pcm_open
20:50:44.146   626   626 D kernel  : [43064.879933] setup_hw_info
20:50:44.146   626   626 D kernel  : [43064.879938] snd_usb_autoresume
20:50:44.146   626   626 D kernel  : [43064.880010] snd_usb_hw_params
20:50:44.146   626   626 D kernel  : [43064.880056] set_format
20:50:44.146   626   626 D kernel  : [43064.880064] set_format usb_set_interface int:1 alt:1
20:50:44.146   626   626 D kernel  : [43064.880072] usb_set_interface interface=1 alternates=1 state=7
20:50:44.146   626   626 D kernel  : [43064.883336] snd_usb_pcm_prepare

20:50:44.161   318  2852 D usb_audio_hw: usb out_write (1920 of 0)
20:50:44.171   318  2852 D usb_audio_hw: usb out_write (1920 of 0)
20:50:47.190   318  2852 D usb_audio_hw: usb out_write (1920 of 0)

20:50:47.217   626   626 D kernel  : [43067.949861] snd_usb_playback_close
20:50:47.217   626   626 D kernel  : [43067.949882] snd_usb_pcm_close
20:50:47.217   626   626 D kernel  : [43067.949894] snd_usb_pcm_close usb_set_interface int:1 alt: 0
20:50:47.217   626   626 D kernel  : [43067.949908] usb_set_interface interface=1 alternates=0 state=7 enter
20:50:47.217   626   626 D kernel  : [43067.951614] usb_set_interface interface=1 alternates=0 state=7 exit

20:50:49.178   318  2854 V usb_audio_hw: usb:audio_hw::out out_set_parameters() keys:routing=0
20:50:49.188   318  2854 V usb_audio_hw: usb:audio_hw::out out_set_parameters() keys:card=1;device=0;routing=16384
20:50:49.199   318  2852 V usb_audio_hw: usb:audio_hw::out start_output_stream(card:1 device:0)
20:50:49.204   318  2852 D usb_audio_hw: usb out_write (1920 of 0)
20:50:49.204   318  2852 D usb_audio_hw: usb out_write (1920 of 0)

20:50:49.206   626   626 D kernel  : [43069.942613] snd_usb_playback_open
20:50:49.207   626   626 D kernel  : [43069.942623] snd_usb_pcm_open
20:50:49.207   626   626 D kernel  : [43069.942629] setup_hw_info
20:50:49.207   626   626 D kernel  : [43069.942709] snd_usb_hw_params
20:50:49.207   626   626 D kernel  : [43069.942755] set_format
20:50:49.207   626   626 D kernel  : [43069.942764] set_format usb_set_interface int:1 alt:1
20:50:49.207   626   626 D kernel  : [43069.942772] usb_set_interface interface=1 alternates=1 state=7
20:50:49.207   626   626 D kernel  : [43069.946454] snd_usb_pcm_prepare
20:50:49.234   318  2852 D usb_audio_hw: usb out_write (1920 of 0)

7.3. Disconnect OTG cable
20:52:02.215   318  2852 D usb_audio_hw: usb out_write (1920 of -1)

20:52:02.216   626   626 D kernel  : [43142.957768] hub 1-0:1.0: hub_port_connect_change port 1, status 0100, change 0003, 12 Mb/s
20:52:02.216   626   626 D kernel  : [43142.957793] usb 1-1: USB disconnect, device number 2
20:52:02.216   626   626 D kernel  : [43142.957801] msm_pmic_id_irq irq=288
20:52:02.216   626   626 D kernel  : [43142.957881] usb_unbind_interface snd-usb-audio
20:52:02.216   626   626 D kernel  : [43142.957892] usb_audio_disconnect
20:52:02.216   626   626 D kernel  : [43142.957899] snd_usb_audio_disconnect
20:52:02.216   626   626 D kernel  : [43142.958659] snd_usb_stream_disconnect
20:52:02.224   318  2852 D usb_audio_hw: usb out_write (1920 of -1)
20:52:02.226   626   626 D kernel  : [43142.960809] msm_otg f9a55000.usb: ID status_w
20:52:02.226   626   626 D kernel  : [43142.960841] PMIC: ID set
20:52:02.226   626   626 D kernel  : [43142.960857] msm_otg_sm_work a_host work
20:52:02.226   626   626 D kernel  : [43142.960869] msm_otg f9a55000.usb: host off
20:52:02.226   626   626 D kernel  : [43142.960880] msm_hsusb_host msm_hsusb_host: remove, state 1
20:52:02.226   626   626 D kernel  : [43142.960908] usb usb1: USB disconnect, device number 1
20:52:02.226   626   626 D kernel  : [43142.967718] usb_unbind_interface snd-usb-audio
20:52:02.226   626   626 D kernel  : [43142.967744] usb_audio_disconnect
20:52:02.226   626   626 D kernel  : [43142.967754] snd_usb_audio_disconnect
20:52:02.226   626   626 D kernel  : [43142.967770] usb_set_interface interface=1 alternates=0 state=0 enter
20:52:02.226   626   626 D kernel  : [43142.967932] usb_unbind_interface snd-usb-audio
20:52:02.226   626   626 D kernel  : [43142.967945] usb_audio_disconnect
20:52:02.226   626   626 D kernel  : [43142.967953] snd_usb_audio_disconnect
20:52:02.226   626   626 D kernel  : [43142.968136] usb_unbind_interface usbhid

20:52:02.237   928  1235 I EventHub: Removing device xxx USB Headphone Set   due to epoll hang-up event.
20:52:02.237   928  1235 I EventHub: Removed device: path=/dev/input/event9 name=xxx USB Headphone Set   id=9 fd=268 classes=0x80000001
20:52:02.267   928  1235 I InputReader: Device removed: id=9, name='xxx USB Headphone Set  ', sources=0x00000101
20:52:02.268   928  1235 I EventHub: Removing device '/dev/input/event9' due to inotify event

20:52:02.316   626   626 D kernel  : [43143.051828] usb_unbind_device
20:52:02.317   626   626 D kernel  : [43143.051850] generic_disconnect
20:52:02.317   626   626 E kernel  : [43143.052159] hub 1-0:1.0: hub_port_status failed (err = -19)
20:52:02.317   626   626 E kernel  : [43143.052201] hub 1-0:1.0: connect-debounce failed, port 1 disabled
20:52:02.317   626   626 D kernel  : [43143.052424] usb_unbind_interface hub
20:52:02.317   626   626 D kernel  : [43143.052738] usb_unbind_device
20:52:02.317   626   626 D kernel  : [43143.052746] generic_disconnect
20:52:02.317   626   626 D kernel  : [43143.053212] msm_hsusb_host msm_hsusb_host: USB bus 1 deregistered

20:52:02.616   318  1197 D audio_hw_extn: audio_extn_set_anc_parameters: anc_enabled:0
20:52:02.616   318  1197 E audio_a2dp_hw: adev_set_parameters: ERROR: set param called even when stream out is null
20:52:02.616   318  1197 V usb_audio_hw: audio_hw:usb adev_set_parameters(card=1;device=0;disconnect=16384)
20:52:02.617   318  1255 V usb_audio_hw: usb:audio_hw::out out_set_parameters() keys:exiting=1
20:52:02.631   318  2854 V usb_audio_hw: usb:audio_hw::out out_set_parameters() keys:routing=0
20:52:02.632   318  2852 D usb_audio_hw: usb out_write (1920 of -1)
20:52:02.644   318  2854 V usb_audio_hw: usb:audio_hw::out out_set_parameters() keys:closing=true
20:52:02.645   318  2852 D usb_audio_hw: usb out_write (1920 of -1)
20:52:02.646   318  1255 V usb_audio_hw: usb:audio_hw::out out_set_parameters() keys:exiting=1
20:52:02.656   318  1255 V usb_audio_hw: usb:audio_hw::out adev_close_output_stream()

20:52:02.656   626   626 D kernel  : [43143.399228] snd_usb_playback_close
20:52:02.656   626   626 D kernel  : [43143.399240] snd_usb_pcm_close
20:52:02.656   626   626 D kernel  : [43143.399320] snd_usb_audio_free
20:52:02.826   626   626 D kernel  : [43143.559783] msm_otg_sm_work a_wait_vfall work
20:52:02.826   626   626 D kernel  : [43143.559800] msm_otg_sm_work a_idle work
20:52:02.826   626   626 D kernel  : [43143.559817] msm_otg_sm_work b_idle work
20:52:02.826   626   626 D kernel  : [43143.559843] msm_otg_reset
20:52:02.826   626   626 D kernel  : [43143.562561] msm_otg f9a55000.usb: phy_reset: success
20:52:02.936   626   626 D kernel  : [43143.674736] msm_otg f9a55000.usb: USB in low power mode

20:52:03.316   318  1197 D audio_hw_extn: audio_extn_set_anc_parameters: anc_enabled:0
20:52:03.316   318  1197 E audio_a2dp_hw: adev_set_parameters: ERROR: set param called even when stream out is null
20:52:03.316   318  1197 V usb_audio_hw: audio_hw:usb adev_set_parameters(card=1;device=0;disconnect=-2147479552)
20:52:06.872   928  1230 I MediaFocusControl:  AudioFocus  abandonAudioFocus() from android.media.AudioManager

 


0 0
原创粉丝点击