Revert "alsa_sound: Calculate proxy port latency"

This reverts commit 6f72b5fba2f1020466d4a6531618331b8f8c0632.

Revert "alsa_sound: Query BT/USB streams for audio latency"

This reverts commit d46eca4d243daefb28fefbffdcb389070fd58c30.

Revert "alsa_sound: Flush Proxy data at high water mark"

This reverts commit a7e0ca0ab5f39c5840d25594f2a3d86a49aaa70f.

Revert "alsa_sound: Fix buffer pointer mismatch in proxy"

This reverts commit 6a6c9ec67be6375e00d42b12cbeb986ef5e121c3.
diff --git a/alsa_sound/ALSADevice.cpp b/alsa_sound/ALSADevice.cpp
index b58e100..5c58760 100644
--- a/alsa_sound/ALSADevice.cpp
+++ b/alsa_sound/ALSADevice.cpp
@@ -2666,7 +2666,6 @@
         }
 
         mProxyParams.mAvail = pcm_avail(capture_handle);
-        mAvailInMs = (mProxyParams.mAvail*1000)/(AFE_PROXY_SAMPLE_RATE);
         ALOGV("avail is = %d frames = %ld, avai_min = %d\n",\
                       mProxyParams.mAvail,  mProxyParams.mFrames,(int)capture_handle->sw_p->avail_min);
         if (mProxyParams.mAvail < capture_handle->sw_p->avail_min) {
@@ -2700,69 +2699,32 @@
         *bufferSize = 0;
         return err;
     }
-
-    //Copy only if we have data
-    if(mProxyParams.mAvail > 0) {
-        /* if we have reached high watermark, flush data */
-        if(mProxyParams.mAvail > AFE_PROXY_HIGH_WATER_MARK_FRAME_COUNT) {
-            /* throw out everything over here */
-            ALOGE("available buffers in proxy %d has reached high water mark %d, throw it out ", mProxyParams.mAvail, AFE_PROXY_HIGH_WATER_MARK_FRAME_COUNT);
-            capture_handle->sync_ptr->c.control.appl_ptr += mProxyParams.mAvail;
-            capture_handle->sync_ptr->flags = 0;
-            err = sync_ptr(capture_handle);
-            if(err == EPIPE) {
-                ALOGV("Failed in sync_ptr \n");
-                capture_handle->running = 0;
-                err = sync_ptr(capture_handle);
-            }
-            err = FAILED_TRANSACTION;
-            *captureBuffer = NULL;
-            *bufferSize = 0;
-            return err;
-        }
-        if(mProxyParams.mX.frames > mProxyParams.mAvail) {
-            mProxyParams.mFrames = mProxyParams.mAvail;
-            ALOGE("Error mProxyParams.mFrames = %d", mProxyParams.mFrames);
-            /* Always copy only the data thats available */
-            /* case when we wake up with lesser no of bytes than 1 period */
-        }
-        else {
-            mProxyParams.mFrames = mProxyParams.mX.frames;
-        }
-
-        void *data  = dst_address(capture_handle);
-
-        if(mProxyParams.mCaptureBuffer == NULL)
-            mProxyParams.mCaptureBuffer =  malloc(mProxyParams.mCaptureBufferSize);
-
-        memcpy(mProxyParams.mCaptureBuffer, (char *)data,
-                (mProxyParams.mFrames * 2 * 2));
-
-        capture_handle->sync_ptr->c.control.appl_ptr += mProxyParams.mFrames;
-        capture_handle->sync_ptr->flags = 0;
-        *bufferSize = (mProxyParams.mFrames * 2 * 2);
-        mProxyParams.mFrames -= mProxyParams.mFrames;
-        ALOGV("Calling sync_ptr for proxy after sync with mFrames is %d", mProxyParams.mFrames);
+    if (mProxyParams.mX.frames > mProxyParams.mAvail)
+        mProxyParams.mFrames = mProxyParams.mAvail;
+    void *data  = dst_address(capture_handle);
+    //TODO: Return a pointer to AudioHardware
+    if(mProxyParams.mCaptureBuffer == NULL)
+        mProxyParams.mCaptureBuffer =  malloc(mProxyParams.mCaptureBufferSize);
+    memcpy(mProxyParams.mCaptureBuffer, (char *)data,
+             mProxyParams.mCaptureBufferSize);
+    mProxyParams.mX.frames -= mProxyParams.mFrames;
+    capture_handle->sync_ptr->c.control.appl_ptr += mProxyParams.mFrames;
+    capture_handle->sync_ptr->flags = 0;
+    ALOGV("Calling sync_ptr for proxy after sync");
+    err = sync_ptr(capture_handle);
+    if(err == EPIPE) {
+        ALOGV("Failed in sync_ptr \n");
+        capture_handle->running = 0;
         err = sync_ptr(capture_handle);
-        if(err == EPIPE) {
-            ALOGV("Failed in sync_ptr \n");
-            capture_handle->running = 0;
-            err = sync_ptr(capture_handle);
-        }
-        if(err != NO_ERROR ) {
-            ALOGE("Error: Sync ptr end returned %d", err);
-            *captureBuffer = NULL;
-            *bufferSize = 0;
-            return err;
-        }
-        *captureBuffer = mProxyParams.mCaptureBuffer;
-    } else {
-        /* If we dont have data to copy just return 0 */
+    }
+    if(err != NO_ERROR ) {
+        ALOGE("Error: Sync ptr end returned %d", err);
         *captureBuffer = NULL;
         *bufferSize = 0;
-        err = FAILED_TRANSACTION;
-        ALOGE("Error Nothing copied from Proxy");
+        return err;
     }
+    *captureBuffer = mProxyParams.mCaptureBuffer;
+    *bufferSize = mProxyParams.mCaptureBufferSize;
     return err;
 }
 
