--- v6
+++ v1
@@ -1,3 +1,5 @@
+From: Jae Hyun Yoo <jae.hyun.yoo@intel.com>
+
Introduction of the Platform Environment Control Interface (PECI) bus
device driver. PECI is a one-wire bus interface that provides a
communication channel from Intel processors and chipset components to
@@ -72,119 +74,148 @@
Thanks,
--Jae
+Jae
+
+Changes since v8:
+- Refined descriptions in PECI device tree documents.
+- Fixed checking logic of supportable PECI commands using full revision
+ number.
+- Fixed DIB data size to u64 to make that can contain 8-bytes of information.
+- Changed PECI cdev names from pecix to peci-x where x is bus number.
+- Refined intel-peci-client driver and moved hwmon relating codes to
+ peci-hwmon.h.
+- Added missing core label strings into peci-cputemp driver.
+- Added kerneldoc comments.
+
+Changes since v7:
+- Fixed a typo in the MFD_INTEL_PECI_CLIENT description.
+- Made peci_unregister_device() NULL-aware.
+- Converted to using %pOF instead of node full name in peci-core.
+- Removed OF tables from peci-cputemp and peci-dimmtemp.
+- Removed of_compatible strings from intel-peci-client.
+- Added an access_ok() check into peci_ioctl in peci-core.
+- Changed the DT node name of peci simple-bus from 'peci' to 'bus'.
+
+Changes since v6:
+- Dropped off unnecessary examples from dt-bindings document.
+- Fixed a bug in DIMM index mask building logic.
+- Modified DIMM temp label strings to match with the way in BIOS.
+- Changed PECI ioctl base number from B6 to B7 to avoid conflict with
+ fpga-dfl.
+- Separated the PECI section in MAINTAINERS into two parts - PECI subsystem
+ and ASPEED PECI driver.
Changes since v5:
-* Added more detailed descriptions for PECI client MFD documents.
-* Changed PECI client MFD souce file names.
-* Fixed DT example of PECI client MFD.
-* Removed unnecessary debug printings.
-* Moved the asm/intel-family.h inclusion place.
+- Added more detailed descriptions for PECI client MFD documents.
+- Changed PECI client MFD souce file names.
+- Fixed DT example of PECI client MFD.
+- Removed unnecessary debug printings.
+- Moved the asm/intel-family.h inclusion place.
Changes since v4:
-* Fixed an incorrect endianness handling in peci-aspeed.
-* Added a comment to explain about the asm/intel-family.h inclusion.
-* Added an MFD module to support multi-function PECI client devices.
+- Fixed an incorrect endianness handling in peci-aspeed.
+- Added a comment to explain about the asm/intel-family.h inclusion.
+- Added an MFD module to support multi-function PECI client devices.
Changes since v3:
-* Made code more simple and compact.
-* Removed unused header file inclusion.
-* Fixed incorrect error return values and messages.
-* Removed DTS margin temperature from the peci-cputemp.
-* Made some magic numbers use defines.
-* Moved peci_get_cpu_id() into peci-core as a common function.
-* Replaced the cancel_delayed_work() call with a cancel_delayed_work_sync().
-* Replaced AST and Aspeed uses with ASPEED.
-* Simplified peci command timeout checking logic using
+- Made code more simple and compact.
+- Removed unused header file inclusion.
+- Fixed incorrect error return values and messages.
+- Removed DTS margin temperature from the peci-cputemp.
+- Made some magic numbers use defines.
+- Moved peci_get_cpu_id() into peci-core as a common function.
+- Replaced the cancel_delayed_work() call with a cancel_delayed_work_sync().
+- Replaced AST and Aspeed uses with ASPEED.
+- Simplified peci command timeout checking logic using
regmap_read_poll_timeout().
-* Simplified endian swap codes using endian handling macros.
-* Dropped regmap read/write error checking except for the first access.
-* Added a PECI reset setting in the device tree node.
-* Removed unnecessary sleep from the probe context.
-* Removed IRQF_SHARED flag from irq request code in the ASPEED PECI driver.
-* Fixed typos in documents.
-* Combined peci-bus.txt, peci-adapter.txt and peci-client.txt into peci.txt.
-* Fixed and swept documents to drop some incorrect or unnecessary
+- Simplified endian swap codes using endian handling macros.
+- Dropped regmap read/write error checking except for the first access.
+- Added a PECI reset setting in the device tree node.
+- Removed unnecessary sleep from the probe context.
+- Removed IRQF_SHARED flag from irq request code in the ASPEED PECI driver.
+- Fixed typos in documents.
+- Combined peci-bus.txt, peci-adapter.txt and peci-client.txt into peci.txt.
+- Fixed and swept documents to drop some incorrect or unnecessary
descriptions.
-* Fixed device tree to make unit-address format use reg contents.
-* Simplified bit manipulations using <linux/bitfield.h>.
-* Made client CPU model checking use <asm/intel-family.h> if available.
-* Modified adapter heap allocation method to use kobject reference count
+- Fixed device tree to make unit-address format use reg contents.
+- Simplified bit manipulations using <linux/bitfield.h>.
+- Made client CPU model checking use <asm/intel-family.h> if available.
+- Modified adapter heap allocation method to use kobject reference count
based.
-* Added the low-level PECI xfer IOCTL again to support the Redfish
+- Added the low-level PECI xfer IOCTL again to support the Redfish
requirement.
-* Added PM domain attach/detach code.
-* Added logic for device instantiation through sysfs.
-* Fix a bug of interrupt status checking code in peci-aspeed driver.
+- Added PM domain attach/detach code.
+- Added logic for device instantiation through sysfs.
+- Fix a bug of interrupt status checking code in peci-aspeed driver.
Changes since v2:
-* Divided peci-hwmon driver into two drivers, peci-cputemp and
+- Divided peci-hwmon driver into two drivers, peci-cputemp and
peci-dimmtemp.
-* Added generic dt binding documents for PECI bus, adapter and client.
-* Removed in_atomic() call from the PECI core driver.
-* Improved PECI commands masking logic.
-* Added permission check logic for PECI ioctls.
-* Removed unnecessary type casts.
-* Fixed some invalid error return codes.
-* Added the mark_updated() function to improve update interval checking
+- Added generic dt binding documents for PECI bus, adapter and client.
+- Removed in_atomic() call from the PECI core driver.
+- Improved PECI commands masking logic.
+- Added permission check logic for PECI ioctls.
+- Removed unnecessary type casts.
+- Fixed some invalid error return codes.
+- Added the mark_updated() function to improve update interval checking
logic.
-* Fixed a bug in populated DIMM checking function.
-* Fixed some typo, grammar and style issues in documents.
-* Rewrote hwmon drivers to use devm_hwmon_device_register_with_info API.
-* Made peci_match_id() function as a static.
-* Replaced a deprecated create_singlethread_workqueue() call with an
+- Fixed a bug in populated DIMM checking function.
+- Fixed some typo, grammar and style issues in documents.
+- Rewrote hwmon drivers to use devm_hwmon_device_register_with_info API.
+- Made peci_match_id() function as a static.
+- Replaced a deprecated create_singlethread_workqueue() call with an
alloc_ordered_workqueue() call.
-* Reordered local variable definitions in reversed xmas tree notation.
-* Listed up client CPUs that can be supported by peci-cputemp and
+- Reordered local variable definitions in reversed xmas tree notation.
+- Listed up client CPUs that can be supported by peci-cputemp and
peci-dimmtemp hwmon drivers.
-* Added CPU generation detection logic which checks CPUID signature through
+- Added CPU generation detection logic which checks CPUID signature through
PECI connection.
-* Improved interrupt handling logic in the Aspeed PECI adapter driver.
-* Fixed SPDX license identifier style in header files.
-* Changed some macros in peci.h to static inline functions.
-* Dropped sleepable context checking code in peci-core.
-* Adjusted rt_mutex protection scope in peci-core.
-* Moved adapter->xfer() checking code into peci_register_adapter().
-* Improved PECI command retry checking logic.
-* Changed ioctl base from 'P' to 0xb6 to avoid confiliction and updated
+- Improved interrupt handling logic in the Aspeed PECI adapter driver.
+- Fixed SPDX license identifier style in header files.
+- Changed some macros in peci.h to static inline functions.
+- Dropped sleepable context checking code in peci-core.
+- Adjusted rt_mutex protection scope in peci-core.
+- Moved adapter->xfer() checking code into peci_register_adapter().
+- Improved PECI command retry checking logic.
+- Changed ioctl base from 'P' to 0xb6 to avoid confiliction and updated
ioctl-number.txt to reflect the ioctl number of PECI subsystem.
-* Added a comment to describe PECI retry action.
-* Simplified return code handling of peci_ioctl_ping().
-* Changed type of peci_ioctl_fn[] to static const.
-* Fixed range checking code for valid PECI commands.
-* Fixed the error return code on invalid PECI commands.
-* Fixed incorrect definitions of PECI ioctl and its handling logic.
+- Added a comment to describe PECI retry action.
+- Simplified return code handling of peci_ioctl_ping().
+- Changed type of peci_ioctl_fn[] to static const.
+- Fixed range checking code for valid PECI commands.
+- Fixed the error return code on invalid PECI commands.
+- Fixed incorrect definitions of PECI ioctl and its handling logic.
Changes since v1:
-* Additionally implemented a core driver to support PECI linux bus driver
+- Additionally implemented a core driver to support PECI linux bus driver
model.
-* Modified Aspeed PECI driver to make that to be an adapter driver in PECI
+- Modified Aspeed PECI driver to make that to be an adapter driver in PECI
bus.
-* Modified PECI hwmon driver to make that to be a client driver in PECI
+- Modified PECI hwmon driver to make that to be a client driver in PECI
bus.
-* Simplified hwmon driver attribute labels and removed redundant strings.
-* Removed core_nums from device tree setting of hwmon driver and modified
+- Simplified hwmon driver attribute labels and removed redundant strings.
+- Removed core_nums from device tree setting of hwmon driver and modified
core number detection logic to check the resolved_core register in client
CPU's local PCI configuration area.
-* Removed dimm_nums from device tree setting of hwmon driver and added
+- Removed dimm_nums from device tree setting of hwmon driver and added
populated DIMM detection logic to support dynamic creation.
-* Removed indexing gap on core temperature and DIMM temperature attributes.
-* Improved hwmon registration and dynamic attribute creation logic.
-* Fixed structure definitions in PECI uapi header to make that use __u8,
+- Removed indexing gap on core temperature and DIMM temperature attributes.
+- Improved hwmon registration and dynamic attribute creation logic.
+- Fixed structure definitions in PECI uapi header to make that use __u8,
__u16 and etc.
-* Modified wait_for_completion_interruptible_timeout error handling logic
+- Modified wait_for_completion_interruptible_timeout error handling logic
in Aspeed PECI driver to deliver errors correctly.
-* Removed low-level xfer command from ioctl and kept only high-level PECI
+- Removed low-level xfer command from ioctl and kept only high-level PECI
command suite as ioctls.
-* Fixed I/O timeout logic in Aspeed PECI driver using ktime.
-* Added a function into hwmon driver to simplify update delay checking.
-* Added a function into hwmon driver to convert 10.6 to millidegree.
-* Dropped non-standard attributes in hwmon driver.
-* Fixed OF table for hwmon to make it indicate as a PECI client of Intel
+- Fixed I/O timeout logic in Aspeed PECI driver using ktime.
+- Added a function into hwmon driver to simplify update delay checking.
+- Added a function into hwmon driver to convert 10.6 to millidegree.
+- Dropped non-standard attributes in hwmon driver.
+- Fixed OF table for hwmon to make it indicate as a PECI client of Intel
CPU target.
-* Added a maintainer of PECI subsystem into MAINTAINERS document.
-
-Jae Hyun Yoo (13):
+- Added a maintainer of PECI subsystem into MAINTAINERS document.
+
+Jae Hyun Yoo (12):
dt-bindings: Add a document of PECI subsystem
Documentation: ioctl: Add ioctl numbers for PECI subsystem
peci: Add support for PECI bus driver core
@@ -194,42 +225,38 @@
peci: Add a PECI adapter driver for Aspeed AST24xx/AST25xx
dt-bindings: mfd: Add a document for PECI client MFD
mfd: intel-peci-client: Add PECI client MFD driver
- dt-bindings: hwmon: Add documents for PECI hwmon client drivers
Documentation: hwmon: Add documents for PECI hwmon client drivers
hwmon: Add PECI cputemp driver
hwmon: Add PECI dimmtemp driver
Add maintainers for the PECI subsystem
- .../bindings/hwmon/peci-cputemp.txt | 11 +
- .../bindings/hwmon/peci-dimmtemp.txt | 12 +
- .../bindings/mfd/intel-peci-client.txt | 34 +
- .../devicetree/bindings/peci/peci-aspeed.txt | 57 +
- .../devicetree/bindings/peci/peci.txt | 60 +
- Documentation/hwmon/peci-cputemp | 78 +
- Documentation/hwmon/peci-dimmtemp | 50 +
- Documentation/ioctl/ioctl-number.txt | 2 +
- MAINTAINERS | 12 +
- arch/arm/boot/dts/aspeed-g4.dtsi | 26 +
- arch/arm/boot/dts/aspeed-g5.dtsi | 26 +
- drivers/Kconfig | 2 +
- drivers/Makefile | 1 +
- drivers/hwmon/Kconfig | 28 +
- drivers/hwmon/Makefile | 2 +
- drivers/hwmon/peci-cputemp.c | 401 +++++
- drivers/hwmon/peci-dimmtemp.c | 295 ++++
- drivers/mfd/Kconfig | 14 +
- drivers/mfd/Makefile | 1 +
- drivers/mfd/intel-peci-client.c | 182 +++
- drivers/peci/Kconfig | 39 +
- drivers/peci/Makefile | 9 +
- drivers/peci/peci-aspeed.c | 498 ++++++
- drivers/peci/peci-core.c | 1438 +++++++++++++++++
- include/linux/mfd/intel-peci-client.h | 81 +
- include/linux/peci.h | 104 ++
- include/uapi/linux/peci-ioctl.h | 265 +++
- 27 files changed, 3728 insertions(+)
- create mode 100644 Documentation/devicetree/bindings/hwmon/peci-cputemp.txt
- create mode 100644 Documentation/devicetree/bindings/hwmon/peci-dimmtemp.txt
+ .../devicetree/bindings/mfd/intel-peci-client.txt | 34 +
+ .../devicetree/bindings/peci/peci-aspeed.txt | 55 +
+ Documentation/devicetree/bindings/peci/peci.txt | 43 +
+ Documentation/hwmon/peci-cputemp | 78 +
+ Documentation/hwmon/peci-dimmtemp | 50 +
+ Documentation/ioctl/ioctl-number.txt | 2 +
+ MAINTAINERS | 22 +
+ arch/arm/boot/dts/aspeed-g4.dtsi | 26 +
+ arch/arm/boot/dts/aspeed-g5.dtsi | 26 +
+ drivers/Kconfig | 2 +
+ drivers/Makefile | 1 +
+ drivers/hwmon/Kconfig | 28 +
+ drivers/hwmon/Makefile | 2 +
+ drivers/hwmon/peci-cputemp.c | 394 +++++
+ drivers/hwmon/peci-dimmtemp.c | 284 ++++
+ drivers/hwmon/peci-hwmon.h | 49 +
+ drivers/mfd/Kconfig | 14 +
+ drivers/mfd/Makefile | 1 +
+ drivers/mfd/intel-peci-client.c | 150 ++
+ drivers/peci/Kconfig | 39 +
+ drivers/peci/Makefile | 9 +
+ drivers/peci/peci-aspeed.c | 505 +++++++
+ drivers/peci/peci-core.c | 1527 ++++++++++++++++++++
+ include/linux/mfd/intel-peci-client.h | 110 ++
+ include/linux/peci.h | 142 ++
+ include/uapi/linux/peci-ioctl.h | 403 ++++++
+ 26 files changed, 3996 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mfd/intel-peci-client.txt
create mode 100644 Documentation/devicetree/bindings/peci/peci-aspeed.txt
create mode 100644 Documentation/devicetree/bindings/peci/peci.txt
@@ -237,6 +264,7 @@
create mode 100644 Documentation/hwmon/peci-dimmtemp
create mode 100644 drivers/hwmon/peci-cputemp.c
create mode 100644 drivers/hwmon/peci-dimmtemp.c
+ create mode 100644 drivers/hwmon/peci-hwmon.h
create mode 100644 drivers/mfd/intel-peci-client.c
create mode 100644 drivers/peci/Kconfig
create mode 100644 drivers/peci/Makefile
@@ -247,4 +275,4 @@
create mode 100644 include/uapi/linux/peci-ioctl.h
--
-2.17.1
+2.7.4