platform-drivers-x86 for v7.0-4
New HW Support and Fixes: - amd/pmc: Add Thinkpad L14 Gen3 to quirk_s2idle_bug - asus-armoury: Add support for FA607NU, GU605MU, and GV302XU. - intel-uncore-freq: Handle autonomous UFS status bit - ISST: Handle cases with less than max buckets correctly - intel-uncore-freq & ISST: Mark minor version 3 supported (no additional driver changes required) The following is an automated shortlog grouped by driver: amd: pmc: - Add Thinkpad L14 Gen3 to quirk_s2idle_bug asus-armoury: - add support for FA607NU - add support for GU605MU - add support for GV302XU intel-uncore-freq: - Handle autonomous UFS status bit - Increase minor version ISST: - Increase minor version - Reset core count to 0 -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQSCSUwRdwTNL2MhaBlZrE9hU+XOMQUCadeRLQAKCRBZrE9hU+XO MUZcAP4zQhma28s27tvEW1vgiwXN+DkasYw2ujLpvbYuRIGAawEAnPnAlQD27btE mN1VbuaQ0NTXpfURaHFW9M8n4u56hAE= =KAhE -----END PGP SIGNATURE----- Merge tag 'platform-drivers-x86-v7.0-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86 Pull x86 platform drivers fixes from Ilpo Järvinen: - amd/pmc: Add Thinkpad L14 Gen3 to quirk_s2idle_bug - asus-armoury: Add support for FA607NU, GU605MU, and GV302XU. - intel-uncore-freq: Handle autonomous UFS status bit - ISST: Handle cases with less than max buckets correctly - intel-uncore-freq & ISST: Mark minor version 3 supported (no additional driver changes required) * tag 'platform-drivers-x86-v7.0-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: platform/x86: asus-armoury: add support for GU605MU platform/x86: asus-armoury: add support for FA607NU platform/x86: asus-armoury: add support for GV302XU platform/x86/amd: pmc: Add Thinkpad L14 Gen3 to quirk_s2idle_bug platform/x86/intel-uncore-freq: Increase minor version platform/x86: ISST: Increase minor version platform/x86/intel-uncore-freq: Handle autonomous UFS status bit platform/x86: ISST: Reset core count to 0master
commit
acfa7a3544
|
|
@ -203,6 +203,15 @@ static const struct dmi_system_id fwbug_list[] = {
|
|||
DMI_MATCH(DMI_PRODUCT_NAME, "82XQ"),
|
||||
}
|
||||
},
|
||||
/* https://bugzilla.kernel.org/show_bug.cgi?id=221273 */
|
||||
{
|
||||
.ident = "Thinkpad L14 Gen3",
|
||||
.driver_data = &quirk_s2idle_bug,
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "21C6"),
|
||||
}
|
||||
},
|
||||
/* https://gitlab.freedesktop.org/drm/amd/-/issues/4434 */
|
||||
{
|
||||
.ident = "Lenovo Yoga 6 13ALC6",
|
||||
|
|
|
|||
|
|
@ -592,6 +592,37 @@ static const struct dmi_system_id power_limits[] = {
|
|||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "FA607NU"),
|
||||
},
|
||||
.driver_data = &(struct power_data) {
|
||||
.ac_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 15,
|
||||
.ppt_pl1_spl_max = 80,
|
||||
.ppt_pl2_sppt_min = 35,
|
||||
.ppt_pl2_sppt_max = 80,
|
||||
.ppt_pl3_fppt_min = 35,
|
||||
.ppt_pl3_fppt_max = 80,
|
||||
.nv_dynamic_boost_min = 5,
|
||||
.nv_dynamic_boost_max = 25,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
},
|
||||
.dc_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 25,
|
||||
.ppt_pl1_spl_def = 45,
|
||||
.ppt_pl1_spl_max = 65,
|
||||
.ppt_pl2_sppt_min = 25,
|
||||
.ppt_pl2_sppt_def = 54,
|
||||
.ppt_pl2_sppt_max = 65,
|
||||
.ppt_pl3_fppt_min = 25,
|
||||
.ppt_pl3_fppt_max = 65,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "FA607P"),
|
||||
|
|
@ -1309,6 +1340,34 @@ static const struct dmi_system_id power_limits[] = {
|
|||
.requires_fan_curve = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "GU605MU"),
|
||||
},
|
||||
.driver_data = &(struct power_data) {
|
||||
.ac_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 28,
|
||||
.ppt_pl1_spl_max = 90,
|
||||
.ppt_pl2_sppt_min = 28,
|
||||
.ppt_pl2_sppt_max = 135,
|
||||
.nv_dynamic_boost_min = 5,
|
||||
.nv_dynamic_boost_max = 20,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
.nv_tgp_min = 55,
|
||||
.nv_tgp_max = 85,
|
||||
},
|
||||
.dc_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 25,
|
||||
.ppt_pl1_spl_max = 35,
|
||||
.ppt_pl2_sppt_min = 38,
|
||||
.ppt_pl2_sppt_max = 53,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
},
|
||||
.requires_fan_curve = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "GU605M"),
|
||||
|
|
@ -1376,6 +1435,33 @@ static const struct dmi_system_id power_limits[] = {
|
|||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "GV302XU"),
|
||||
},
|
||||
.driver_data = &(struct power_data) {
|
||||
.ac_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 15,
|
||||
.ppt_pl1_spl_max = 55,
|
||||
.ppt_pl2_sppt_min = 25,
|
||||
.ppt_pl2_sppt_max = 60,
|
||||
.ppt_pl3_fppt_min = 35,
|
||||
.ppt_pl3_fppt_max = 65,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
},
|
||||
.dc_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 15,
|
||||
.ppt_pl1_spl_max = 35,
|
||||
.ppt_pl2_sppt_min = 25,
|
||||
.ppt_pl2_sppt_max = 35,
|
||||
.ppt_pl3_fppt_min = 35,
|
||||
.ppt_pl3_fppt_max = 65,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "GV302XV"),
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
/* Supported SST hardware version by this driver */
|
||||
#define ISST_MAJOR_VERSION 0
|
||||
#define ISST_MINOR_VERSION 2
|
||||
#define ISST_MINOR_VERSION 3
|
||||
|
||||
/*
|
||||
* Used to indicate if value read from MMIO needs to get multiplied
|
||||
|
|
@ -1461,6 +1461,8 @@ static int isst_if_get_turbo_freq_info(void __user *argp)
|
|||
SST_MUL_FACTOR_FREQ)
|
||||
}
|
||||
|
||||
memset(turbo_freq.bucket_core_counts, 0, sizeof(turbo_freq.bucket_core_counts));
|
||||
|
||||
if (feature_rev >= 2) {
|
||||
bool has_tf_info_8 = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
#include "uncore-frequency-common.h"
|
||||
|
||||
#define UNCORE_MAJOR_VERSION 0
|
||||
#define UNCORE_MINOR_VERSION 2
|
||||
#define UNCORE_MINOR_VERSION 3
|
||||
#define UNCORE_ELC_SUPPORTED_VERSION 2
|
||||
#define UNCORE_HEADER_INDEX 0
|
||||
#define UNCORE_FABRIC_CLUSTER_OFFSET 8
|
||||
|
|
@ -537,6 +537,7 @@ static void set_cdie_id(int domain_id, struct tpmi_uncore_cluster_info *cluster_
|
|||
#define UNCORE_VERSION_MASK GENMASK_ULL(7, 0)
|
||||
#define UNCORE_LOCAL_FABRIC_CLUSTER_ID_MASK GENMASK_ULL(15, 8)
|
||||
#define UNCORE_CLUSTER_OFF_MASK GENMASK_ULL(7, 0)
|
||||
#define UNCORE_AUTONOMOUS_UFS_DISABLED BIT(32)
|
||||
#define UNCORE_MAX_CLUSTER_PER_DOMAIN 8
|
||||
|
||||
static int uncore_probe(struct auxiliary_device *auxdev, const struct auxiliary_device_id *id)
|
||||
|
|
@ -598,6 +599,7 @@ static int uncore_probe(struct auxiliary_device *auxdev, const struct auxiliary_
|
|||
|
||||
for (i = 0; i < num_resources; ++i) {
|
||||
struct tpmi_uncore_power_domain_info *pd_info;
|
||||
bool auto_ufs_enabled;
|
||||
struct resource *res;
|
||||
u64 cluster_offset;
|
||||
u8 cluster_mask;
|
||||
|
|
@ -647,6 +649,8 @@ static int uncore_probe(struct auxiliary_device *auxdev, const struct auxiliary_
|
|||
continue;
|
||||
}
|
||||
|
||||
auto_ufs_enabled = !(header & UNCORE_AUTONOMOUS_UFS_DISABLED);
|
||||
|
||||
/* Find out number of clusters in this resource */
|
||||
pd_info->cluster_count = hweight8(cluster_mask);
|
||||
|
||||
|
|
@ -689,7 +693,9 @@ static int uncore_probe(struct auxiliary_device *auxdev, const struct auxiliary_
|
|||
|
||||
cluster_info->uncore_root = tpmi_uncore;
|
||||
|
||||
if (TPMI_MINOR_VERSION(pd_info->ufs_header_ver) >= UNCORE_ELC_SUPPORTED_VERSION)
|
||||
if ((TPMI_MINOR_VERSION(pd_info->ufs_header_ver) >=
|
||||
UNCORE_ELC_SUPPORTED_VERSION) &&
|
||||
auto_ufs_enabled)
|
||||
cluster_info->elc_supported = true;
|
||||
|
||||
ret = uncore_freq_add_entry(&cluster_info->uncore_data, 0);
|
||||
|
|
|
|||
Loading…
Reference in New Issue