Commit d0452e3e authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'platform-drivers-x86-v6.19-4' of...

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

Pull x86 platform driver fixes from Ilpo Järvinen:

 - amd/pmc: Add quirk for MECHREVO Wujie 15X Pro

 - classmate-laptop: Add missing NULL pointer checks

 - hp-bioscfg: Skip empty attribute names

 - intel_telemetry:
    - Fix PSS event register mask
    - Fix swapped arrays in PSS output

 - intel/tpmi/plr: Make the file domain<n>/status writeable

 - intel/vsec: Add Nova Lake PUNIT support

 - lg-laptop: Recognize 2022-2025 models

 - panasonic-laptop: Fix sysfs group leak in error path

 - toshiba_haps: Fix memory leaks in add/remove routines

* tag 'platform-drivers-x86-v6.19-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
  platform/x86/intel/tpmi/plr: Make the file domain<n>/status writeable
  platform/x86: hp-bioscfg: Skip empty attribute names
  platform/x86: classmate-laptop: Add missing NULL pointer checks
  platform/x86: lg-laptop: Recognize 2022-2025 models
  platform/x86/amd/pmc: Add quirk for MECHREVO Wujie 15X Pro
  platform/x86: intel_telemetry: Fix PSS event register mask
  platform/x86: intel_telemetry: Fix swapped arrays in PSS output
  platform/x86/intel/vsec: Add Nova Lake PUNIT support
  platform/x86: toshiba_haps: Fix memory leaks in add/remove routines
  platform/x86: panasonic-laptop: Fix sysfs group leak in error path
parents 6bd9ed02 008bec8f
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -302,6 +302,13 @@ static const struct dmi_system_id fwbug_list[] = {
			DMI_MATCH(DMI_BOARD_NAME, "XxKK4NAx_XxSP4NAx"),
		}
	},
	{
		.ident = "MECHREVO Wujie 15X Pro",
		.driver_data = &quirk_spurious_8042,
		.matches = {
			DMI_MATCH(DMI_BOARD_NAME, "WUJIE Series-X5SP4NAG"),
		}
	},
	{}
};

+32 −0
Original line number Diff line number Diff line
@@ -207,7 +207,12 @@ static ssize_t cmpc_accel_sensitivity_show_v4(struct device *dev,

	acpi = to_acpi_device(dev);
	inputdev = dev_get_drvdata(&acpi->dev);
	if (!inputdev)
		return -ENXIO;

	accel = dev_get_drvdata(&inputdev->dev);
	if (!accel)
		return -ENXIO;

	return sysfs_emit(buf, "%d\n", accel->sensitivity);
}
@@ -224,7 +229,12 @@ static ssize_t cmpc_accel_sensitivity_store_v4(struct device *dev,

	acpi = to_acpi_device(dev);
	inputdev = dev_get_drvdata(&acpi->dev);
	if (!inputdev)
		return -ENXIO;

	accel = dev_get_drvdata(&inputdev->dev);
	if (!accel)
		return -ENXIO;

	r = kstrtoul(buf, 0, &sensitivity);
	if (r)
@@ -256,7 +266,12 @@ static ssize_t cmpc_accel_g_select_show_v4(struct device *dev,

	acpi = to_acpi_device(dev);
	inputdev = dev_get_drvdata(&acpi->dev);
	if (!inputdev)
		return -ENXIO;

	accel = dev_get_drvdata(&inputdev->dev);
	if (!accel)
		return -ENXIO;

	return sysfs_emit(buf, "%d\n", accel->g_select);
}
@@ -273,7 +288,12 @@ static ssize_t cmpc_accel_g_select_store_v4(struct device *dev,

	acpi = to_acpi_device(dev);
	inputdev = dev_get_drvdata(&acpi->dev);
	if (!inputdev)
		return -ENXIO;

	accel = dev_get_drvdata(&inputdev->dev);
	if (!accel)
		return -ENXIO;

	r = kstrtoul(buf, 0, &g_select);
	if (r)
@@ -302,6 +322,8 @@ static int cmpc_accel_open_v4(struct input_dev *input)

	acpi = to_acpi_device(input->dev.parent);
	accel = dev_get_drvdata(&input->dev);
	if (!accel)
		return -ENXIO;

	cmpc_accel_set_sensitivity_v4(acpi->handle, accel->sensitivity);
	cmpc_accel_set_g_select_v4(acpi->handle, accel->g_select);
@@ -549,7 +571,12 @@ static ssize_t cmpc_accel_sensitivity_show(struct device *dev,

	acpi = to_acpi_device(dev);
	inputdev = dev_get_drvdata(&acpi->dev);
	if (!inputdev)
		return -ENXIO;

	accel = dev_get_drvdata(&inputdev->dev);
	if (!accel)
		return -ENXIO;

	return sysfs_emit(buf, "%d\n", accel->sensitivity);
}
@@ -566,7 +593,12 @@ static ssize_t cmpc_accel_sensitivity_store(struct device *dev,

	acpi = to_acpi_device(dev);
	inputdev = dev_get_drvdata(&acpi->dev);
	if (!inputdev)
		return -ENXIO;

	accel = dev_get_drvdata(&inputdev->dev);
	if (!accel)
		return -ENXIO;

	r = kstrtoul(buf, 0, &sensitivity);
	if (r)
+5 −0
Original line number Diff line number Diff line
@@ -696,6 +696,11 @@ static int hp_init_bios_package_attribute(enum hp_wmi_data_type attr_type,
		return ret;
	}

	if (!str_value || !str_value[0]) {
		pr_debug("Ignoring attribute with empty name\n");
		goto pack_attr_exit;
	}

	/* All duplicate attributes found are ignored */
	duplicate = kset_find_obj(temp_kset, str_value);
	if (duplicate) {
+1 −1
Original line number Diff line number Diff line
@@ -316,7 +316,7 @@ static int intel_plr_probe(struct auxiliary_device *auxdev, const struct auxilia
		snprintf(name, sizeof(name), "domain%d", i);

		dentry = debugfs_create_dir(name, plr->dbgfs_dir);
		debugfs_create_file("status", 0444, dentry, &plr->die_info[i],
		debugfs_create_file("status", 0644, dentry, &plr->die_info[i],
				    &plr_status_fops);
	}

+2 −2
Original line number Diff line number Diff line
@@ -449,7 +449,7 @@ static int telem_pss_states_show(struct seq_file *s, void *unused)
	for (index = 0; index < debugfs_conf->pss_ltr_evts; index++) {
		seq_printf(s, "%-32s\t%u\n",
			   debugfs_conf->pss_ltr_data[index].name,
			   pss_s0ix_wakeup[index]);
			   pss_ltr_blkd[index]);
	}

	seq_puts(s, "\n--------------------------------------\n");
@@ -459,7 +459,7 @@ static int telem_pss_states_show(struct seq_file *s, void *unused)
	for (index = 0; index < debugfs_conf->pss_wakeup_evts; index++) {
		seq_printf(s, "%-32s\t%u\n",
			   debugfs_conf->pss_wakeup[index].name,
			   pss_ltr_blkd[index]);
			   pss_s0ix_wakeup[index]);
	}

	return 0;
Loading