From c7f084f61c3ad24acb35cde1854808285216d3de Mon Sep 17 00:00:00 2001 From: Paul McLean Date: Wed, 13 Aug 2014 15:45:52 -0700 Subject: [PATCH] Fix ALSA initialized wait for input-only USB Audio devices Bug 17012266 Change-Id: I09427bb924f895bf66af9ef7ad4f0882746d03c4 --- .../com/android/server/usb/UsbHostManager.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/services/usb/java/com/android/server/usb/UsbHostManager.java b/services/usb/java/com/android/server/usb/UsbHostManager.java index bcbae607d9f3a..5860fc7c81ccc 100644 --- a/services/usb/java/com/android/server/usb/UsbHostManager.java +++ b/services/usb/java/com/android/server/usb/UsbHostManager.java @@ -314,14 +314,22 @@ public class UsbHostManager { mConnectedUsbCard = cardsParser.getNumCardRecords() - 1; mConnectedUsbDeviceNum = 0; - if (!waitForAlsaFile(mConnectedUsbCard, mConnectedUsbDeviceNum, false)) { - return; - } - mConnectedHasPlayback = devicesParser.hasPlaybackDevices(mConnectedUsbCard); mConnectedHasCapture = devicesParser.hasCaptureDevices(mConnectedUsbCard); mConnectedHasMIDI = devicesParser.hasMIDIDevices(mConnectedUsbCard); + // Playback device file needed/present? + if (mConnectedHasPlayback && + !waitForAlsaFile(mConnectedUsbCard, mConnectedUsbDeviceNum, false)) { + return; + } + + // Capture device file needed/present? + if (mConnectedHasCapture && + !waitForAlsaFile(mConnectedUsbCard, mConnectedUsbDeviceNum, true)) { + return; + } + if (DEBUG_AUDIO) { Slog.d(TAG, "usb: hasPlayback:" + mConnectedHasPlayback + " hasCapture:" + mConnectedHasCapture);