Fix problem with dropouts with multiple USB audio streams.

Bug 17136569

Change-Id: I94bdbe037533a3fd77f249fdd42f4d828d3bf87f
diff --git a/modules/usbaudio/alsa_device_proxy.c b/modules/usbaudio/alsa_device_proxy.c
index e15f093..081c05b 100644
--- a/modules/usbaudio/alsa_device_proxy.c
+++ b/modules/usbaudio/alsa_device_proxy.c
@@ -27,20 +27,6 @@
 #define DEFAULT_PERIOD_SIZE     1024
 #define DEFAULT_PERIOD_COUNT    2
 
-//void proxy_init(alsa_device_proxy * proxy)
-//{
-//    proxy->profile = NULL;
-//
-//    proxy->alsa_config.format = DEFAULT_SAMPLE_FORMAT;
-//    proxy->alsa_config.rate = DEFAULT_SAMPLE_RATE;
-//    proxy->alsa_config.channels = DEFAULT_CHANNEL_COUNT;
-//
-//    proxy->alsa_config.period_size = DEFAULT_PERIOD_SIZE;
-//    proxy->alsa_config.period_count = DEFAULT_PERIOD_COUNT;
-//
-//    proxy->pcm = NULL;
-//}
-
 void proxy_prepare(alsa_device_proxy * proxy, alsa_device_profile* profile,
                    struct pcm_config * config)
 {
@@ -79,7 +65,6 @@
 int proxy_open(alsa_device_proxy * proxy)
 {
     alsa_device_profile* profile = proxy->profile;
-
     ALOGV("proxy_open(card:%d device:%d %s)", profile->card, profile->device,
           profile->direction == PCM_OUT ? "PCM_OUT" : "PCM_IN");
 
@@ -103,8 +88,12 @@
 
 void proxy_close(alsa_device_proxy * proxy)
 {
-    pcm_close(proxy->pcm);
-    proxy->pcm = NULL;
+    ALOGV("proxy_close() [pcm:%p]", proxy->pcm);
+
+    if (proxy->pcm != NULL) {
+        pcm_close(proxy->pcm);
+        proxy->pcm = NULL;
+    }
 }
 
 /*