Tinyalsa: standardize error message for wrong input value
Currently, if a user sets a mixer with a percentage value
greater than the maximum, tinyalsa does not inform the user
about this "error" and silently replaces the user's value
by the maximum. However, if a user sets a mixer with an
integer value greater than the maximum, tinyalsa informs
the user with an error.
This patch purpose is to define the same behaviour in both
quoted cases: user is informed through an error.
Change-Id: I79547758266d1eb08a65d7b1355ec9859f3b27bb
Signed-off-by: Baptiste Robert <baptistex.robert@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
diff --git a/mixer.c b/mixer.c
index b6c854f..057a271 100644
--- a/mixer.c
+++ b/mixer.c
@@ -259,14 +259,11 @@
static int percent_to_int(struct snd_ctl_elem_info *ei, int percent)
{
- int range;
+ if ((percent > 100) || (percent < 0)) {
+ return -EINVAL;
+ }
- if (percent > 100)
- percent = 100;
- else if (percent < 0)
- percent = 0;
-
- range = (ei->value.integer.max - ei->value.integer.min);
+ int range = (ei->value.integer.max - ei->value.integer.min);
return ei->value.integer.min + (range * percent) / 100;
}