diff --git a/alsa_sound/AudioHardwareALSA.cpp b/alsa_sound/AudioHardwareALSA.cpp
index 6161303..1777664 100644
--- a/alsa_sound/AudioHardwareALSA.cpp
+++ b/alsa_sound/AudioHardwareALSA.cpp
@@ -2928,7 +2928,7 @@
     uint32_t bytesAvailInBuffer = 0;
     uint32_t proxyBufferTime = 0;
     void  *data;
-    status_t err = NO_ERROR;
+    int err = NO_ERROR;
     ssize_t size = 0;
     void * outbuffer= malloc(AFE_PROXY_PERIOD_SIZE);
 
@@ -2958,11 +2958,6 @@
             }
         }
         err = mALSADevice->readFromProxy(&data, &size);
-        if(err == (status_t) FAILED_TRANSACTION) {
-            ALOGE("readFromProxy returned an error, mostly a flush or an under run continuing");
-            err = NO_ERROR;
-            continue;
-        }
         if(err < 0) {
            ALOGE("ALSADevice readFromProxy returned err = %d,data = %p,\
                     size = %ld", err, data, size);
diff --git a/alsa_sound/AudioHardwareALSA.h b/alsa_sound/AudioHardwareALSA.h
index ab466ae..ced6e81 100644
--- a/alsa_sound/AudioHardwareALSA.h
+++ b/alsa_sound/AudioHardwareALSA.h
@@ -168,7 +168,6 @@
 #define AFE_PROXY_SAMPLE_RATE 48000
 #define AFE_PROXY_CHANNEL_COUNT 2
 #define AFE_PROXY_PERIOD_SIZE 3072
-#define AFE_PROXY_HIGH_WATER_MARK_FRAME_COUNT 40000
 
 #define MAX_SLEEP_RETRY 100  /*  Will check 100 times before continuing */
 #define AUDIO_INIT_SLEEP_WAIT 50 /* 50 ms */
@@ -353,7 +352,6 @@
     int mADSPState;
     bool mSSRComplete;
     int mCurDevice;
-    long mAvailInMs;
 protected:
     friend class AudioHardwareALSA;
 private:
diff --git a/alsa_sound/AudioSessionOut.cpp b/alsa_sound/AudioSessionOut.cpp
index 2e0d1de..9831f21 100644
--- a/alsa_sound/AudioSessionOut.cpp
+++ b/alsa_sound/AudioSessionOut.cpp
@@ -738,23 +738,7 @@
 uint32_t AudioSessionOutALSA::latency() const
 {
     // Android wants latency in milliseconds.
-    uint32_t latency = mAlsaHandle->latency;
-    if ( ((mParent->mCurRxDevice & AudioSystem::DEVICE_OUT_ALL_A2DP) &&
-         (mParent->mExtOutStream == mParent->mA2dpStream))
-         && (mParent->mA2dpStream != NULL) ) {
-        uint32_t bt_latency = mParent->mA2dpStream->get_latency(mParent->mA2dpStream);
-        uint32_t proxy_latency = mParent->mALSADevice->mAvailInMs;
-        latency += bt_latency*1000 + proxy_latency*1000;
-        ALOGV("latency = %d, bt_latency = %d, proxy_latency = %d", latency, bt_latency, proxy_latency);
-    }
-    else if ( ((mParent->mCurRxDevice & AudioSystem::DEVICE_OUT_ALL_USB) &&
-         (mParent->mExtOutStream == mParent->mUsbStream))
-         && (mParent->mUsbStream != NULL) ) {
-        uint32_t usb_latency = mParent->mUsbStream->get_latency(mParent->mUsbStream);
-        latency += usb_latency*1000;
-    }
-
-    return USEC_TO_MSEC (latency);
+    return USEC_TO_MSEC (mAlsaHandle->latency);
 }
 
 status_t AudioSessionOutALSA::setObserver(void *observer)
diff --git a/alsa_sound/AudioStreamOutALSA.cpp b/alsa_sound/AudioStreamOutALSA.cpp
index a21a87b..5e34317 100644
--- a/alsa_sound/AudioStreamOutALSA.cpp
+++ b/alsa_sound/AudioStreamOutALSA.cpp
@@ -412,23 +412,7 @@
 uint32_t AudioStreamOutALSA::latency() const
 {
     // Android wants latency in milliseconds.
-    uint32_t latency = mHandle->latency;
-    if ( ((mParent->mCurRxDevice & AudioSystem::DEVICE_OUT_ALL_A2DP) &&
-         (mParent->mExtOutStream == mParent->mA2dpStream))
-         && (mParent->mA2dpStream != NULL) ) {
-        uint32_t bt_latency = mParent->mA2dpStream->get_latency(mParent->mA2dpStream);
-        uint32_t proxy_latency = mParent->mALSADevice->mAvailInMs;
-        latency += bt_latency*1000 + proxy_latency*1000;
-        ALOGV("latency = %d, bt_latency = %d, proxy_latency = %d", latency, bt_latency, proxy_latency);
-    }
-    else if ( ((mParent->mCurRxDevice & AudioSystem::DEVICE_OUT_ALL_USB) &&
-         (mParent->mExtOutStream == mParent->mUsbStream))
-         && (mParent->mUsbStream != NULL) ) {
-        uint32_t usb_latency = mParent->mUsbStream->get_latency(mParent->mUsbStream);
-        latency += usb_latency*1000;
-    }
-
-    return USEC_TO_MSEC (latency);
+    return USEC_TO_MSEC (mHandle->latency);
 }
 
 // return the number of audio frames written by the audio dsp to DAC since