Patch "powercap: intel_rapl_tpmi: Ignore minor version change" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    powercap: intel_rapl_tpmi: Ignore minor version change

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     powercap-intel_rapl_tpmi-ignore-minor-version-change.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit a9c6f2bbe434e08cf6bf2fd7112d9ef404e82638
Author: Zhang Rui <rui.zhang@xxxxxxxxx>
Date:   Mon Sep 30 16:17:58 2024 +0800

    powercap: intel_rapl_tpmi: Ignore minor version change
    
    [ Upstream commit 1d390923974cc233245649cf23833e06b15a9ef7 ]
    
    The hardware definition of every TPMI feature contains a major and minor
    version. When there is a change in the MMIO offset or change in the
    definition of a field, hardware will change major version. For addition
    of new fields without modifying existing MMIO offsets or fields, only
    the minor version is changed.
    
    If the driver has not been updated to recognize a new hardware major
    version, it cannot provide the RAPL interface to users due to possible
    register layout incompatibilities. However, the driver does not need to
    be updated every time the hardware minor version changes because in that
    case it will just miss some new functionality exposed by the hardware.
    
    The current implementation causes the driver to refuse to work for any
    hardware version change which is unnecessarily restrictive.
    
    If there is a minor version mismatch, log an information message and
    continue, but if there is a major version mismatch, log a warning and
    exit (as before).
    
    Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx>
    Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx>
    Link: https://patch.msgid.link/20240930081801.28502-4-rui.zhang@xxxxxxxxx
    Fixes: 9eef7f9da928 ("powercap: intel_rapl: Introduce RAPL TPMI interface driver")
    [ rjw: Changelog edits ]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/powercap/intel_rapl_tpmi.c b/drivers/powercap/intel_rapl_tpmi.c
index f6b7f085977ce..0085e59856166 100644
--- a/drivers/powercap/intel_rapl_tpmi.c
+++ b/drivers/powercap/intel_rapl_tpmi.c
@@ -15,7 +15,8 @@
 #include <linux/module.h>
 #include <linux/slab.h>
 
-#define TPMI_RAPL_VERSION 1
+#define TPMI_RAPL_MAJOR_VERSION 0
+#define TPMI_RAPL_MINOR_VERSION 1
 
 /* 1 header + 10 registers + 5 reserved. 8 bytes for each. */
 #define TPMI_RAPL_DOMAIN_SIZE 128
@@ -154,11 +155,21 @@ static int parse_one_domain(struct tpmi_rapl_package *trp, u32 offset)
 	tpmi_domain_size = tpmi_domain_header >> 16 & 0xff;
 	tpmi_domain_flags = tpmi_domain_header >> 32 & 0xffff;
 
-	if (tpmi_domain_version != TPMI_RAPL_VERSION) {
-		pr_warn(FW_BUG "Unsupported version:%d\n", tpmi_domain_version);
+	if (tpmi_domain_version == TPMI_VERSION_INVALID) {
+		pr_warn(FW_BUG "Invalid version\n");
 		return -ENODEV;
 	}
 
+	if (TPMI_MAJOR_VERSION(tpmi_domain_version) != TPMI_RAPL_MAJOR_VERSION) {
+		pr_warn(FW_BUG "Unsupported major version:%ld\n",
+			TPMI_MAJOR_VERSION(tpmi_domain_version));
+		return -ENODEV;
+	}
+
+	if (TPMI_MINOR_VERSION(tpmi_domain_version) > TPMI_RAPL_MINOR_VERSION)
+		pr_info("Ignore: Unsupported minor version:%ld\n",
+			TPMI_MINOR_VERSION(tpmi_domain_version));
+
 	/* Domain size: in unit of 128 Bytes */
 	if (tpmi_domain_size != 1) {
 		pr_warn(FW_BUG "Invalid Domain size %d\n", tpmi_domain_size);




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux