Fix up the volume status setting functions to return a non-zero value if
the control value has changed, so that the ALSA framework can correctly
generate control change notifications.

Signed-off-by: Clemens Ladisch <clem...@ladisch.de>

--- linux/drivers/platform/x86/thinkpad_acpi.c
+++ linux/drivers/platform/x86/thinkpad_acpi.c
@@ -6537,8 +6537,11 @@ static int volume_set_mute_ec(const bool
        n = (mute) ? s | TP_EC_AUDIO_MUTESW_MSK :
                     s & ~TP_EC_AUDIO_MUTESW_MSK;
 
-       if (n != s)
+       if (n != s) {
                rc = volume_set_status_ec(n);
+               if (!rc)
+                       rc = 1;
+       }
 
 unlock:
        mutex_unlock(&volume_mutex);
@@ -6569,8 +6572,11 @@ static int volume_set_volume_ec(const u8
 
        n = (s & ~TP_EC_AUDIO_LVL_MSK) | vol;
 
-       if (n != s)
+       if (n != s) {
                rc = volume_set_status_ec(n);
+               if (!rc)
+                       rc = 1;
+       }
 
 unlock:
        mutex_unlock(&volume_mutex);

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
ibm-acpi-devel mailing list
ibm-acpi-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ibm-acpi-devel

Reply via email to