diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index 2665208..23a0468 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -1191,7 +1191,15 @@
         if (desc != NULL) {
             ALOGV("setParameters for mAudioTracks size %d desc %p",mDirectAudioTracks.size(),desc);
             desc->stream->common.set_parameters(&desc->stream->common, keyValuePairs.string());
-            return NO_ERROR;
+            AudioParameter param = AudioParameter(keyValuePairs);
+            String8 key = String8(AudioParameter::keyRouting);
+            int device;
+            if (param.getInt(key, device) == NO_ERROR) {
+                if(mLPAEffectChain != NULL){
+                    mLPAEffectChain->setDevice_l(device);
+                    audioConfigChanged_l(AudioSystem::EFFECT_CONFIG_CHANGED, 0, NULL);
+                }
+            }
         }
     }
 #endif
@@ -6149,9 +6157,12 @@
     AudioSystem::releaseOutput(mOutput);
     releaseWakeLock();
 
-    if (mPowerManager != 0) {
-        sp<IBinder> binder = mPowerManager->asBinder();
-        binder->unlinkToDeath(mDeathRecipient);
+    {
+        Mutex::Autolock _l(pmLock);
+        if (mPowerManager != 0) {
+            sp<IBinder> binder = mPowerManager->asBinder();
+            binder->unlinkToDeath(mDeathRecipient);
+        }
     }
 }
 
@@ -6214,8 +6225,8 @@
 }
 
 void AudioFlinger::DirectAudioTrack::setVolume(float left, float right) {
-    mOutputDesc->mVolumeLeft = 1.0;
-    mOutputDesc->mVolumeRight = 1.0;
+    mOutputDesc->mVolumeLeft = left;
+    mOutputDesc->mVolumeRight = right;
 }
 
 int64_t AudioFlinger::DirectAudioTrack::getTimeStamp() {
@@ -6408,8 +6419,8 @@
 
 void AudioFlinger::DirectAudioTrack::clearPowerManager()
 {
-    Mutex::Autolock _l(pmLock);
     releaseWakeLock();
+    Mutex::Autolock _l(pmLock);
     mPowerManager.clear();
 }
 
