Diff between f97cc75e00f1443657d6050764e73b3a92f4c263 and dadec19ecedb9cea0e082ded3ee40bb417d81866

Changed Files

File Additions Deletions Status
profiles/audio/avctp.c +8 -4 modified

Full Patch

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
@@ -337,15 +337,19 @@ static void handle_press(struct avctp *session, uint16_t op)
 		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)