platform-drivers-x86 for v6.3-4
Highlights - Fix a regression in ideapad-laptop which caused the touchpad to stop working after a suspend/resume on some models - 1 other small fix and 3 hw-id additions The following is an automated git shortlog grouped by driver: asus-nb-wmi: - Add quirk_asus_tablet_mode to other ROG Flow X13 models gigabyte-wmi: - add support for X570S AORUS ELITE - add support for B650 AORUS ELITE AX ideapad-laptop: - Stop sending KEY_TOUCHPAD_TOGGLE platform/x86/intel/pmc: - Alder Lake PCH slp_s0_residency fix -----BEGIN PGP SIGNATURE----- iQFIBAABCAAyFiEEuvA7XScYQRpenhd+kuxHeUQDJ9wFAmQnLVAUHGhkZWdvZWRl QHJlZGhhdC5jb20ACgkQkuxHeUQDJ9wyegf+LHKQN84DmSBInG+T21UiiIJIFZBL MQcbDaNOprdfSw2b/+aVp9PDsSf8QmvYiYrQeu8XWw99bL/2uUtIIDKmQSRnnzFz Q4oF8VxEaWwfFK4+AVd5V2lIyNGPUpkpC1ml88AsV0q5a69qvBHb8iWd4rUSyiuc 28Q/SqE+q9YpNy1ywoWKi6raO62sdKxoG0kX8Tco6cfq372BH8PhSbj8Wcf8J5FI gSf8PzI7UG1koR4SWtvZheNWxAvqxIw2rB6hp+gA6Y2dhncqTQ39pHBbJswzDgRj kIPy3g6+HgKHNseK8NLyRZwEGOkfFbgr1XdAbAqHsiH8glm4TF35lsu+Qw== =yIN9 -----END PGP SIGNATURE----- Merge tag 'platform-drivers-x86-v6.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86 Pull x86 platform driver fixes from Hans de Goede: - Fix a regression in ideapad-laptop which caused the touchpad to stop working after a suspend/resume on some models - One other small fix and three hw-id additions * tag 'platform-drivers-x86-v6.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: platform/x86: ideapad-laptop: Stop sending KEY_TOUCHPAD_TOGGLE platform/x86: asus-nb-wmi: Add quirk_asus_tablet_mode to other ROG Flow X13 models platform/x86: gigabyte-wmi: add support for X570S AORUS ELITE platform/x86: gigabyte-wmi: add support for B650 AORUS ELITE AX platform/x86/intel/pmc: Alder Lake PCH slp_s0_residency fix
This commit is contained in:
commit
5a57b48fdf
|
@ -464,7 +464,8 @@ static const struct dmi_system_id asus_quirks[] = {
|
|||
.ident = "ASUS ROG FLOW X13",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "GV301Q"),
|
||||
/* Match GV301** */
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "GV301"),
|
||||
},
|
||||
.driver_data = &quirk_asus_tablet_mode,
|
||||
},
|
||||
|
|
|
@ -151,6 +151,7 @@ static const struct dmi_system_id gigabyte_wmi_known_working_platforms[] = {
|
|||
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550I AORUS PRO AX"),
|
||||
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550M AORUS PRO-P"),
|
||||
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550M DS3H"),
|
||||
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B650 AORUS ELITE AX"),
|
||||
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B660 GAMING X DDR4"),
|
||||
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B660I AORUS PRO DDR4"),
|
||||
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("Z390 I AORUS PRO WIFI-CF"),
|
||||
|
@ -160,6 +161,7 @@ static const struct dmi_system_id gigabyte_wmi_known_working_platforms[] = {
|
|||
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 GAMING X"),
|
||||
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 I AORUS PRO WIFI"),
|
||||
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 UD"),
|
||||
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570S AORUS ELITE"),
|
||||
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("Z690M AORUS ELITE AX DDR4"),
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -1170,7 +1170,6 @@ static const struct key_entry ideapad_keymap[] = {
|
|||
{ KE_KEY, 65, { KEY_PROG4 } },
|
||||
{ KE_KEY, 66, { KEY_TOUCHPAD_OFF } },
|
||||
{ KE_KEY, 67, { KEY_TOUCHPAD_ON } },
|
||||
{ KE_KEY, 68, { KEY_TOUCHPAD_TOGGLE } },
|
||||
{ KE_KEY, 128, { KEY_ESC } },
|
||||
|
||||
/*
|
||||
|
@ -1526,18 +1525,16 @@ static void ideapad_sync_touchpad_state(struct ideapad_private *priv, bool send_
|
|||
if (priv->features.ctrl_ps2_aux_port)
|
||||
i8042_command(¶m, value ? I8042_CMD_AUX_ENABLE : I8042_CMD_AUX_DISABLE);
|
||||
|
||||
if (send_events) {
|
||||
/*
|
||||
* On older models the EC controls the touchpad and toggles it
|
||||
* on/off itself, in this case we report KEY_TOUCHPAD_ON/_OFF.
|
||||
* If the EC did not toggle, report KEY_TOUCHPAD_TOGGLE.
|
||||
*/
|
||||
if (value != priv->r_touchpad_val) {
|
||||
ideapad_input_report(priv, value ? 67 : 66);
|
||||
sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad");
|
||||
} else {
|
||||
ideapad_input_report(priv, 68);
|
||||
}
|
||||
/*
|
||||
* On older models the EC controls the touchpad and toggles it on/off
|
||||
* itself, in this case we report KEY_TOUCHPAD_ON/_OFF. Some models do
|
||||
* an acpi-notify with VPC bit 5 set on resume, so this function get
|
||||
* called with send_events=true on every resume. Therefor if the EC did
|
||||
* not toggle, do nothing to avoid sending spurious KEY_TOUCHPAD_TOGGLE.
|
||||
*/
|
||||
if (send_events && value != priv->r_touchpad_val) {
|
||||
ideapad_input_report(priv, value ? 67 : 66);
|
||||
sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad");
|
||||
}
|
||||
|
||||
priv->r_touchpad_val = value;
|
||||
|
|
|
@ -66,7 +66,18 @@ static inline void pmc_core_reg_write(struct pmc_dev *pmcdev, int reg_offset,
|
|||
|
||||
static inline u64 pmc_core_adjust_slp_s0_step(struct pmc_dev *pmcdev, u32 value)
|
||||
{
|
||||
return (u64)value * pmcdev->map->slp_s0_res_counter_step;
|
||||
/*
|
||||
* ADL PCH does not have the SLP_S0 counter and LPM Residency counters are
|
||||
* used as a workaround which uses 30.5 usec tick. All other client
|
||||
* programs have the legacy SLP_S0 residency counter that is using the 122
|
||||
* usec tick.
|
||||
*/
|
||||
const int lpm_adj_x2 = pmcdev->map->lpm_res_counter_step_x2;
|
||||
|
||||
if (pmcdev->map == &adl_reg_map)
|
||||
return (u64)value * GET_X2_COUNTER((u64)lpm_adj_x2);
|
||||
else
|
||||
return (u64)value * pmcdev->map->slp_s0_res_counter_step;
|
||||
}
|
||||
|
||||
static int set_etr3(struct pmc_dev *pmcdev)
|
||||
|
|
Loading…
Reference in New Issue