From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) (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 B87483B19BB for ; Tue, 28 Apr 2026 14:19:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.43 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777385948; cv=none; b=RPqM1Iz1VFIiFettjRj13EBtlDrZGcvpPHiP/lGsReS3NpinKoBdHbAxd/zdrNl2FhMpmXrja8dXKQ6s4P6ZAWlxzqIRjm/C1E+uHilxYsSmyGtqFO2Zdr4t+fon291KCcHFE2O2FGKWXBKKLiPqikD+i/7vYdCpMGPAyLPEwwA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777385948; c=relaxed/simple; bh=B1Xhw+g3PdzwhuvhrsM1a9m2CPLx9i7HUaE+i6Yty1o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mg8r66lDA5Xq74gUxJvl/uvv5P+dKF23/wiWcq1K6c7Z9VlU/W4DoV4kqGLAZiIJcIHeEbYfpBlDu1/piag3louAq1mGx9GNHqJxxivN5/uev6O04DpTBFvzZduyfehKLg3t33OieTh98NiHHHQWEDpHolUZI7u/0rnY8SZRRJY= 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=ZPVsTwJV; arc=none smtp.client-ip=209.85.216.43 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="ZPVsTwJV" Received: by mail-pj1-f43.google.com with SMTP id 98e67ed59e1d1-35e4617924eso1781765a91.1 for ; Tue, 28 Apr 2026 07:19:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777385938; x=1777990738; 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=5/l/tvbICEbtVIUOb2tF/TKbrJ4oMCuMVruWpyDt6VA=; b=ZPVsTwJVs7OLtQ8CXFBjyGKN0PyiBawGjUofhCE1ZAYrPf/8Tw4LP5fbEf6GTBkgKD nS9KwYcKIR+pvv18G3OHMd0kWB7fjKjVAdL2OV0GpicRTQvbOsyGymYL6AI2CoHi1pmz ewnhIFcmxu1PnwRJgN4hYjQ9UA/RNm2zR8qBbQh3qGsC7A6/hU5fzfpTAGfMw0un81ue I/+7gS7LMhAycKRHFRBAL9ePnDfTHsgQV+b4MFLIxrHALaAvYsGsYSv436uU7FvZpleK kx2ggPhB3LUheqQIRTyRKhX/fi/vwQ6xaqoEExgXxALEHhmgwuH5DqZVaBmV0LhU1bRo LN7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777385938; x=1777990738; 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=5/l/tvbICEbtVIUOb2tF/TKbrJ4oMCuMVruWpyDt6VA=; b=cn1IH1cc1dvzrv/yFhDEIERFuGA7t1K+g8uhBjccyi6US/MvNmOa1DYrx++c5oCdiP PMcT3yb+eNa+o+AN3AyyT6YVqeevnBW1d7e4qEG0Wz36xS1ybqlYApsnWp75Wq1P0YvH VEi3Rka9es0ewvW9pFttAGC/zM9IfxlX4y/a6GXTmzux50Jd5wAbrIY+6wM31jBofBDS uZafQVPaZTBwsDDFSltC5AYRSZYRKC8TONMCr1YMxLDTHr+ZrzkqqR6Hho4OTKUEEXkI wxAkE0WWHmfcSu0ZU2ywUaaXp9w8t9mLiwP0twETqPuVAnjeWcjq1TvKINX+v7i4owgY V6nA== X-Forwarded-Encrypted: i=1; AFNElJ/dfQSC7owlsek6sKqYPjVkcdt6rvHLiebQNcvQWsuusaSChQwDBZvWnBmSiCneR/Xq/Ttc1VGbi2e7l54=@vger.kernel.org X-Gm-Message-State: AOJu0YyXHSTJf/eZ3CJqfAudCkdwn5mlyjrcgDmXegJqQHZXREmh7UMq xHlGT2kRuqVyFLRvkGQkq+k7kqMJEOu04FGe/U5F0GnHuKgF5NR/Dcqs X-Gm-Gg: AeBDieuYs6HNx/iwNXpKDMe7TMfUTSXhdYzeSIwy8oZK+7TLFGHEQNtkwKkh6qwG32e SrN1qw4/oCvt2p8ToyQwd/Wc7/ScVOu6YX0QwRsyrW4oq8EryzXptfx/3kl22J0T121oqM3IkCX skeZNJk97qsaZjPr2AVLfOXKZUEHUdmPe0F/XxvRTgHLQhTS98dppLWcSNuoQJtZ6Ki4JYbldhP 1e3FvnFadSmzLdEkxZkT4AnSBflJmbVl+N/dbgrFhzlHbzS1oSknGhsL7e4HQMfdGBkyDAs3Tsx evKVgFX/uRShxHXl4TukbNKid3KFcVFvkDYmp+dZ5rH/6n7Edq2vwqaDRG3WUA3y2T38K3jIHBw Q1a3uYe/PfGFMNXdG8eHtkgxQLSbfPn1X+dXC5CGq03D77i+Hl3u0vMw8hF7rwXQpTiL7dHEs+9 6be0gQOR5MkggGB4VywWkKJurs+/3URAEWKxX7q/07 X-Received: by 2002:a17:90b:3ecc:b0:35e:576c:7c1e with SMTP id 98e67ed59e1d1-36490ca7aa7mr2116371a91.4.1777385938195; Tue, 28 Apr 2026 07:18:58 -0700 (PDT) Received: from magniquick ([45.112.148.109]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36490fbfccesm3114485a91.14.2026.04.28.07.18.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Apr 2026 07:18:57 -0700 (PDT) From: Navon John Lukose To: hansg@kernel.org Cc: ilpo.jarvinen@linux.intel.com, jorge.lopez2@hp.com, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, platform-driver-x86@vger.kernel.org, sre@kernel.org Subject: Re: [RFC] HP laptop charge mode control via POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR Date: Tue, 28 Apr 2026 19:48:51 +0530 Message-ID: <20260428141851.549364-1-navonjohnlukose@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Hi Hans, Thanks, that was the right hint. The path from the EC to ACPI methods to WMI has been fun to trace, and I learned quite a bit. I checked the WMI path, and the charge methods are reachable through the existing HP BIOS WMI GUID: 5FB7F034-2C63-45E9-BE91-3D44E2C707E4 The _WDG entry exposes object "AA" as a method. In this firmware that maps to: \_SB.WMID.WMAA and WMAA calls: \_SB.WMID.WHCM(Arg1, Arg2) Inside WHCM, the command dispatch maps the charge-control methods like this: read commandtype 0x1f -> \GBCC() read commandtype 0x2b -> \GBCO() write commandtype 0x1f -> \SBCC(DDWD) write commandtype 0x2b -> \SBCO(DDWD) Calling the WMI wrapper for the three modes works as expected: \SBCC 0x0000 -> normal charging / auto \SBCO 0x0500 -> inhibit charge \SBCO 0x0200 -> force discharge while on AC So the raw ACPI methods do not need to be called directly; the existing HP BIOS WMI transport reaches them. Given that, I think the implementation can use hp_wmi_perform_query() with the existing HPWMI_BIOS_GUID. I am still unsure about where to put it. The smallest patch would be to add the power_supply extension code directly to hp-wmi.c, but that file currently does not have any battery-specific code paths. Should I add it to hp-wmi.c, add a small HP-specific file under drivers/platform/x86/hp/, or is there another file I missed? Thanks, Navon