diff --git a/profiles/audio/avctp.c b/profiles/audio/avctp.c
index 728273d..d92f304 100644
--- a/profiles/audio/avctp.c
+++ b/profiles/audio/avctp.c
g_source_remove(session->key.timer);
/* Only auto release if keys are different */
- if (session->key.op != op)
- send_key(session->uinput, session->key.op, 0);
+ if (session->key.op == op)
+ goto done;
+
+ send_key(session->uinput, session->key.op, 0);
}
session->key.op = op;
- session->key.timer = g_timeout_add_seconds(AVC_PRESS_TIMEOUT,
- auto_release, session);
send_key(session->uinput, op, 1);
+
+done:
+ session->key.timer = g_timeout_add_seconds(AVC_PRESS_TIMEOUT,
+ auto_release, session);
}
static void handle_release(struct avctp *session, uint16_t op)