Fix Mic Broken count as Mic Degrade bug
Test: Local Test
Bug: 305632089
Change-Id: I519d076cca0e108ec4bda44e96fa7d7b8a6313ea
Signed-off-by: poomarin <poomarin@google.com>
diff --git a/audiometrics/audiometrics.c b/audiometrics/audiometrics.c
index 8c8a833..7de98f8 100644
--- a/audiometrics/audiometrics.c
+++ b/audiometrics/audiometrics.c
@@ -122,13 +122,11 @@
static void amcs_report_mic_uevent(uint32_t mic_state, struct audiometrics_priv_type *priv)
{
- char event[25] = "";
+ char event[25];
char *env[] = { event, NULL };
- uint8_t mic_break =
- mic_state & MIC_BREAK_STAT_MIC_BREAK_MASK;
- uint8_t mic_degrade =
- mic_state & MIC_BREAK_STAT_MIC_DEGRADE_MASK >> MIC_DEGRADE_SHIFT_BITS;
+ const uint8_t mic_break = FIELD_GET(MIC_BREAK_STAT_MIC_BREAK_MASK, mic_state);
+ const uint8_t mic_degrade = FIELD_GET(MIC_BREAK_STAT_MIC_DEGRADE_MASK, mic_state);
if (IS_ERR_OR_NULL(priv))
return;
@@ -137,13 +135,13 @@
return;
if (mic_break) {
- snprintf(event, sizeof(event), "MIC_BREAK_STATUS=%d",
+ snprintf(event, sizeof(event), "MIC_BREAK_STATUS=%hhu",
mic_break);
kobject_uevent_env(&priv->device->kobj, KOBJ_CHANGE, env);
}
if (mic_degrade) {
- snprintf(event, sizeof(event), "MIC_DEGRADE_STATUS=%d",
+ snprintf(event, sizeof(event), "MIC_DEGRADE_STATUS=%hhu",
mic_degrade);
kobject_uevent_env(&priv->device->kobj, KOBJ_CHANGE, env);
}