From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) (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 D7BDB43551F for ; Mon, 3 Aug 2026 19:16:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.179 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785784564; cv=none; b=OymdVLTMs/a0YnFRqGzgGsNa/6WRO41s88wXneBKYGx0brMHeJXr8l+db2KUiyRVBNz5jtGdQAxVpVu+PyYlOdkibfHI2/qfvFhIbJlAJmoZL/R0WdithFGBoq3wzCi8+uOg8s1kRkwL8sayciMCTw2LXUmIb679VNiiZC7oTxk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785784564; c=relaxed/simple; bh=7m2bmzqsMIVBLFuL/xrXIgkl9ruapdGRrZFiSZ6VQ6k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MiY9WYv68EBx8d38Ve/nV9ig8JiE4DhyQazk+KMGkEecHz1TP+Frv+hY0ltkh7fbTWhid1uOlWDzSky78VD6Yeg2mwZ9f4O4s/TNhow8AZ2T3hPkXJ6nMSigr6v/hS4dywWfhO+50jTkYUg5s4WTISv16IdecUTuRuvxpfWEa1c= 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=g0gy3bm3; arc=none smtp.client-ip=209.85.160.179 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="g0gy3bm3" Received: by mail-qt1-f179.google.com with SMTP id d75a77b69052e-5218927884fso32642911cf.3 for ; Mon, 03 Aug 2026 12:16:01 -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=4rjPj39P47xaMasHmkHYYs80LcqMLG66q4JfEodsvmM=; b=g0gy3bm3gMk2V7lodbrdRULtTf82+hvuMmG4QXjKTdHfKLsdlqv8VAHRmzCvWeocjY CvAmHyncSQ473tF4rv3dHN8RuBoJmUXQvNjqoxwstLMqn/iEPORAYxd9NG8Voa7daJg+ mDZtV1vE/7LBS8dqOzrAuFzzSZDki7B8b6/OD11cJ/7iwAG2YUrakZBFedYNfiz4D2WA W4umC5NLPXwnl558UUU108njM+kfA5RPBYqJHcjgGGaM8fcKHPYfQ5aI4HCjHR+iWGTs xKSifQfAEWThnn8lHFi54uawmSZm7BJGXefg0W9SdbFHjipvp/dJE2oxUyEPsfIE0XSb wD+A== 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=4rjPj39P47xaMasHmkHYYs80LcqMLG66q4JfEodsvmM=; b=rqlI4YTRdIOLv+4Rr/Ae8syLHDGxLHrQQIqBGn5YEBWVQjWqrdhROuZJqhp7J+Cyhm xVCAw01lLQ/BiHOcyMxygA+CwP4+VlPQImnwg4oOspYORp6YN5v8Ft5kx77lCtYTaTBL Cpewuj/LAVLUjU7gkyG2K43jKMAdIcqs5dNS/MXPygM+S25ryxS8/j/wD99Rb3Eib7IB bp1JwAuTPdviOIuBSC1stKqvjZQesk+VGWu5k7VPU8d29qL9nycyS9eD4yHrZRDD4R2V Ezp4zANGvvSPl/qd81qkpqybr/sN+qFC6xahMdokOvQxkf2dQWEQYHkhh3t5v+6mNEba fJCg== X-Forwarded-Encrypted: i=1; AHgh+RqmI30Bun1Y4OAQRblmXNrb6FUefCL5ix97x0WWvLI2PWURmc550Du5/yAcaHTCJokxd/GkQ64i7LHeIpc=@vger.kernel.org X-Gm-Message-State: AOJu0Ywm8R+z0fQZFb9ehRbK6zoKJ9s3sF2KwVYrYdRhVrOK5JH7ZFIz 3sfU49oyOJ8GPoVcVMZfT3xoykmPLnuky5dwknpz5OuxKZPH7ZJDcm5z X-Gm-Gg: AR+sD12CZjCN4BZkvw0YSmRdHC+Id6KOMPJeWdfTHE7jer8I4Y9Iyw130tvC/2rtMdx lVnhaYGsX4aSenA8J1KD8mKV/3c8ByHnbw5FZ2LUyiAbWk2Z49bFzRRiIs8LjVaxJbAoLJrcfB1 JjikgZf1uLMWBk5oApYQXZnuWmvShodCNY+Nitupe9yPSE2MheSs5I+jI08wMq/azsWNPMY4VX5 hFVpbtq/Dx4kuOhaXB1H7mweCWWBeEwt6ealPAPOYVLhat6QwuEWmphJ61t2OqZaLERYg3cEoyM ulGcWZ0jWoiZkDpqhWvKZvX21UDtIbw0w9fo7XdjjRsUeGP5pZHcBumuTDfkYa+dRjjMPr+efnS AITtycGPY1F332JVUp4YDzo/IIhd7RvdX0oDdjPu3lVD8PZYTYxEMTOjZTAWCdbQh3srwfnEbxt v1I1lFHdaL1olIyO0lzRXUIBYooQyrDbrwaAZa+tGxzlC1CdJzo4m6QDeTMXdLnT/3nMxmwnn+P sNr9+ExNBZq787x2gnRLYb7kftqTA== X-Received: by 2002:ac8:574a:0:b0:51b:e92f:ec5 with SMTP id d75a77b69052e-52b5666d563mr221782141cf.3.1785784560318; Mon, 03 Aug 2026 12:16:00 -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.59 (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 5/8] HID: steelseries: Correct Arctis 9 battery calibration range Date: Mon, 3 Aug 2026 15:15:50 -0400 Message-ID: <20260803191553.66368-6-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 Map the Arctis 9 raw battery value over 0x64 (empty) to 0x9a (full) instead of 0x68 to 0x9d. These values match the HeadsetControl project [1] and fit the calibration points from an independent reverse engineering of the battery tray (about 25% at raw 112, 50% at raw 125) [2]. I do not have this headset. The values come from those references and were not measured directly. [1] https://github.com/Sapd/HeadsetControl/blob/master/lib/devices/steelseries_arctis_9.hpp [2] https://magnier.io/reverse-engineering-arctis-9-battery-tray/ Signed-off-by: Sriman Achanta --- drivers/hid/hid-steelseries-arctis.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/hid/hid-steelseries-arctis.c b/drivers/hid/hid-steelseries-arctis.c index 7b8f5f2623b0..b54f20f081a2 100644 --- a/drivers/hid/hid-steelseries-arctis.c +++ b/drivers/hid/hid-steelseries-arctis.c @@ -141,7 +141,7 @@ static void steelseries_arctis_9_parse_status(struct steelseries_device *sd, if (data[0] == 0xaa && data[1] == 0x01) { sd->headset_connected = true; sd->battery_charging = (data[4] == 0x01); - sd->battery_capacity = steelseries_map_capacity(data[3], 0x68, 0x9d); + sd->battery_capacity = steelseries_map_capacity(data[3], 0x64, 0x9a); } else { /* Device off: 0x55 (no status) or 0x03 (stale status). */ sd->headset_connected = false; -- 2.55.0