From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) (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 00A57433BCA for ; Mon, 3 Aug 2026 19:16:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785784563; cv=none; b=LMkMlRW0yf8swIFzcKsUCcNYDUn5VEooyut5wTHlxmm/LmmEaAZfVm972hMcNOoI33WXHg2TpnTPyhg+aIPP82G2d0HvDfvx0SxrlZQHItWp2q4JJYc50+KXrOX9TVMqVBI3tgnocBxetsC3YAuKpBaUDlmT4vAl5Jmu1ekq36A= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785784563; c=relaxed/simple; bh=mrO+BsSsNgwnuSX3UaLBRdUdLDlXlA6VHErkX/eArA4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ebXWbTC8GJrWdc3WXTaidRPnYbrQs8iIRyG5CHLoKCD9Pi+HgtayA0BL5GXiETD0p4645MFI+ic2CXlGPFC3VeFrxSBxra6zNIfzzxL/msmTgtGY79z+NJV4jYA+eQAruGZwlf7D9lob5AeqyxmdCl5eoXdzgJg1sNXn0eR/EsM= 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=seFHsTzO; arc=none smtp.client-ip=209.85.160.180 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="seFHsTzO" Received: by mail-qt1-f180.google.com with SMTP id d75a77b69052e-51c05dcdf49so40029321cf.0 for ; Mon, 03 Aug 2026 12:16:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785784560; x=1786389360; 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:content-type; bh=W1fduvTpD42ESt1oRP9IHFMVMP1Xuv9K5VEBmDDxT20=; b=seFHsTzO4KIqP42OzJLSHMVVmYETeqNIrJNdWlRPNl1UYrJj+6X4LDMpECq8rAuIuX KcUR5vo2+AZ9eyvDwc3L8idZSoWIYFmnDnqZ/Tk19wGJjVXFq3NixM+eo4dtiIF7355f jJh4NxL9RVd6CC62+G+tmbozR/Bqtj0HeXb3LI7S+j5LEf/7j71smqoTs9tKXz4NTCQk 4RZbBgLXERGnO1mE3zJKTG08mkRhg7SteEx6yUEoui/75xgdZSoekq/GSVxUBuQpcbgJ PDXwBNIF+pRXZaq4pjyWhC4jZPPc7saxNsxo7HYauBhRQ487BBiZf0gbKMfs3brPtFBM wk/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785784560; x=1786389360; 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:content-type; bh=W1fduvTpD42ESt1oRP9IHFMVMP1Xuv9K5VEBmDDxT20=; b=jM6qCvVVTMmpnkyvfi48RXpzGe8beodFoC/iHeFpkSLkngcgMg0RWoG0i3AAB+ZfiO NZgT0gf9Wby39EzusB2eh7RDp+7Hg0C7bTq9/7QW1u1HgN8fVLiOlhWPUcDG7x5gVJhE HLWiIFZECRqFle/unDeWea0HlsCI6yA49gTTyXF5IPikzxGY6AAMlDTvD0gZFRROEROi QMrKA1SI3I1hKZJlin60gO/lTREUQ/5BrHewULmbTkASvJk+zrdrK0OHjwy+57/L82y8 RhaDkkvjVw/uDHAghErOab5zFPjlcwcx/lr4TBrX1/Ms3nStP3uU2Rexu0NphbIynb1s qEzQ== X-Forwarded-Encrypted: i=1; AHgh+RqOujCHzspC1qOa7UQ5nwaqYR3Kqx5xGLYBN7TPDdnssJ5zX+12Ue/QxSCkRF5tBDPlrGNWfyj4U/q/fuk=@vger.kernel.org X-Gm-Message-State: AOJu0YzqR9ACo2YJczv5JCVYCv8nIGsc+hPb2tH+KvPzlAfwXx3Z/yGe PvvRYQhOWnKxXDOSxPgME9iKRG1B4hBAPJHJyCuyBljECNBd01B0GCse X-Gm-Gg: AR+sD13dA+n51yMyHWrY7aKeAWNXoUga0tXs5JJ9DKwQ9c2wIgKnuo3qD77d0I1EgU9 VZ2+0Zcxwa3Ve+RVkTXV8MEBEvLl+slza3RRTgZwRCF2OPIAlASvbtatEKrGsaauL7iP46hfUVP hBrsys6PBMAQAz2zEXpppU3Gx+j+JOeU8k1iPqBrGz2qe97jQsCUfyw7HmSPgO0BCysUem9snlt LgfYcg2+OlCkkIAtCV08gDJe2DAApWvjRMo4HA8KVCUVVLtbJHI/95mCUg26gXgSKQ1XnFgTJbP 9jhIB58ff5uUO1rNM+Y/x0GMUwGJUPhe6Q2GpTlCVHKEQUtKdQVE/Zu+L8x/niKhCZvVNTyZABG o2nYXgAANHngrb29elv4xtWox7iHgsFa+9P5uV7B5YoIMQJCTbMkx2MAgReOxDk9uLdJgJIPVwv 2oinBfs19eI8OiUo5M/TFv/YuSjP8/QoocVhBIEbcr4YIhvJDXi2bUPybtGLxGonpx8ZfEvCz2Z iP/v0Q9u66o/a+6N7g= X-Received: by 2002:a05:622a:11d3:b0:517:8d24:64d8 with SMTP id d75a77b69052e-52b566aa82emr208085391cf.13.1785784559571; Mon, 03 Aug 2026 12:15:59 -0700 (PDT) Received: from achantapc.tail227c81.ts.net ([2600:4040:122e:7d00:f04d:e0df:fe04:e789]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-52b4e64df9bsm67803541cf.0.2026.08.03.12.15.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Aug 2026 12:15:59 -0700 (PDT) From: Sriman Achanta To: Jiri Kosina , Benjamin Tissoires Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Bastien Nocera , Simon Wood , Christian Mayer , Sriman Achanta Subject: [PATCH v7 4/8] HID: steelseries: Report POWER_SUPPLY_STATUS_FULL when full Date: Mon, 3 Aug 2026 15:15:49 -0400 Message-ID: <20260803191553.66368-5-srimanachanta@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260803191553.66368-1-srimanachanta@gmail.com> References: <20260803191553.66368-1-srimanachanta@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 Report POWER_SUPPLY_STATUS_FULL when the headset is connected, charging, and at 100% capacity. It reported CHARGING in that case before. The charging flag doubles as a power-present signal: the headset keeps reporting charging while it sits docked at 100%, and clears the flag as soon as it runs on battery. Gating FULL on the charging flag therefore avoids reporting FULL for an unplugged headset that merely happens to be at 100%, which would otherwise hide the discharge state from userspace. Signed-off-by: Sriman Achanta --- drivers/hid/hid-steelseries-arctis.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/hid/hid-steelseries-arctis.c b/drivers/hid/hid-steelseries-arctis.c index c54c56db9ddd..7b8f5f2623b0 100644 --- a/drivers/hid/hid-steelseries-arctis.c +++ b/drivers/hid/hid-steelseries-arctis.c @@ -214,7 +214,9 @@ static int steelseries_battery_get_property(struct power_supply *psy, if (!sd->headset_connected) val->intval = POWER_SUPPLY_STATUS_UNKNOWN; else if (sd->battery_charging) - val->intval = POWER_SUPPLY_STATUS_CHARGING; + val->intval = sd->battery_capacity >= 100 ? + POWER_SUPPLY_STATUS_FULL : + POWER_SUPPLY_STATUS_CHARGING; else val->intval = POWER_SUPPLY_STATUS_DISCHARGING; break; -- 2.55.0