From patchwork Mon May 8 20:42:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Armin Wolf X-Patchwork-Id: 91281 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2424191vqo; Mon, 8 May 2023 13:55:09 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ71PCI1NfOmTI/a+iyBK1tVXDP4e2noQXCg59HDLRguhE6pWvNSKElAvwkbWbiRCxBxaNR8 X-Received: by 2002:a17:902:d48d:b0:1ac:66c4:6071 with SMTP id c13-20020a170902d48d00b001ac66c46071mr9047839plg.57.1683579308711; Mon, 08 May 2023 13:55:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683579308; cv=none; d=google.com; s=arc-20160816; b=w6u5Rn28jNWriGWHrUjuUzpXK0xHzf2Tk2rYE+KKCagNVKt2eyv3HiGWIT7ZT0IE1Y lwqnRalH5mFYQzEvn4S3E/zNHznncw8f0k+ipzC+oz/bPT7J7Cm2s+WWw4yeaFb3XwG3 JsUthBvSoeSG4I9HeU+oPLa/uNLCuQaelA2g+lowBj8GPO7/mWkAdWxKCvQK/3GIm8iJ c5QjseACqTAp4dqzStSrrmp/2VGSo3BUAK7Um/ENKbyRMy7Qw48+bU10JoZ/ZrIDP3R/ Unc4nDMVO61IiXha0jVpWpPvzlFlUep2CY+bR91T3PApOo1bdExiGCJNISBjJie65e+W OKKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:ui-outboundreport:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:dkim-signature; bh=Szu3h7dgUFzo00UZmMk6bEMk1fxnP01/0QeUaHSZytQ=; b=lscO8pDMplOEvNCVd+0XYglTi10T61uCifCnFVG+U675Oc3XhBXvyv/inPXukFEF94 1DMuIYKtJIszBLla5zRKbQ4F0A3ZZGt32jygw9oKptu+fxOQ6fsUn1rWjsYjeUTQKY9x 8OcPZMs2DcWF/LQ0zbcnqpk40iTB8b0eM1wYHakNQafhCWUxPttr6++kCJotuvSTe8Js NfZ7zSs2IZ5BLRMia9x9QOQ4Dbx6gSbcrEE92fo446os6WjfAyvRNdV2eDa0by6DRLu/ i2Jc8M3f9rLnpIbSHp98oLZzPj6VuhhGx75GPohm9hZdKPftoZuNdBdOwvjOQoYG6wB7 uHyQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=VFYujoSh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmx.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n7-20020a170902d2c700b0019f33cb669asi9740224plc.615.2023.05.08.13.54.55; Mon, 08 May 2023 13:55:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=VFYujoSh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmx.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232904AbjEHUnP (ORCPT + 99 others); Mon, 8 May 2023 16:43:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40618 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233750AbjEHUnE (ORCPT ); Mon, 8 May 2023 16:43:04 -0400 Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 56B9B40D5; Mon, 8 May 2023 13:43:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1683578567; i=w_armin@gmx.de; bh=5FkaZOklJCtqx+aZryMgWJ+wy4GMLL9+7AVm8Osp+NQ=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=VFYujoShqjksEAQUqLhecReVN6BYeKgJheEhVbUSj1mno4LTUqLw7z5V7cIlX/3E6 v/u33TV7LBBAv9ZbJSp+qlUQdJxr3BCWQh6FsstPTabaOGzfrHXBIi0MyX/eKsY0p3 9G9+eNnuTfI0IpQMcXc30+YibQLv3m6d+IW/d2zyPlobfF/mtV4Fu+CcdUg9i/lp3O STqSIhF30ZW8bWtVOX0B9Ylip4PAQqDT5tpUUY/4yfQIja20a9HOfnAt7+uoGA3jEJ DANqYFw+ar715OeUYUAhKlbpN77LcEglcOI7Baorknfl/eN+W/cOXXIV8Z5EQx1G4q XejUeRetnG+bQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from esprimo-mx.users.agdsn.de ([141.30.226.129]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Mz9Ux-1q9eAm0LAJ-00wIJm; Mon, 08 May 2023 22:42:47 +0200 From: Armin Wolf To: hdegoede@redhat.com, markgross@kernel.org Cc: corbet@lwn.net, bagasdotme@gmail.com, platform-driver-x86@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/2] platform/x86: dell-ddv: Add documentation Date: Mon, 8 May 2023 22:42:40 +0200 Message-Id: <20230508204241.11076-1-W_Armin@gmx.de> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 X-Provags-ID: V03:K1:3VnYjAvHlFXIZa2+c7G+RGYSDf6+2Hk0sXzQ5eIZ2t4gZ5K8CXu Kdhf1P0X5dYAPwZJSqepjwPuzfbfUyVc9hUqJW9OLiV4riSYV7XNTTTlEAMQILW2lMvVFwC Qnlz0nRAi0TpK2hdGmt0fSJFSZz64JF+bd+TQ3/ImyDCrdKyGWYoxTVtqm1wB5ZlhflCHuq GnaiLkXihwqut8GlonMEQ== UI-OutboundReport: notjunk:1;M01:P0:m7R8BRSprBY=;KhPyGRqKioUw3To/R7nNuuatG9W 7Yu6npnHbjC0sA7f5UV6z4csmc2vNtD9Rr4D/7Y3NHLhsiSSVZ9ttCK/fjBC1m+XVHJeVmyf2 38uvMGiivemxmwORvoVf8H8zL6atNekFKyga8JdYXQQKW/9H12SWVIFLUcAaOymMC5dDqDMmx 4ZZBj+wF+OvaI+YKJVMF5eIzK5TFqqe2gUoAHCZzxiKgiluBNbtEl0GVNEQoYa31lx2ntBCcX N9FgfM/7y3WZXhHIjS2ULrmYVE/Qji0FXRBPJ5H7VlrFi1OqwjwTM/lF6UD0eWhdTDMWB58fd YoxSMRDUc5dFdsQH3J4OjQf5jcRcO0eUhnm5zEMBIwRyB4G8CaM1AhGakuv2KLY+zICgCZ37F 366+QdZ7G1znf6wF/ugeZxLa3YGXKBQeasYEkreVN8h7AGDazfSHK9FVoB1zxIbAzvriLxIkG eSL0eWPF84F4KIassJSJsXTYuzZD67Hj1gzKY21PAFC5GiFX2TpnTHXtVryT4pVRX0RjfacD/ h7Hea/hdhavRK4mofkhvUJxRqEw8hiZESpW1c5oBy7/JpHYCXLs6NKJsCybg+DMMAZbRLHt6m rSkz3oWfg0XuwMzqznO99+rYPtL3PNkH0NdOfGk5Eg+fb8Vtma9L1xP6yrfh/l91XPP8viX20 Wve+TeV6HNDanJAdNuaBkV8BC4cHqCs8dsuZAmkqUta+Mr7F8rMO75CiB/99p+bCoS3UJLvsJ cB2esTg0Y4/drR9MIyfIjClyU9DbPVHhLGe4NSHmIfw5qCu3pmVrKoXTu2+cyqA1b/a1xJYtX nKFBX2qhW5kzS+cvVJ+t7ZtXUpNByiNmdWa2OoiWjxtxLJiu/XSJYRRGuP15GCuwiqTX1k1FE Wil20S+Q+tbpbrIJY/IYE/bEjlk3yd6NzKS4+7lIYGXHKNTI6p7nKM9nw2qPRpWeExb4noWsR yCXJYAIvOxDNWWDaZixcSi2vqQo= X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765360857188434398?= X-GMAIL-MSGID: =?utf-8?q?1765360857188434398?= The WMI interface used by the dell-wmi-ddv driver contains many methods which are currently unused, making it difficult to document these inside the drivers source code. Create the necessary documentation based on current knowledge so that all details of the WMI interface can be written down for later use. Signed-off-by: Armin Wolf --- Changes in v2: - mark note regarding the unknown byte inside the thermal sensor entry as TODO - mention Documentation/admin-guide/reporting-issues.rst --- Documentation/wmi/devices/dell-wmi-ddv.rst | 296 +++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 297 insertions(+) create mode 100644 Documentation/wmi/devices/dell-wmi-ddv.rst -- 2.30.2 diff --git a/Documentation/wmi/devices/dell-wmi-ddv.rst b/Documentation/wmi/devices/dell-wmi-ddv.rst new file mode 100644 index 000000000000..d8aa64e9c827 --- /dev/null +++ b/Documentation/wmi/devices/dell-wmi-ddv.rst @@ -0,0 +1,296 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +============================================ +Dell DDV WMI interface driver (dell-wmi-ddv) +============================================ + +Introduction +============ + +Many Dell notebooks made after ~2020 support a WMI-based interface for +retrieving various system data like battery temperature, ePPID, diagostic data +and fan/thermal sensor data. + +This interface is likely used by the `Dell Data Vault` software on Windows, +so it was called `DDV`. Currently the ``dell-wmi-ddv`` driver supports +version 2 and 3 of the interface, with support for new interface versions +easily added. + +.. warning:: The interface is regarded as internal by Dell, so no vendor + documentation is available. All knowledge was thus obtained by + trial-and-error, please keep that in mind. + +Dell ePPID (electronic Piece Part Identification) +================================================= + +The Dell ePPID is used to uniquely identify components in Dell machines, +including batteries. It has a form similar to `CC-PPPPPP-MMMMM-YMD-SSSS-FFF` +and contains the following information: + +* Country code of origin (CC). +* Part number with the first character being a filling number (PPPPPP). +* Manufacture Identification (MMMMM). +* Manufacturing Year/Month/Date (YMD) in base 36, with Y being the last digit + of the year. +* Manufacture Sequence Number (SSSS). +* Optional Firmware Version/Revision (FFF). + +The `eppidtool `_ python utility can be used +to decode and display this information. + +All information regarding the Dell ePPID was gathered using Dell support +documentation and `this website `_. + +WMI interface description +========================= + +The WMI interface description can be decoded from the embedded binary MOF (bmof) +data using the `bmfdec `_ utility: + +:: + + [WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("WMI Function"), guid("{8A42EA14-4F2A-FD45-6422-0087F7A7E608}")] + class DDVWmiMethodFunction { + [key, read] string InstanceName; + [read] boolean Active; + + [WmiMethodId(1), Implemented, read, write, Description("Return Battery Design Capacity.")] void BatteryDesignCapacity([in] uint32 arg2, [out] uint32 argr); + [WmiMethodId(2), Implemented, read, write, Description("Return Battery Full Charge Capacity.")] void BatteryFullChargeCapacity([in] uint32 arg2, [out] uint32 argr); + [WmiMethodId(3), Implemented, read, write, Description("Return Battery Manufacture Name.")] void BatteryManufactureName([in] uint32 arg2, [out] string argr); + [WmiMethodId(4), Implemented, read, write, Description("Return Battery Manufacture Date.")] void BatteryManufactureDate([in] uint32 arg2, [out] uint32 argr); + [WmiMethodId(5), Implemented, read, write, Description("Return Battery Serial Number.")] void BatterySerialNumber([in] uint32 arg2, [out] uint32 argr); + [WmiMethodId(6), Implemented, read, write, Description("Return Battery Chemistry Value.")] void BatteryChemistryValue([in] uint32 arg2, [out] string argr); + [WmiMethodId(7), Implemented, read, write, Description("Return Battery Temperature.")] void BatteryTemperature([in] uint32 arg2, [out] uint32 argr); + [WmiMethodId(8), Implemented, read, write, Description("Return Battery Current.")] void BatteryCurrent([in] uint32 arg2, [out] uint32 argr); + [WmiMethodId(9), Implemented, read, write, Description("Return Battery Voltage.")] void BatteryVoltage([in] uint32 arg2, [out] uint32 argr); + [WmiMethodId(10), Implemented, read, write, Description("Return Battery Manufacture Access(MA code).")] void BatteryManufactureAceess([in] uint32 arg2, [out] uint32 argr); + [WmiMethodId(11), Implemented, read, write, Description("Return Battery Relative State-Of-Charge.")] void BatteryRelativeStateOfCharge([in] uint32 arg2, [out] uint32 argr); + [WmiMethodId(12), Implemented, read, write, Description("Return Battery Cycle Count")] void BatteryCycleCount([in] uint32 arg2, [out] uint32 argr); + [WmiMethodId(13), Implemented, read, write, Description("Return Battery ePPID")] void BatteryePPID([in] uint32 arg2, [out] string argr); + [WmiMethodId(14), Implemented, read, write, Description("Return Battery Raw Analytics Start")] void BatteryeRawAnalyticsStart([in] uint32 arg2, [out] uint32 argr); + [WmiMethodId(15), Implemented, read, write, Description("Return Battery Raw Analytics")] void BatteryeRawAnalytics([in] uint32 arg2, [out] uint32 RawSize, [out, WmiSizeIs("RawSize") : ToInstance] uint8 RawData[]); + [WmiMethodId(16), Implemented, read, write, Description("Return Battery Design Voltage.")] void BatteryDesignVoltage([in] uint32 arg2, [out] uint32 argr); + [WmiMethodId(17), Implemented, read, write, Description("Return Battery Raw Analytics A Block")] void BatteryeRawAnalyticsABlock([in] uint32 arg2, [out] uint32 RawSize, [out, WmiSizeIs("RawSize") : ToInstance] uint8 RawData[]); + [WmiMethodId(18), Implemented, read, write, Description("Return Version.")] void ReturnVersion([in] uint32 arg2, [out] uint32 argr); + [WmiMethodId(32), Implemented, read, write, Description("Return Fan Sensor Information")] void FanSensorInformation([in] uint32 arg2, [out] uint32 RawSize, [out, WmiSizeIs("RawSize") : ToInstance] uint8 RawData[]); + [WmiMethodId(34), Implemented, read, write, Description("Return Thermal Sensor Information")] void ThermalSensorInformation([in] uint32 arg2, [out] uint32 RawSize, [out, WmiSizeIs("RawSize") : ToInstance] uint8 RawData[]); + }; + +Each WMI method takes an ACPI buffer containing a 32-bit index as input argument, +with the first 8 bit being used to specify the battery when using battery-related +WMI methods. Other WMI methods may ignore this argument or interpret it +differently. The WMI method output format varies: + +* if the function has only a single output, then an ACPI object + of the corresponding type is returned +* if the function has multiple outputs, when an ACPI package + containing the outputs in the same order is returned + +The format of the output should be thoroughly checked, since many methods can +return malformed data in case of an error. + +The data format of many battery-related methods seems to be based on the +`Smart Battery Data Specification`, so unknown battery-related methods are +likely to follow this standard in some way. + +WMI method GetBatteryDesignCapacity() +------------------------------------- + +Returns the design capacity of the battery in mAh as an u16. + +WMI method BatteryFullCharge() +------------------------------ + +Returns the full charge capacity of the battery in mAh as an u16. + +WMI method BatteryManufactureName() +----------------------------------- + +Returns the manufacture name of the battery as an ASCII string. + +WMI method BatteryManufactureDate() +----------------------------------- + +Returns the manufacture date of the battery as an u16. +The date is encoded in the following manner: + +- bits 0 to 4 contain the manufacture day. +- bits 5 to 8 contain the manufacture month. +- bits 9 to 15 contain the manufacture year biased by 1980. + +.. note:: + The data format needs to be verified on more machines. + +WMI method BatterySerialNumber() +-------------------------------- + +Returns the serial number of the battery as an u16. + +WMI method BatteryChemistryValue() +---------------------------------- + +Returns the chemistry of the battery as an ASCII string. +Known values are: + +- "Li-I" for Li-Ion + +WMI method BatteryTemperature() +------------------------------- + +Returns the temperature of the battery in tenth degree kelvin as an u16. + +WMI method BatteryCurrent() +--------------------------- + +Returns the current flow of the battery in mA as an s16. +Negative values indicate discharging. + +WMI method BatteryVoltage() +--------------------------- + +Returns the voltage flow of the battery in mV as an u16. + +WMI method BatteryManufactureAccess() +------------------------------------- + +Returns a manufacture-defined value as an u16. + +WMI method BatteryRelativeStateOfCharge() +----------------------------------------- + +Returns the capacity of the battery in percent as an u16. + +WMI method BatteryCycleCount() +------------------------------ + +Returns the cycle count of the battery as an u16. + +WMI method BatteryePPID() +------------------------- + +Returns the ePPID of the battery as an ASCII string. + +WMI method BatteryeRawAnalyticsStart() +-------------------------------------- + +Performs an analysis of the battery and returns a status code: + +- ``0x0``: Success +- ``0x1``: Interface not supported +- ``0xfffffffe``: Error/Timeout + +.. note:: + The meaning of this method is still largely unknown. + +WMI method BatteryeRawAnalytics() +--------------------------------- + +Returns a buffer usually containg 12 blocks of analytics data. +Those blocks contain: +- block number starting with 0 (u8) +- 31 bytes of unknown data + +.. note:: + The meaning of this method is still largely unknown. + +WMI method BatteryDesignVoltage() +--------------------------------- + +Returns the design voltage of the battery in mV as an u16. + +WMI method BatteryeRawAnalyticsABlock() +--------------------------------------- + +Returns a single block of analytics data, with the second byte +of the index being used for selecting the block number. + +*Supported since WMI interface version 3!* + +.. note:: + The meaning of this method is still largely unknown. + +WMI method ReturnVersion() +-------------------------- + +Returns the WMI interface version as an u32. + +WMI method FanSensorInformation() +--------------------------------- + +Returns a buffer containg fan sensor entries, terminated +with a single ``0xff``. +Those entries contain: + +- fan type (u8) +- fan speed in RPM (little endian u16) + +WMI method ThermalSensorInformation() +------------------------------------- + +Returns a buffer containing thermal sensor entries, terminated +with a single ``0xff``. +Those entries contain: + +- thermal type (u8) +- current temperature (s8) +- min. temperature (s8) +- max. temperature (s8) +- unknown field (u8) + +.. note:: + TODO: Find out what the meaning of the last byte is. + +ACPI battery matching algorithm +=============================== + +The algorithm used to match ACPI batteries to indices is based on information +which was found inside the logging messages of the OEM software. + +Basically for each new ACPI battery, the serial numbers of the batteries behind +indices 1 till 3 are compared with the serial number of the ACPI battery. +Since the serial number of the ACPI battery can either be encoded as a normal +integer or as a hexadecimal value, both cases need to be checked. The first +index with a matching serial number is then selected. + +A serial number of 0 indicates that the corresponding index is not associated +with an actual battery, or that the associated battery is not present. + +Some machines like the Dell Inspiron 3505 only support a single battery and thus +ignore the battery index. Because of this the driver depends on the ACPI battery +hook mechanism to discover batteries. + +.. note:: + The ACPI battery matching algorithm currently used inside the driver is + outdated and does not match the algorithm described above. The reasons for + this are differences in the handling of the ToHexString() ACPI opcode between + Linux and Windows, which distorts the serial number of ACPI batteries on many + machines. Until this issue is resolved, the driver cannot use the above + algorithm. + +Reverse-Engineering the DDV WMI interface +========================================= + +1. Find a supported Dell notebook, usually made after ~2020. +2. Dump the ACPI tables and search for the WMI device (usually called "ADDV"). +3. Decode the corresponding bmof data and look at the ASL code. +4. Try to deduce the meaning of a certain WMI method by comparing the control + flow with other ACPI methods (_BIX or _BIF for battery related methods + for example). +5. Use the built-in UEFI diagostics to view sensor types/values for fan/thermal + related methods (sometimes overwriting static ACPI data fields can be used + to test different sensor type values, since on some machines this data is + not reinitialized upon a warm reset). + +Alternatively: + +1. Load the ``dell-wmi-ddv`` driver, use the ``force`` module param + if necessary. +2. Use the debugfs interface to access the raw fan/thermal sensor buffer data. +3. Compare the data with the built-in UEFI diagnostics. + +In case the DDV WMI interface version available on your Dell notebook is not +supported or you are seeing unknown fan/thermal sensors, please submit a +bugreport on `bugzilla `_ so they can be added +to the ``dell-wmi-ddv`` driver. + +See Documentation/admin-guide/reporting-issues.rst for further information. diff --git a/MAINTAINERS b/MAINTAINERS index 4d5b1f6d77f6..66e4eabaf972 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -5804,6 +5804,7 @@ M: Armin Wolf S: Maintained F: Documentation/ABI/testing/debugfs-dell-wmi-ddv F: Documentation/ABI/testing/sysfs-platform-dell-wmi-ddv +F: Documentation/wmi/devices/dell-wmi-ddv.rst F: drivers/platform/x86/dell/dell-wmi-ddv.c DELL WMI SYSMAN DRIVER From patchwork Mon May 8 20:42:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Armin Wolf X-Patchwork-Id: 91280 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2423910vqo; Mon, 8 May 2023 13:54:26 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5HDyPtZPNugjczKrSxqQYe1pmTSnh6RhNDfX2Q365SWoE3F9bG2tOWeghM5lL6Er4CfN9P X-Received: by 2002:a17:90b:8c2:b0:24e:1f14:991e with SMTP id ds2-20020a17090b08c200b0024e1f14991emr11844380pjb.36.1683579266140; Mon, 08 May 2023 13:54:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683579266; cv=none; d=google.com; s=arc-20160816; b=FVbrmE79JIbVfDhd5IrAJj+9BG7QkZIn6TsLcKOdSDmPdZUJl6m1ixjmufNDEM4XDQ BpGE35wWwiSVqZGfz18PypW+Td3YXI6YHfj2Mz0Q1v3Hm+j0+caKZPnG5xvWyBNa9ysK ACAdNIIz4i2mbSMPEGWm39vp1s0VlehgLKPStmfF1Rk9P9wzBBiQ0DhnKTPhLO/TkWQr +DySyfTp4RN1+ccwpyBaRfyn2fY1mEwM349fTKY2tAlcN6NAoLbd79BY0QwGpe2CI++f KfxLVHr9MKT/uNVRzuhfZbTJBEI4v0vXnnOwF7007qlx/Y2pr8C+6YBo2fdd6jt/EgGv rYCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:ui-outboundreport:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=sHg9p0vVSP9u9gJLwey5JL+h7YB490621UBQFApzqEY=; b=QzyG8PgEw+9CiwUe8vV2UTINpPHQ3sRvC321LdEhiEkZogbOy4H2AhlW+GEzrlAHBT KSJW2f730Bq9SYrRgO082zxj7IgTPscQWIRdNUJ0oSJoRjENtMQIMNclP5b0R0EGx1pO C3LEwa8JUZBeR3YoeQD6oW/DY/8fHKNQYF7N6bihadK1HltKDCPZxJWzVhzSJaropsbx POPww7AbDsXBD9IMkx2umO8B+yhNwz90Wk/VahIQlpjfr6i8MWS941jgINsDISpFOyxZ 6dNRk1OZY5XPEvmUL6FOJeIN8AXpLHFg3BraA1UxIjQDo24bIK9EQHwtQkIPsk/qid9y kdgA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=qyb3wcbT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmx.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h2-20020a17090a2ec200b0024981e98175si24459970pjs.75.2023.05.08.13.54.12; Mon, 08 May 2023 13:54:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=qyb3wcbT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmx.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233756AbjEHUnN (ORCPT + 99 others); Mon, 8 May 2023 16:43:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40616 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233746AbjEHUnD (ORCPT ); Mon, 8 May 2023 16:43:03 -0400 Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6B84A1BF5; Mon, 8 May 2023 13:43:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1683578569; i=w_armin@gmx.de; bh=r5HXSxnx/KjqPNJSP3WGgf4fjTPaNtfHHpZ6K3D7eHM=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=qyb3wcbTOzAwJp9xmKDuCHXHgu0NYF4jtQB8TNphx+041gdBYomz8jAI4//JsqGos raQGfWANAOdkY/Z60igCVKIj5FnCOg88D4WNzv1tHmFoK8gnu+XqkA8Q009qEBFxvn vjlvdDwRFQ+S/iWklu5re3uxFQ9prD66nj2gwIJxaoY1Sj465S1TVxBgGzIrqheS4K S1shXypTFm29vVcGjNPW8DkV7svV/jRtbtQ009fzyMXkQ8ijXYLGWC+csPD0fA1Wl3 6H4xbmTWsV74eTP4JR+m/BZ+ONf95vU/ViDNuAb7JSC+XZjN2xPUQV/24xBOT9HcXi TdBLr9iqWGGAw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from esprimo-mx.users.agdsn.de ([141.30.226.129]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MybGh-1q7zDJ45OP-00yx1r; Mon, 08 May 2023 22:42:49 +0200 From: Armin Wolf To: hdegoede@redhat.com, markgross@kernel.org Cc: corbet@lwn.net, bagasdotme@gmail.com, platform-driver-x86@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/2] platform/x86: dell-ddv: Update ABI documentation Date: Mon, 8 May 2023 22:42:41 +0200 Message-Id: <20230508204241.11076-2-W_Armin@gmx.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230508204241.11076-1-W_Armin@gmx.de> References: <20230508204241.11076-1-W_Armin@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:PtXvOwuzI8GBNkgvzFrOnQ4/FEfjNFHlXPicx/6QaagXY9XXcX9 rS8ckOYNAJQAddILazHDGZjKphrvVGWVT1XWVTvv/7JjO2ewbGnhzqL7Q1CuU1MGNzTNNtb 1mKBg4vCp0vrvKmdvybJOJ7RlZjL0tFbdc6U/g3Brj9frWkN0zAsC+DZgOdQty98cJGXZmT AD+dLNc9RQhrM9Zw8C47w== UI-OutboundReport: notjunk:1;M01:P0:s2XUhjDFoDA=;bGQjvKXQUKwYWW3MACdY8UPsDss qS7U8hAwayQQ4oXqshkRIgtufUbN0ZrqVA4+rrVk4kgeBQzIZl9cb5ulNqln1MKjK1UVk8f8S WWRhcHQH5AZKEnymXtLJKI73y3U7WUlv9Vg3Q6x8VN0ZYZjmTwrDZCtAXBuWEAWKj6LmEYONa nNkqpDP3p/EfL8tAE2kVLevlNui9WH1qHNPYWP5DwQ8ZZOD5RLarP9PMhSVjE7wifsyWVHVk3 qta8AD3tm/7MI1M8yvpBktmS+49PyxBFav8kxIw116GELYocngazcAWPdeGo38gDM37gfOW+8 tek62zI40ikUN7jf/qMeDDcuTSJ0mgfzg2hiNG3LvdsEpFEJOQQn6YG6SA/zf5Jk0DZRBzFiv /d8XfOBxgurikd5m02ZuY4BCAdlcDzZcu9mY8LHKZbvLtTEgM6r/dgiugldA3INoy2TntRwCM OprG9rYr7MKKDlxZtXD1+8WdUWvoIP4GytsY6/Z7WI59jEeOlkKoZKM/BnSQDNizjf4NPCiFB fp5/Hv3b1E4bax9V+9fP6oUDNmU4cYAl31awNSPDViEajrf/NtJ00fd0mwtTMcMY4FQGbYzRR zq4om2Ta1LAJGrDu1w4j7LePGYiSb2rCv2yh7yKdaBa5eFi1M+28EzTV9v6rDYQVwTI+CNuf6 dDTWQh8oPvowUEdf4QPdv8KIdQuHdCy6+zmLlut/x7QUUScF0gqxueT8m0WmZeSVL1aKp4/V1 J/s3UjnXYJmSwGZdbNRhD9d21IVSdOV27day1NyjQvbgPKjKcEvWsVkWEg1JpI8t7xUfeYEga WAsdopgIrMqA0vIhpGCEMhrqiwgPgJDgUnR2orumHnL14NR/xxddpZjn32EBxs/atUUARLf1k RXNPrWW8Q6P8VQ42dZ2lVqjhi4HGu0ecCv9adM8XGY481/35otgAbFCu0h94DnqIU70oF9r5s 2xnum7wwQ+yUX4qJy4b7OdYuAfw= X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765360812669833907?= X-GMAIL-MSGID: =?utf-8?q?1765360812669833907?= Synchronize the ABI documentation with the driver documentation and direct users to the latter in case the search for more detailed information. Signed-off-by: Armin Wolf --- Changes in v2: - None --- .../ABI/testing/debugfs-dell-wmi-ddv | 29 ++++++++++++++----- .../ABI/testing/sysfs-platform-dell-wmi-ddv | 4 ++- 2 files changed, 24 insertions(+), 9 deletions(-) -- 2.30.2 diff --git a/Documentation/ABI/testing/debugfs-dell-wmi-ddv b/Documentation/ABI/testing/debugfs-dell-wmi-ddv index fbcc5d6f7388..81cfc788be15 100644 --- a/Documentation/ABI/testing/debugfs-dell-wmi-ddv +++ b/Documentation/ABI/testing/debugfs-dell-wmi-ddv @@ -3,19 +3,32 @@ Date: September 2022 KernelVersion: 6.1 Contact: Armin Wolf Description: - This file contains the contents of the fan sensor information buffer, - which contains fan sensor entries and a terminating character (0xFF). + This file contains the contents of the fan sensor information + buffer, which contains fan sensor entries and a terminating + character (0xFF). - Each fan sensor entry consists of three bytes with an unknown meaning, - interested people may use this file for reverse-engineering. + Each fan sensor entry contains: + + - fan type (single byte) + - fan speed in RPM (two bytes, little endian) + + See Documentation/wmi/devices/dell-wmi-ddv.rst for details. What: /sys/kernel/debug/dell-wmi-ddv-/thermal_sensor_information Date: September 2022 KernelVersion: 6.1 Contact: Armin Wolf Description: - This file contains the contents of the thermal sensor information buffer, - which contains thermal sensor entries and a terminating character (0xFF). + This file contains the contents of the thermal sensor information + buffer, which contains thermal sensor entries and a terminating + character (0xFF). + + Each thermal sensor entry contains: + + - thermal type (single byte) + - current temperature (single byte) + - min. temperature (single byte) + - max. temperature (single byte) + - unknown field (single byte) - Each thermal sensor entry consists of five bytes with an unknown meaning, - interested people may use this file for reverse-engineering. + See Documentation/wmi/devices/dell-wmi-ddv.rst for details. diff --git a/Documentation/ABI/testing/sysfs-platform-dell-wmi-ddv b/Documentation/ABI/testing/sysfs-platform-dell-wmi-ddv index 1d97ad615c66..a9d39d9e8865 100644 --- a/Documentation/ABI/testing/sysfs-platform-dell-wmi-ddv +++ b/Documentation/ABI/testing/sysfs-platform-dell-wmi-ddv @@ -3,5 +3,7 @@ Date: September 2022 KernelVersion: 6.1 Contact: Armin Wolf Description: - Reports the Dell ePPID (electronic Dell Piece Part Identification) + Reports the Dell ePPID (electronic Piece Part Identification) of the ACPI battery. + + See Documentation/wmi/devices/dell-wmi-ddv.rst for details.