From nobody Sun Feb 8 18:57:20 2026 Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 449071C878E; Wed, 5 Mar 2025 05:30:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741152628; cv=none; b=IWKkxfLPYpj0Fug7uRrNUFAUVS+yQXkTmMlfhPpzVQFTRlzD/NCm377VVr5wPd+sW98ILnhLoagfQUFKzYQkBgGy32JT601LKnQHWDe8J33TVNS6Z568sOnVbLYmsukW8Vufi3LPZrmFc/PH/AO5uwk/P4EFhO9R15k2+9EwMJo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741152628; c=relaxed/simple; bh=Lcm7BEg7Tas04TY7QecAPfuKado1G7il/9aZYqJZ29A=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hu1oRk/++FDOmp1Br13kUyEfYENcaRiXaryynoKycEmWKruHSTINZUHQRSAfQqPR8tVG13T64KhXtNEBADY1h8FYdkAQ5XFklUgxTZ3Rfm8FLl+iJ6EEcVEqn1K81VZgvuSojPn8RWsPp3MA8r7lQM1K7DdNTgrUWEA4Nqghsq0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b=i5am8EVA; arc=none smtp.client-ip=212.227.15.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b="i5am8EVA" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1741152619; x=1741757419; i=w_armin@gmx.de; bh=ntDKQTzh/orsND8IzvQjep/XVQ0n4zvMoy76hxbPS08=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=i5am8EVA/kq76SIqFtxXZbQDyiN22uW05D+kmHaVUpd9jRqIMb4d/8IJzf2AfwjP JJmbrRTs50iOKrYF/hpkH+2xyTAzBzgfLMS9Q4kuuoZO1FEu02D8G+MaBcEc1BQos OLA/TSfcTG0IOVNYIiXoZCP9AzE4GZIfa7dNCimuFUh8xujB+yur38vvB02ETSMtN RLYlEUB2ZNpyaA/wIInlh0LsolEChXvQ9w2pfiH6cJQJA4cErebG5oeUjxOQ/EeIg r4qadfkk5/AcS++BtloUEw3F25yyGjqlG4Ok2EAzpnxNhGWRmLOjRmB9mvD7VEHlQ ryIj466u4Udk0ekF7A== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from mx-amd-b650.fritz.box ([87.177.78.219]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M9Wys-1tt1G30zLA-003siv; Wed, 05 Mar 2025 06:30:19 +0100 From: Armin Wolf To: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com, sre@kernel.org Cc: platform-driver-x86@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/3] platform/x86: dell-ddv: Fix temperature calculation Date: Wed, 5 Mar 2025 06:30:07 +0100 Message-Id: <20250305053009.378609-2-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250305053009.378609-1-W_Armin@gmx.de> References: <20250305053009.378609-1-W_Armin@gmx.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:XcxrfxHs1Oy+ILI2Dcmc+DBRf9eCC+UysHwLJi+zq5z1+fDCG+5 IB4rTu/vFdT3uighBcs9MWalFtscjrtVyiuv0dIQLySKIkTvJHhY5G6Rvf9/49Md5DDxYBo TWHcRUR5i+LvKi05TksHipQy1oaRNyFTyHdk/ujQiEa7zjQ1cEANzCCu/eAFH7gGT+oj9MW JcOmIbmzbLxHQYg8sT3lg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:RcT3kDLisPg=;mKyW6oz0L1ph9Hk7I61bOJOfvEX tM9sbZdUowsMpaekWrlm4TzXOX/G0GtiwmRG9zJpy7YPYm7GPopaC0257SU2AnfzANsGfdIcV VfMqlWY/lt1IHknwBB7BbSS3czufTOqaSwbRAk9A5xqwY6iNRNRQXNC4SfHB9tRY0QnoIssJJ 9H9Gr7pRvWbAeiifMsQ5rl7Ybv45iUuVMi0xW21irKQ2DvfWe6y7hgW3PUAASzZYjDiUNOzlI EFDU9tL9RmCsTHZyr23zpYmPD8kmInyYE4z/lnC8iUeXSJbuMrJYMCWl+t+OlMQbxdqA5qTUQ dk2C3j46gD42vID7IR3zajGEwDp2gJeXIqva+Y/dValLzJxV6P8S/HZD03Nuwep0Pi4UepmNj FvkKWhWuq9HWGGau/rbeaYz5+/IyGCWUZObdhZKX7HLX6pKNnUsLzrfqPgIyuhtJRBNNSYp6M eggViuhWxEndz3dA2DFoblD0fWrvrRjOZU6LsyrMN8C+Wn3JFJ0cZMZbZ/LucFiZDHH3yjHjl +UlHR4V1b75IYWmY+McNxWtH1/7e/0CJHSJQCaQirFxMqvyhhvF7fscHMzyKgIzck0K/mg2cU MZdTWix0ulGE2L5ThSOqwT52y20ltj3dSibJL35PP7lacKcvhUBMgtlwWLZy8N5MQlD6nCicx 7tGrG2U8qqgKKusBVCugXM26/ST9XckjQRBm5RZWxv8WxLXtgWf/hZc4IvrqpiFZBiIYxePA9 4lxAE1l18zSMWttX2+hjiHeCWW+6y7IRNqLmwRzBNLNu6stQAs/kSVMBW1YexGLFr36TI8TUd HIPxw3dCmhin0OkuKa8p4H+sVkv6CKCECjrB/g/J++VYiB//okCXeZMwiM9So5jAHqaMfGn10 dpUsLBd2iSTE9Ndo46zARwSqsvJWgQW0kLs7/KIYi6nNYOw/hPEt9coBPp4/ceuD8tcMo3U5I uv5r3rDhamI+clEa1tJYpsjH+eUlGwY4PTAyPjs6y/lMnsSvy/NsuSzeFHU+qxbdf5RiSVoEF BlYHtw8g9SAPJgUgb3TZ7f9QyG1BCQbRS4diBAq7di8+Czh9cXtKBtX/tELLdtqcxqNvM7UC8 /rsrzVhvyyQ9mdZowq5ezWC9tJ/oSZNgM4lfFK3tnhetlqyYuWuwGen+nNsYGUJFG1t92tETN iAug8Zfvegca8WimtWdSNsP0oLaJuTtvxWLy25JKiYDgoBlGDK7hPkgheUOwJMNPDV6KrW5Ow y/i1XBM200+ZytXPYHoFi6RQc0F1KEJiKDuHHHJe+Pb408rxMRiR6h8CuatT9G+7DCVlJwol/ gm4dWJlUY24hpz+AT0wfJdS9sB1aW3fP6ZenW7rODbnHrfGDrtXZPPVflnL8cqO4q1+lwLidx 5c6PcC//LqQ5XWvEaNLhvnscOLUwlGWCvlr5wLP6YTlf43uNupfOzzgH80 Content-Type: text/plain; charset="utf-8" On the Dell Inspiron 3505 the battery temperature is always 0.1 degrees larger than the temperature show inside the OEM application. Emulate this behaviour to avoid showing strange looking values like 29.1 degrees. Fixes: 0331b1b0ba653 ("platform/x86: dell-ddv: Fix temperature scaling") Signed-off-by: Armin Wolf Reviewed-by: Sebastian Reichel --- drivers/platform/x86/dell/dell-wmi-ddv.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/platform/x86/dell/dell-wmi-ddv.c b/drivers/platform/x8= 6/dell/dell-wmi-ddv.c index e75cd6e1efe6..ab5f7d3ab824 100644 --- a/drivers/platform/x86/dell/dell-wmi-ddv.c +++ b/drivers/platform/x86/dell/dell-wmi-ddv.c @@ -665,8 +665,10 @@ static ssize_t temp_show(struct device *dev, struct de= vice_attribute *attr, char if (ret < 0) return ret; - /* Use 2731 instead of 2731.5 to avoid unnecessary rounding */ - return sysfs_emit(buf, "%d\n", value - 2731); + /* Use 2732 instead of 2731.5 to avoid unnecessary rounding and to emulate + * the behaviour of the OEM application which seems to round down the res= ult. + */ + return sysfs_emit(buf, "%d\n", value - 2732); } static ssize_t eppid_show(struct device *dev, struct device_attribute *att= r, char *buf) -- 2.39.5 From nobody Sun Feb 8 18:57:20 2026 Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E3CA192D97; Wed, 5 Mar 2025 05:30:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741152626; cv=none; b=ZzMC26Gi87Jlt9DBvkwF++yCdKukfDDDuO4PAvLtp82hYtqMFzdB6jptzwWZNImZJwL+KdLY1MmydKfayJndq3YuQNLbXVrU4NI8NeSIbU50XQrtvxYfyzK7VoYHwjIGNfCg7h3osYhFfUt5T7IEq1C9Z/Wjp2sqjlCphIPMpkk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741152626; c=relaxed/simple; bh=Cu4aMMTSPnkinZYxHlGE0uO+4DCXUphDPMuHClD9W5E=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=IvORcDhuoRbSru/eLVnqoshgwZuZF+opPQ+thdjjUvDOsLzMngqX1XBFIuUK1T2rmVlIGPDr940+LfYuTzOySDFdQ+Hu9jlaa4UBVQOr7pKUuX49jcl++Y+irXyCV3NxNVOFGfz3jhcVGuElfPJOwQHuWk+vOw7Wufj6rZyxV8E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b=HPTqzKAk; arc=none smtp.client-ip=212.227.15.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b="HPTqzKAk" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1741152622; x=1741757422; i=w_armin@gmx.de; bh=ZHyHXS2eq9YUdF65i2BBBNBkWwwkeESwiml5J84ESYE=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=HPTqzKAkT95GZ+y4lnXFlx215jz5JHLOeJWMzy5K6mViKa1/XaCiOJoIsye+DnLc kWW+tcoJGKkHY4IeBy9B6HX3TFzD8I3T6b8qzUyA/C2Tib/GmjNihJluumkDQkVaL CrZ7dXW8hMfDk6A5tioUCikded5rKmD96vAFK4QqRogfQbH+mZ+AfdYmoNbNihjD3 QbtkgA1FzboK3bH3iZJPPZGSKr1FjvUtUNHcZTsPY/ucsvsbE6xHfbFHHI3rZuQ9G KqBbCJpS24vGEMc4+51S8TZM1ykyEsZb7fJ2lGbvVpDbfgOFSLrDEjpR7uYV5THHh sc9cnuaOeSn1sS3sSg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from mx-amd-b650.fritz.box ([87.177.78.219]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mn2aD-1tNCzy2uFr-00hjvn; Wed, 05 Mar 2025 06:30:21 +0100 From: Armin Wolf To: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com, sre@kernel.org Cc: platform-driver-x86@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/3] platform/x86: dell-ddv: Use devm_battery_hook_register Date: Wed, 5 Mar 2025 06:30:08 +0100 Message-Id: <20250305053009.378609-3-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250305053009.378609-1-W_Armin@gmx.de> References: <20250305053009.378609-1-W_Armin@gmx.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:kERdTMHOAJNAs1LzeC4QxeaeaSpx/Wnl3duXrBk1IqCZQzs1PL9 x7y611wnvq1JS2iFk34MTnY7hkNSTjFN7wk7nrMgzmwW3mdkzhprZ40fitOVBkinRUmHyIf qj+HcjGAZV0yPig2zUG2sBXgqQJQzu+aR5QeshQC8Ehr6ZDMw2MWzJSIC2J9g3fLUMYtlTw jU+DkcOlLyWb9vorhkXrA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:a+p/RyqkFNk=;nn7gX4oA2VI7R7GohKLuLHhX/MA tnWePq14g9MqeZyXmtTj2dGXVUZCOPrGOGr4uGPxcR/Ut3h2SdRUC78mXaJkAwndTfWqqlT5q BjuAm7GhnGTlgs+IwX6AqxIkORLJvNXTCJgY5gw47XJzqKa+YBuYad8s852QATxVBuue0rq5l 8cL5aXsSIE+7pk7ljSjXkTtokBMqS/jUy8pXpEqMJy9zGbEttAZgCQGjNrPGf/PIaI/VfJ4zc tjtK1MBP82PxIT50hX2WjB8Tohk7zqFOohBIxwFhrYwS9kkRfBgwqDjJf0dYcK1qDhcUO/rG8 UvCoQXj44qqgCWpRQg85iP/3sCFnyKhpKDTXg5a04Pnkip5a+cbvZ0yUlpWGBZD8uve6mosLA kZZYbukdjzq8BublYWiY+C2u58VAD/p0bB69E85GAmQFk/cGwK+NF0/DiC/OJ+0IDLSv63tAD PrSNveDYUd2ZwBp3qGMRgOnIdnog8uf/z2YhXYVRenjy1UacHt8RVR27PhDGCYU0EKxu90xB9 O+QwpVkKh26XtPVog5nCNIugTyD/svEtiS/bxjF7zXU18ZJvl084640EHBXvHZpF5fHNh0jWU zak5+BcFxRtsJmGHDCLmdkoqDR9rXhMTz34z6wB5I94GlwCgfrcILmUeJHwbhpo2issgWGncK mu7yp74YgYMbEfY28f5bzHaQk8yEx7/ihlheipBfP4VNRCKEYFgQHMFwMX9Y8ASfRd4+L4xrl +UGuXngMv5pSK8i4NdG7WYNXC8QAKNoxtC3NkS559EXOoixoI9ybtrKCe9E0VRtgvSlH5TI50 TgWeT9+UOC+Fv4Ryb76yqykWVjU/h7Jl2S0UDhuBIyXytxFo9xIWFhq5z/9QydtDDeRurBX7S 7gdPcSZudkWiHoFQSdjdKVWkkkI5TOL9Wz6EwBEKcxSrrav7KxKo+Ezk4I6X4xw1vHGP9SCNm GdQjUsY9HIDRoWTeCWQLtgww7U/2bMJekqSly0zcBS/K7hqKWZnZCrtF2YFExCBjgjX+Sz2RO ibNg9Ourc+vG0htpFs3lFkY9NcIi61woYx2gZ4+sfclTWR7CcGQXdV1+I78E1LILMCkptRPvV Crt+8CX9Mbax+ZoL4x9WC+xE0+FPOQAQ5T8Pnp+ApooV2e32YE/A2fyGEHH+BTkgYmuMJSl0m 09Rf/qTIS+GRv1CjVJe7Od6WKyWMCts/34/+XwD6xpWUyPR7UfZDHyvpT6c42fNQDF0+q5IY6 uMHf2O4TYgRMmIkRSCMk3vxMv7jS9zlSJOnmX0Gkf0U2mYJG2Io7p+dzUOoFMdeZAX9J7mxWc mCL3v4wUNJpQlkYU3tiZcZ0TqUUIOEwHbjdzunWj+wMU9X6JHsVyGIr7Pq3WxWTI8VhNkj0BV hXFGcQ1qYilBeOyyIsVSUNM2QYajIltVqyLaBWfBwJ1ye1o2cnfTVbjv481rZwLlArlFDw9N1 WBAHXGQ== Content-Type: text/plain; charset="utf-8" Use devm_battery_hook_register() instead of manually calling devm_add_action_or_reset() to simplify the code. Signed-off-by: Armin Wolf Reviewed-by: Sebastian Reichel --- drivers/platform/x86/dell/dell-wmi-ddv.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/drivers/platform/x86/dell/dell-wmi-ddv.c b/drivers/platform/x8= 6/dell/dell-wmi-ddv.c index ab5f7d3ab824..811cddab57fc 100644 --- a/drivers/platform/x86/dell/dell-wmi-ddv.c +++ b/drivers/platform/x86/dell/dell-wmi-ddv.c @@ -732,13 +732,6 @@ static int dell_wmi_ddv_remove_battery(struct power_su= pply *battery, struct acpi return 0; } -static void dell_wmi_ddv_battery_remove(void *data) -{ - struct acpi_battery_hook *hook =3D data; - - battery_hook_unregister(hook); -} - static int dell_wmi_ddv_battery_add(struct dell_wmi_ddv_data *data) { data->hook.name =3D "Dell DDV Battery Extension"; @@ -755,9 +748,7 @@ static int dell_wmi_ddv_battery_add(struct dell_wmi_ddv= _data *data) data->eppid_attr.attr.mode =3D 0444; data->eppid_attr.show =3D eppid_show; - battery_hook_register(&data->hook); - - return devm_add_action_or_reset(&data->wdev->dev, dell_wmi_ddv_battery_re= move, &data->hook); + return devm_battery_hook_register(&data->wdev->dev, &data->hook); } static int dell_wmi_ddv_buffer_read(struct seq_file *seq, enum dell_ddv_me= thod method) -- 2.39.5 From nobody Sun Feb 8 18:57:20 2026 Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C7FB81DB924; Wed, 5 Mar 2025 05:30:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741152630; cv=none; b=kXJ8skViQ0KTnaXUd0YFzkSRjScAtUAuyLyQeqrxwV08wtN/QDztoFFG0r9jQrpRCf6ZM5KjRvm73k5hdPdcNKTUf3XbzZxhBZ/+J00W6nT8uS/fvXbTIS5OKnYbzvZeJkYdypBV2vXjG8Lp+o4U4ezSG6a5YRGZ/QEHu29dmug= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741152630; c=relaxed/simple; bh=QoYw3EV2PTQQEHPlv4pDNm31tpLdrgmMIQezAA0ysFg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=mmx0EjPBOuOwM2+fk2h+Yl0kthwUjKFQ+KlgTKJRXzp15Q5s+IXOssIkGVPRkH4HazrDoTFwkCY8CIzfal9ctFJjYKbG3aQaa/X4qqduxCSt5EBE35bQDymnOcb8zM1Sn7+JDyANiTU7vUqSrxPYEr0vKLzRC+gyvmPtlkDFGj4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b=ki0lEhz6; arc=none smtp.client-ip=212.227.15.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b="ki0lEhz6" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1741152624; x=1741757424; i=w_armin@gmx.de; bh=qiYfmLTFay8BFeSgQBCeWuSFU5BJ2TAwpkl8owzumx8=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=ki0lEhz6AhPUIDaMOsKv6R1KZbRgcpxw+Os0jCCv/a9MW/KqLxxmbqqaPo9GrfYm rD66fkcVwPaDHk0Ba8MKy6P6pbcpC1JvKHLLKDObgJ4frPd0cjOqPDi/guN8QxvHi QIdyPiNW9+GDktBra3Mnc+cfu8ZLIH/g81Bq/T4Vlx3QQKJ3Yu3J6HjsIHAMmaN4X YZNhp+crhuArAad8Uc1zzMBlhLPGSv0eudnVTk3Oiv1GJYuRiwMr88BYIQ55miQXS r3IeZMCgXMg1cdmDxk5s+QLvgPSF7i7e8cnyO9XMRa5YxkhlLVZTJiyjc6JxPFdkO 5bWUK9fhzDViFuBS3w== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from mx-amd-b650.fritz.box ([87.177.78.219]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N17UW-1t97Yb36Wg-00vqf7; Wed, 05 Mar 2025 06:30:24 +0100 From: Armin Wolf To: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com, sre@kernel.org Cc: platform-driver-x86@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/3] platform/x86: dell-ddv: Use the power supply extension mechanism Date: Wed, 5 Mar 2025 06:30:09 +0100 Message-Id: <20250305053009.378609-4-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250305053009.378609-1-W_Armin@gmx.de> References: <20250305053009.378609-1-W_Armin@gmx.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:Nf9M9MaBNKOuPHI5xkQ87fIO7LtPgVmw4Mw0qsu38SEo4jGdBG1 5rD7nJ0O+gGjQfjKiWvhA3TCzGEL9MDQ2gEBl6ciIEfLRsi0aoRPG2gh8+7piL1BIpLtWAY 1S4j+v7KLv5Kf95PX+V63KyCmTdsCo9TP5+ptdfjZlX3FZzBptIqZblytdwCd6IG23WqQhR fIwOICg+Eh7rioHv5phGw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:8/lsEW3TzyY=;udIEPtmDdIunPZPUwal8wMeh++z 9a4bKnX/tlW5MxBax9pTU53oMXSjUbYU+6zJCJpwmknrGzQivskhXjYC1V5MMR3W8KUvIDFKf kaqY4jxxbO1hgVrRmTaHyWsEJNJFdA1W+9Ijie6tqkDhqtlOVu4hsC5Y6BuvV/Py5vLHQajiX ASqGwjcZl3oKc525jGwCJTpSE607pkmV0oly9pmlxhKsaKutLASstb/dH7cnXIHGcihxHeMll 8GP0T9uyeUXh8KKUbCuoNwInBieRBOHKHpxmTvcoESDuOFmJNZZGUF/38dnZHVXN6Tm6R5GLG 5eUjnV7MVCHdu9nK4ndBK7+Z3Ok6gc5P/dx6xkMjHkPlY0AAkPSDljNHpB/rSF+b/EIqNlIU6 JNBISipy/DQ8sFEgiCNibOa9ck+s/oimLF/RI8u3Ueo228ejewZwxhU3l74tm/IKUFY5ARugg QmO2LTpCIVI61xysj3T0bSidT3d0CZ5CMNgfMCvo3ZBejOkpsqJgouFoDV/1j0zcmgFdT5LY9 nvEiLLtN1SLE7m1EiOkj3oLBswT8T1QtgUagmtEVqXhTt1lc1bQfWqGjvIj9eeI+QCpwmAT1z 1jNWRmZsHVZn6vCJTSt2IYB27IC8lmSJOyTYMv0zfiB2rsOmQOuOxEdYIv/4O5e2MFkdXEBY9 RGfj0HsjL5vQRJBBZjHO3o6vu1tRHu682OC403Vr98KDDiNA0jDu4QTre+cebHPdF6lIEAVrR UKAWFFzfSnpsYWoh/2dLtwR2ChN/uPzzHtrQfW5/xtx+gmMK4MQWsymsy4prU/eAZ9Nlf+2/l Sd1LQ6FnWZlBI8m1neKl6UR4hLkPCCL9Tl8lkB5D/R6uddXSdKJ1bm0ZIV9jPLXzRITeAGMtL ZcfsIixU8lufjIxrvlJa9sXhB5rjpqdXyXDvybLPdzohw++5H5E98/8/SqPNRXQAcdjT8hLkT U7JrgVC6sYwR+jbUcl79iGz3w6fJSI8nm6s4yebip+zFTvoDmKJuAwbNTLE5FdaTD/dROx72V XfLHNwynGKkGtvGRl8JsFeuaqYmsrdrHGL7zwT1bQnApbulOlH4bfHVqZfZpNPDKELimz2dUW OivKhrKFTR+nOyxLW3+AKPNpfh571iUg+cUAJG16XiKNMR1bAPDZ9MEmMHlR9SAp0b6YdelnL Adn4Jdy/QhflE0lt3vR8f8ldGG8l+ec4E/yy3Cn8NTXb4rtnPStWedHD1+6O0o/ufCS2YlL9y eaELwxszruDDGVWy3a0AzRwvoXkd7wHFiEakuEu7W3SMTzmsBomkiGGufKr/ayNqLiGTq9Q3H cqSzG3AdjoM2T5ZB5ymhqBOLZ9/MrOXNHjTBWzONCWqJSYZCCbOclNDyocaGFD6yXkVm21Ur5 c/JtWhTqkB0DPysXTesjlPgyy1J1FWM2oKLdsLtfI6TaOnRh22lB5OWsu3 Content-Type: text/plain; charset="utf-8" Use the power supply extension mechanism for registering the battery temperature properties so that they can show up in the hwmon device associated with the ACPI battery. Signed-off-by: Armin Wolf Reviewed-by: Sebastian Reichel --- drivers/platform/x86/dell/dell-wmi-ddv.c | 75 ++++++++++++++---------- 1 file changed, 45 insertions(+), 30 deletions(-) diff --git a/drivers/platform/x86/dell/dell-wmi-ddv.c b/drivers/platform/x8= 6/dell/dell-wmi-ddv.c index 811cddab57fc..f27739da380f 100644 --- a/drivers/platform/x86/dell/dell-wmi-ddv.c +++ b/drivers/platform/x86/dell/dell-wmi-ddv.c @@ -104,7 +104,6 @@ struct dell_wmi_ddv_sensors { struct dell_wmi_ddv_data { struct acpi_battery_hook hook; - struct device_attribute temp_attr; struct device_attribute eppid_attr; struct dell_wmi_ddv_sensors fans; struct dell_wmi_ddv_sensors temps; @@ -651,26 +650,6 @@ static int dell_wmi_ddv_battery_index(struct acpi_devi= ce *acpi_dev, u32 *index) return kstrtou32(uid_str, 10, index); } -static ssize_t temp_show(struct device *dev, struct device_attribute *attr= , char *buf) -{ - struct dell_wmi_ddv_data *data =3D container_of(attr, struct dell_wmi_ddv= _data, temp_attr); - u32 index, value; - int ret; - - ret =3D dell_wmi_ddv_battery_index(to_acpi_device(dev->parent), &index); - if (ret < 0) - return ret; - - ret =3D dell_wmi_ddv_query_integer(data->wdev, DELL_DDV_BATTERY_TEMPERATU= RE, index, &value); - if (ret < 0) - return ret; - - /* Use 2732 instead of 2731.5 to avoid unnecessary rounding and to emulate - * the behaviour of the OEM application which seems to round down the res= ult. - */ - return sysfs_emit(buf, "%d\n", value - 2732); -} - static ssize_t eppid_show(struct device *dev, struct device_attribute *att= r, char *buf) { struct dell_wmi_ddv_data *data =3D container_of(attr, struct dell_wmi_ddv= _data, eppid_attr); @@ -697,6 +676,46 @@ static ssize_t eppid_show(struct device *dev, struct d= evice_attribute *attr, cha return ret; } +static int dell_wmi_ddv_get_property(struct power_supply *psy, const struc= t power_supply_ext *ext, + void *drvdata, enum power_supply_property psp, + union power_supply_propval *val) +{ + struct dell_wmi_ddv_data *data =3D drvdata; + u32 index, value; + int ret; + + ret =3D dell_wmi_ddv_battery_index(to_acpi_device(psy->dev.parent), &inde= x); + if (ret < 0) + return ret; + + switch (psp) { + case POWER_SUPPLY_PROP_TEMP: + ret =3D dell_wmi_ddv_query_integer(data->wdev, DELL_DDV_BATTERY_TEMPERAT= URE, index, + &value); + if (ret < 0) + return ret; + + /* Use 2732 instead of 2731.5 to avoid unnecessary rounding and to emula= te + * the behaviour of the OEM application which seems to round down the re= sult. + */ + val->intval =3D value - 2732; + return 0; + default: + return -EINVAL; + } +} + +static const enum power_supply_property dell_wmi_ddv_properties[] =3D { + POWER_SUPPLY_PROP_TEMP, +}; + +static const struct power_supply_ext dell_wmi_ddv_extension =3D { + .name =3D DRIVER_NAME, + .properties =3D dell_wmi_ddv_properties, + .num_properties =3D ARRAY_SIZE(dell_wmi_ddv_properties), + .get_property =3D dell_wmi_ddv_get_property, +}; + static int dell_wmi_ddv_add_battery(struct power_supply *battery, struct a= cpi_battery_hook *hook) { struct dell_wmi_ddv_data *data =3D container_of(hook, struct dell_wmi_ddv= _data, hook); @@ -708,13 +727,14 @@ static int dell_wmi_ddv_add_battery(struct power_supp= ly *battery, struct acpi_ba if (ret < 0) return 0; - ret =3D device_create_file(&battery->dev, &data->temp_attr); + ret =3D device_create_file(&battery->dev, &data->eppid_attr); if (ret < 0) return ret; - ret =3D device_create_file(&battery->dev, &data->eppid_attr); + ret =3D power_supply_register_extension(battery, &dell_wmi_ddv_extension,= &data->wdev->dev, + data); if (ret < 0) { - device_remove_file(&battery->dev, &data->temp_attr); + device_remove_file(&battery->dev, &data->eppid_attr); return ret; } @@ -726,8 +746,8 @@ static int dell_wmi_ddv_remove_battery(struct power_sup= ply *battery, struct acpi { struct dell_wmi_ddv_data *data =3D container_of(hook, struct dell_wmi_ddv= _data, hook); - device_remove_file(&battery->dev, &data->temp_attr); device_remove_file(&battery->dev, &data->eppid_attr); + power_supply_unregister_extension(battery, &dell_wmi_ddv_extension); return 0; } @@ -738,11 +758,6 @@ static int dell_wmi_ddv_battery_add(struct dell_wmi_dd= v_data *data) data->hook.add_battery =3D dell_wmi_ddv_add_battery; data->hook.remove_battery =3D dell_wmi_ddv_remove_battery; - sysfs_attr_init(&data->temp_attr.attr); - data->temp_attr.attr.name =3D "temp"; - data->temp_attr.attr.mode =3D 0444; - data->temp_attr.show =3D temp_show; - sysfs_attr_init(&data->eppid_attr.attr); data->eppid_attr.attr.name =3D "eppid"; data->eppid_attr.attr.mode =3D 0444; -- 2.39.5