From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dy1-f178.google.com (mail-dy1-f178.google.com [74.125.82.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C7E2931F9AC for ; Wed, 24 Jun 2026 05:50:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.178 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782280216; cv=none; b=sw8audXRtrOYUSRDqV4zInLpLAidht/5vS48aN8vE1rv/Ock3YYhledij3WrRrblbaFxTtoy9BpX6fi7sfI0CUKdjo5W3IVzjdSmIE3JWqs/e9Ka9g4dMA8Vjq+sOqkZWo6u+XLel0qRAnsYYspkP4kYjLE+fcJXk4QkKsPkWuY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782280216; c=relaxed/simple; bh=05+aOvlh0HZQOhYyVz5PrqvmvdEPjszq0SezpRNhrvU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jCrjUa+5TypX5lP80pGEL+Kt4NGGtiC4XkL0TmkWSN9CLVOhhczaLuRWBmRn0JME9kPO4IBB+19vKkhpssNikCfjFzsLKt8JZX0wNI5rpIZ5fmpidRxmtGKd5QIFqODqIKRrJyE+Gez9UPTZ0Tirl3f5W2nVWD6xMXRS73aEbKo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=gCyK/v7L; arc=none smtp.client-ip=74.125.82.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gCyK/v7L" Received: by mail-dy1-f178.google.com with SMTP id 5a478bee46e88-3078e0dcd67so828166eec.0 for ; Tue, 23 Jun 2026 22:50:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782280214; x=1782885014; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AE3z5I4Z7m9Rcvx2p4OS98P/noBS4oQPrdI99uWQsMU=; b=gCyK/v7L+DK4H7PE5IBIDpmz0Nt5SIYUkc4kEVJWMjp/TaBlF89RMiAwdBBcxQHCnH dAfwYr1o0I+c9oQHSbThWm4lStiHBTz0c/AnwosvyYVEzc6Zf0qHdQC/FkH+0Qcq9HHw rmfcY/6Ibn2s81o6iRdd375Xfrlflej+Nm74KnJ3Y2pKBpJiav8gFUs+9IUxjGRFN0vT rlf7XGtAfO7KrjUalQFR2A55Bs1fV0cOB2mGdS563pU75OuY0R2yO/DCTbG7wWD/lHgP DpxihRi0VwKZlaCnT2ToYJl9Hs2CFLxEXGtoBUvy17Ql0AhU7ehi0dfO/Of6tPP8H7UF m1Pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782280214; x=1782885014; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=AE3z5I4Z7m9Rcvx2p4OS98P/noBS4oQPrdI99uWQsMU=; b=KC+mbu4NKn9P2xi31GxDwU04G9MM+Gl4i57fVqdinXUZsPVwtGlXq0IpHLdwj/k5v7 4q4kjIdOBf0sa5Vbh1l+1d/+I8oXpsreYtRdjvgmkdGYJLXrzNeFzE6bWAIKLDjt8TTw y/mO3+qEKeoYcI+smSgfa4GDM1pRIysUvvBRDvPtbADXwUEdQkfmrq7mbnE6X2JMaj9p qOC1WAcPpObcyBiSjPprwCSFu4SqmUu2DP65LKOm98UwtiqeuQOgtb3Ix9SW5ZxF7N1R V6OvxF2bdEteOyDT5pq03DQ38ORg8R1ewhGqxRJZ8md+QV5ZR7j/28W4nzwyVpHjkiN/ fZ1g== X-Gm-Message-State: AOJu0YwCGXVRdbKSi5RGVPgxu+jsq45GwbS7xvm3y6ynDrL5/4KSUFQ2 s13IXYaFEyCOEtMCt5BN5x86Twd2l6uywKsEcUX5lAAIYM0OlZcrIkB4 X-Gm-Gg: AfdE7cmKeCiwpoNHmihAv0yS2XA5SAoKoIBZfwfH47y8Ag41Vq8cs9E0um+72TGO57S LcNEgMCCIypiB83wKjjLvQDaQcWGqLJqTjkx6pDNUducDWWGpKzuVvboJ13Tn3DQDLgJv3ivrFx hjAOLLrkWcUtyIMonas05yti8GpNkFlfR3KXZ3MKHrYwTSdlTF+C6Ij7QbiuCsO3uru2LfLAAgg DGALLZvrUjJyaqgl38wa6MLl7Vt6/KqASnYZ1Glrr916/sfwxjoJuylgMEtFuF5gg4v+P8WVilo AaagQqz1wIYYmYhM29a38bdsiotp5y4MwAiVM3L8JspCl/bOwRmeLvAWSqyd+qOrSUw+7HMyX9C Z33HRu1CkXkVHdVAJS4W2iZceKp117rsqpofhicbxYWwJeid5YVlruZPa18AsPMEJABVTCn/UAY ovD+infSzw5ZZHUx4AiY9Fu4HHfPst2OpR/d/F/bnLd4+xqIJVIk+5f2dxGIHpkrp0q9jvzpQZ8 sRBnO4CRK7MCWQ= X-Received: by 2002:a05:7300:1483:b0:304:df8b:71ee with SMTP id 5a478bee46e88-30c68c77c87mr2503702eec.7.1782280213830; Tue, 23 Jun 2026 22:50:13 -0700 (PDT) Received: from dtor-ws.sjc.corp.google.com ([2a00:79e0:2ebe:8:6026:1e6d:4a80:9bd0]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c430553d1sm14073419eec.11.2026.06.23.22.50.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2026 22:50:13 -0700 (PDT) From: Dmitry Torokhov To: linux-input@vger.kernel.org, Jiri Kosina , Benjamin Tissoires Cc: linux-kernel@vger.kernel.org Subject: [PATCH 2/4] Input: call handler->start() when uninhibiting device Date: Tue, 23 Jun 2026 22:50:05 -0700 Message-ID: <20260624055008.2494980-2-dmitry.torokhov@gmail.com> X-Mailer: git-send-email 2.55.0.rc0.799.gd6f94ed593-goog In-Reply-To: <20260624055008.2494980-1-dmitry.torokhov@gmail.com> References: <20260624055008.2494980-1-dmitry.torokhov@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit When an input device is inhibited via input_inhibit_device(), the driver is closed and physical feedback (like LEDs and sounds) is toggled off. However, from the input core's perspective, the handles remain open. When the device is later uninhibited, the driver is re-opened. While the core restores simple LED states via input_dev_toggle(), complex handlers (such as vt/keyboard) may need to re-synchronize their broader logical state with the hardware. Fixes: a181616487db ("Input: Add "inhibited" property") Assisted-by: Antigravity:gemini-3.5-flash Signed-off-by: Dmitry Torokhov --- drivers/input/input.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/input/input.c b/drivers/input/input.c index d99dfe69e12d..c2a038d31beb 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -1780,6 +1780,7 @@ static int input_inhibit_device(struct input_dev *dev) static int input_uninhibit_device(struct input_dev *dev) { + struct input_handle *handle; int error; guard(mutex)(&dev->mutex); @@ -1803,6 +1804,11 @@ static int input_uninhibit_device(struct input_dev *dev) if (dev->users && dev->poller) input_dev_poller_start(dev->poller); + list_for_each_entry(handle, &dev->h_list, d_node) { + if (handle->open && handle->handler->start) + handle->handler->start(handle); + } + return 0; } -- 2.55.0.rc0.799.gd6f94ed593-goog