FAILED: patch "[PATCH] hwmon: (k10temp) Check range scale when CUR_TEMP register is" failed to apply to 5.4-stable tree
[email protected]
maintainerThe patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.4.y
git checkout FETCH_HEAD
git cherry-pick -x 0c072385348e3ac5229145644055d3e2afb5b3db
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2023050606-coil-speech-7d6d@gregkh' --subject-prefix 'PATCH 5.4.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 0c072385348e3ac5229145644055d3e2afb5b3db Mon Sep 17 00:00:00 2001
From: Babu Moger <[email protected]>
Date: Thu, 13 Apr 2023 16:39:58 -0500
Subject: [PATCH] hwmon: (k10temp) Check range scale when CUR_TEMP register is
read-write
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Spec says, when CUR_TEMP_TJ_SEL == 3 and CUR_TEMP_RANGE_SEL == 0, it should use RangeUnadjusted is 0, which is (CurTmp*0.125 -49) C. The CUR_TEMP register is read-write when CUR_TEMP_TJ_SEL == 3 (bit 17-16).
Add the check to detect it.
Sensors command's output before the patch.
$sensors
k10temp-pci-00c3
Adapter: PCI adapter
Tctl: +76.6°C <- Wrong value Tccd1: +26.5°C Tccd2: +27.5°C Tccd3: +27.2°C Tccd4: +27.5°C Tccd5: +26.0°C Tccd6: +26.2°C Tccd7: +25.0°C Tccd8: +26.5°C
Sensors command's output after the patch.
$sensors
k10temp-pci-00c3
Adapter: PCI adapter
Tctl: +28.8°C <- corrected value Tccd1: +27.5°C Tccd2: +28.5°C Tccd3: +28.5°C Tccd4: +28.5°C Tccd5: +27.0°C Tccd6: +27.5°C Tccd7: +27.0°C Tccd8: +27.5°C
drivers/hwmon/k10temp.c +3 -1
@@ -75,6 +75,7 @@ static DEFINE_MUTEX(nb_smu_ind_mutex);#define ZEN_CUR_TEMP_SHIFT 21#define ZEN_CUR_TEMP_RANGE_SEL_MASK BIT(19) +#define ZEN_CUR_TEMP_TJ_SEL_MASK GENMASK(17, 16)struct k10temp_data {struct pci_dev *pdev;
@@ -155,7 +156,8 @@ static long get_raw_temp(struct k10temp_data *data) data->read_tempreg (data->pdev, ®val); temp = (regval >>ZEN_CUR_TEMP_SHIFT ) *125 ; -if (regval & data->temp_adjust_mask) +if ((regval & data->temp_adjust_mask) || + (regval &ZEN_CUR_TEMP_TJ_SEL_MASK ) ==ZEN_CUR_TEMP_TJ_SEL_MASK ) temp -=49000 ;return temp; }