1

platform-drivers-x86 for v6.11-5

Changes:
 - platform/x86/amd/pmc: AMD 1Ah model 60h series support (2nd attempt).
 - asus-wmi: Prevent spurious rfkill on Asus Zenbook Duo.
 - x86-android-tablets: Relax DMI match to cover another model.
 
 The following is an automated shortlog grouped by driver:
 
 amd/pmc:
  -  Extend support for PMC features on new AMD platform
  -  Fix SMU command submission path on new AMD platform
 
 asus-wmi:
  -  Fix spurious rfkill on UX8406MA
 
 x86-android-tablets:
  -  Make Lenovo Yoga Tab 3 X90F DMI match less strict
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSCSUwRdwTNL2MhaBlZrE9hU+XOMQUCZs7zjgAKCRBZrE9hU+XO
 MT+QAQCjWjX2mETui5B0ey6oBJUe3PmUzUQ0OE90bJDbDy/6oQD+I+TjPz4m/CLe
 Nyk3fTb6373B+ZhdAfVMzRwEKWV+/Q4=
 =WLMw
 -----END PGP SIGNATURE-----

Merge tag 'platform-drivers-x86-v6.11-5' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86

Pull x86 platform drivers fixes from Ilpo Järvinen:

 - platform/x86/amd/pmc: AMD 1Ah model 60h series support (2nd attempt)

 - asus-wmi: Prevent spurious rfkill on Asus Zenbook Duo

 - x86-android-tablets: Relax DMI match to cover another model

* tag 'platform-drivers-x86-v6.11-5' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
  platform/x86: x86-android-tablets: Make Lenovo Yoga Tab 3 X90F DMI match less strict
  platform/x86: asus-wmi: Fix spurious rfkill on UX8406MA
  platform/x86/amd/pmc: Extend support for PMC features on new AMD platform
  platform/x86/amd/pmc: Fix SMU command submission path on new AMD platform
This commit is contained in:
Linus Torvalds 2024-08-29 07:12:02 +12:00
commit f9a59dd097
4 changed files with 23 additions and 2 deletions

View File

@ -359,6 +359,7 @@ static void amd_pmc_get_ip_info(struct amd_pmc_dev *dev)
dev->smu_msg = 0x538; dev->smu_msg = 0x538;
break; break;
case PCI_DEVICE_ID_AMD_1AH_M20H_ROOT: case PCI_DEVICE_ID_AMD_1AH_M20H_ROOT:
case PCI_DEVICE_ID_AMD_1AH_M60H_ROOT:
dev->num_ips = 22; dev->num_ips = 22;
dev->s2d_msg_id = 0xDE; dev->s2d_msg_id = 0xDE;
dev->smu_msg = 0x938; dev->smu_msg = 0x938;
@ -597,6 +598,7 @@ static int amd_pmc_idlemask_read(struct amd_pmc_dev *pdev, struct device *dev,
val = amd_pmc_reg_read(pdev, AMD_PMC_SCRATCH_REG_YC); val = amd_pmc_reg_read(pdev, AMD_PMC_SCRATCH_REG_YC);
break; break;
case PCI_DEVICE_ID_AMD_1AH_M20H_ROOT: case PCI_DEVICE_ID_AMD_1AH_M20H_ROOT:
case PCI_DEVICE_ID_AMD_1AH_M60H_ROOT:
val = amd_pmc_reg_read(pdev, AMD_PMC_SCRATCH_REG_1AH); val = amd_pmc_reg_read(pdev, AMD_PMC_SCRATCH_REG_1AH);
break; break;
default: default:
@ -630,6 +632,7 @@ static bool amd_pmc_is_stb_supported(struct amd_pmc_dev *dev)
case AMD_CPU_ID_CB: case AMD_CPU_ID_CB:
case AMD_CPU_ID_PS: case AMD_CPU_ID_PS:
case PCI_DEVICE_ID_AMD_1AH_M20H_ROOT: case PCI_DEVICE_ID_AMD_1AH_M20H_ROOT:
case PCI_DEVICE_ID_AMD_1AH_M60H_ROOT:
return true; return true;
default: default:
return false; return false;

View File

@ -145,6 +145,10 @@ static struct quirk_entry quirk_asus_ignore_fan = {
.wmi_ignore_fan = true, .wmi_ignore_fan = true,
}; };
static struct quirk_entry quirk_asus_zenbook_duo_kbd = {
.ignore_key_wlan = true,
};
static int dmi_matched(const struct dmi_system_id *dmi) static int dmi_matched(const struct dmi_system_id *dmi)
{ {
pr_info("Identified laptop model '%s'\n", dmi->ident); pr_info("Identified laptop model '%s'\n", dmi->ident);
@ -516,6 +520,15 @@ static const struct dmi_system_id asus_quirks[] = {
}, },
.driver_data = &quirk_asus_ignore_fan, .driver_data = &quirk_asus_ignore_fan,
}, },
{
.callback = dmi_matched,
.ident = "ASUS Zenbook Duo UX8406MA",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
DMI_MATCH(DMI_PRODUCT_NAME, "UX8406MA"),
},
.driver_data = &quirk_asus_zenbook_duo_kbd,
},
{}, {},
}; };
@ -630,7 +643,12 @@ static void asus_nb_wmi_key_filter(struct asus_wmi_driver *asus_wmi, int *code,
case 0x32: /* Volume Mute */ case 0x32: /* Volume Mute */
if (atkbd_reports_vol_keys) if (atkbd_reports_vol_keys)
*code = ASUS_WMI_KEY_IGNORE; *code = ASUS_WMI_KEY_IGNORE;
break;
case 0x5D: /* Wireless console Toggle */
case 0x5E: /* Wireless console Enable */
case 0x5F: /* Wireless console Disable */
if (quirks->ignore_key_wlan)
*code = ASUS_WMI_KEY_IGNORE;
break; break;
} }
} }

View File

@ -40,6 +40,7 @@ struct quirk_entry {
bool wmi_force_als_set; bool wmi_force_als_set;
bool wmi_ignore_fan; bool wmi_ignore_fan;
bool filter_i8042_e1_extended_codes; bool filter_i8042_e1_extended_codes;
bool ignore_key_wlan;
enum asus_wmi_tablet_switch_mode tablet_switch_mode; enum asus_wmi_tablet_switch_mode tablet_switch_mode;
int wapf; int wapf;
/* /*

View File

@ -140,7 +140,6 @@ const struct dmi_system_id x86_android_tablet_ids[] __initconst = {
/* Lenovo Yoga Tab 3 Pro YT3-X90F */ /* Lenovo Yoga Tab 3 Pro YT3-X90F */
.matches = { .matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"), DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
DMI_MATCH(DMI_PRODUCT_NAME, "CHERRYVIEW D1 PLATFORM"),
DMI_MATCH(DMI_PRODUCT_VERSION, "Blade3-10A-001"), DMI_MATCH(DMI_PRODUCT_VERSION, "Blade3-10A-001"),
}, },
.driver_data = (void *)&lenovo_yt3_info, .driver_data = (void *)&lenovo_yt3_info,