Commit 0d0833e0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'platform-drivers-x86-v6.2-2' of...

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

Pull x86 platform driver fixes from Hans de Goede:
 "A set of assorted fixes and hardware-id additions"

* tag 'platform-drivers-x86-v6.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
  platform/x86: thinkpad_acpi: Fix profile mode display in AMT mode
  platform/x86: int3472/discrete: Ensure the clk/power enable pins are in output mode
  platform/x86/amd: Fix refcount leak in amd_pmc_probe
  platform/x86: intel/pmc/core: Add Meteor Lake mobile support
  platform/x86: simatic-ipc: add another model
  platform/x86: simatic-ipc: correct name of a model
  platform/x86: dell-privacy: Only register SW_CAMERA_LENS_COVER if present
  platform/x86: dell-privacy: Fix SW_CAMERA_LENS_COVER reporting
  platform/x86: asus-wmi: Don't load fan curves without fan
  platform/x86: asus-wmi: Ignore fan on E410MA
  platform/x86: asus-wmi: Add quirk wmi_ignore_fan
  platform/x86: asus-nb-wmi: Add alternate mapping for KEY_SCREENLOCK
  platform/x86: asus-nb-wmi: Add alternate mapping for KEY_CAMERA
  platform/surface: aggregator: Add missing call to ssam_request_sync_free()
  platform/surface: aggregator: Ignore command messages not intended for us
  platform/x86: touchscreen_dmi: Add info for the CSL Panther Tab HD
  platform/x86: ideapad-laptop: Add Legion 5 15ARH05 DMI id to set_fn_lock_led_list[]
  platform/x86: sony-laptop: Don't turn off 0x153 keyboard backlight during probe
parents ff5ebafd fde5f74c
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1700,8 +1700,10 @@ int ssam_request_sync(struct ssam_controller *ctrl,
		return status;

	status = ssam_request_sync_init(rqst, spec->flags);
	if (status)
	if (status) {
		ssam_request_sync_free(rqst);
		return status;
	}

	ssam_request_sync_set_resp(rqst, rsp);

+14 −0
Original line number Diff line number Diff line
@@ -916,6 +916,20 @@ static void ssh_rtl_rx_command(struct ssh_ptl *p, const struct ssam_span *data)
	if (sshp_parse_command(dev, data, &command, &command_data))
		return;

	/*
	 * Check if the message was intended for us. If not, drop it.
	 *
	 * Note: We will need to change this to handle debug messages. On newer
	 * generation devices, these seem to be sent to tid_out=0x03. We as
	 * host can still receive them as they can be forwarded via an override
	 * option on SAM, but doing so does not change tid_out=0x00.
	 */
	if (command->tid_out != 0x00) {
		rtl_warn(rtl, "rtl: dropping message not intended for us (tid = %#04x)\n",
			 command->tid_out);
		return;
	}

	if (ssh_rqid_is_event(get_unaligned_le16(&command->rqid)))
		ssh_rtl_rx_event(rtl, command, &command_data);
	else
+1 −1
Original line number Diff line number Diff line
@@ -932,7 +932,7 @@ static int amd_pmc_probe(struct platform_device *pdev)
	if (enable_stb && (dev->cpu_id == AMD_CPU_ID_YC || dev->cpu_id == AMD_CPU_ID_CB)) {
		err = amd_pmc_s2d_init(dev);
		if (err)
			return err;
			goto err_pci_dev_put;
	}

	platform_set_drvdata(pdev, dev);
+15 −0
Original line number Diff line number Diff line
@@ -121,6 +121,10 @@ static struct quirk_entry quirk_asus_tablet_mode = {
	.tablet_switch_mode = asus_wmi_lid_flip_rog_devid,
};

static struct quirk_entry quirk_asus_ignore_fan = {
	.wmi_ignore_fan = true,
};

static int dmi_matched(const struct dmi_system_id *dmi)
{
	pr_info("Identified laptop model '%s'\n", dmi->ident);
@@ -473,6 +477,15 @@ static const struct dmi_system_id asus_quirks[] = {
		},
		.driver_data = &quirk_asus_tablet_mode,
	},
	{
		.callback = dmi_matched,
		.ident = "ASUS VivoBook E410MA",
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
			DMI_MATCH(DMI_PRODUCT_NAME, "E410MA"),
		},
		.driver_data = &quirk_asus_ignore_fan,
	},
	{},
};

@@ -511,6 +524,7 @@ static const struct key_entry asus_nb_wmi_keymap[] = {
	{ KE_KEY, 0x30, { KEY_VOLUMEUP } },
	{ KE_KEY, 0x31, { KEY_VOLUMEDOWN } },
	{ KE_KEY, 0x32, { KEY_MUTE } },
	{ KE_KEY, 0x33, { KEY_SCREENLOCK } },
	{ KE_KEY, 0x35, { KEY_SCREENLOCK } },
	{ KE_KEY, 0x38, { KEY_PROG3 } }, /* Armoury Crate */
	{ KE_KEY, 0x40, { KEY_PREVIOUSSONG } },
@@ -544,6 +558,7 @@ static const struct key_entry asus_nb_wmi_keymap[] = {
	{ KE_KEY, 0x7D, { KEY_BLUETOOTH } }, /* Bluetooth Enable */
	{ KE_KEY, 0x7E, { KEY_BLUETOOTH } }, /* Bluetooth Disable */
	{ KE_KEY, 0x82, { KEY_CAMERA } },
	{ KE_KEY, 0x85, { KEY_CAMERA } },
	{ KE_KEY, 0x86, { KEY_PROG1 } }, /* MyASUS Key */
	{ KE_KEY, 0x88, { KEY_RFKILL  } }, /* Radio Toggle Key */
	{ KE_KEY, 0x8A, { KEY_PROG1 } }, /* Color enhancement mode */
+6 −1
Original line number Diff line number Diff line
@@ -2243,7 +2243,9 @@ static int asus_wmi_fan_init(struct asus_wmi *asus)
	asus->fan_type = FAN_TYPE_NONE;
	asus->agfn_pwm = -1;

	if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_CPU_FAN_CTRL))
	if (asus->driver->quirks->wmi_ignore_fan)
		asus->fan_type = FAN_TYPE_NONE;
	else if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_CPU_FAN_CTRL))
		asus->fan_type = FAN_TYPE_SPEC83;
	else if (asus_wmi_has_agfn_fan(asus))
		asus->fan_type = FAN_TYPE_AGFN;
@@ -2436,6 +2438,9 @@ static int fan_curve_check_present(struct asus_wmi *asus, bool *available,

	*available = false;

	if (asus->fan_type == FAN_TYPE_NONE)
		return 0;

	err = fan_curve_get_factory_default(asus, fan_dev);
	if (err) {
		return 0;
Loading