mirror of
https://github.com/torvalds/linux.git
synced 2026-02-04 15:28:49 +08:00
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
This commit is contained in:
@@ -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"),
|
||||
}
|
||||
},
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -610,7 +610,7 @@ static int telemetry_setup(struct platform_device *pdev)
|
||||
/* Get telemetry Info */
|
||||
events = (read_buf & TELEM_INFO_SRAMEVTS_MASK) >>
|
||||
TELEM_INFO_SRAMEVTS_SHIFT;
|
||||
event_regs = read_buf & TELEM_INFO_SRAMEVTS_MASK;
|
||||
event_regs = read_buf & TELEM_INFO_NENABLES_MASK;
|
||||
if ((events < TELEM_MAX_EVENTS_SRAM) ||
|
||||
(event_regs < TELEM_MAX_EVENTS_SRAM)) {
|
||||
dev_err(&pdev->dev, "PSS:Insufficient Space for SRAM Trace\n");
|
||||
|
||||
@@ -766,6 +766,7 @@ static const struct intel_vsec_platform_info lnl_info = {
|
||||
#define PCI_DEVICE_ID_INTEL_VSEC_LNL_M 0x647d
|
||||
#define PCI_DEVICE_ID_INTEL_VSEC_PTL 0xb07d
|
||||
#define PCI_DEVICE_ID_INTEL_VSEC_WCL 0xfd7d
|
||||
#define PCI_DEVICE_ID_INTEL_VSEC_NVL 0xd70d
|
||||
static const struct pci_device_id intel_vsec_pci_ids[] = {
|
||||
{ PCI_DEVICE_DATA(INTEL, VSEC_ADL, &tgl_info) },
|
||||
{ PCI_DEVICE_DATA(INTEL, VSEC_DG1, &dg1_info) },
|
||||
@@ -778,6 +779,7 @@ static const struct pci_device_id intel_vsec_pci_ids[] = {
|
||||
{ PCI_DEVICE_DATA(INTEL, VSEC_LNL_M, &lnl_info) },
|
||||
{ PCI_DEVICE_DATA(INTEL, VSEC_PTL, &mtl_info) },
|
||||
{ PCI_DEVICE_DATA(INTEL, VSEC_WCL, &mtl_info) },
|
||||
{ PCI_DEVICE_DATA(INTEL, VSEC_NVL, &mtl_info) },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pci, intel_vsec_pci_ids);
|
||||
|
||||
@@ -838,8 +838,17 @@ static int acpi_add(struct acpi_device *device)
|
||||
case 'P':
|
||||
year = 2021;
|
||||
break;
|
||||
default:
|
||||
case 'Q':
|
||||
year = 2022;
|
||||
break;
|
||||
case 'R':
|
||||
year = 2023;
|
||||
break;
|
||||
case 'S':
|
||||
year = 2024;
|
||||
break;
|
||||
default:
|
||||
year = 2025;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -1089,7 +1089,7 @@ static int acpi_pcc_hotkey_add(struct acpi_device *device)
|
||||
PLATFORM_DEVID_NONE, NULL, 0);
|
||||
if (IS_ERR(pcc->platform)) {
|
||||
result = PTR_ERR(pcc->platform);
|
||||
goto out_backlight;
|
||||
goto out_sysfs;
|
||||
}
|
||||
result = device_create_file(&pcc->platform->dev,
|
||||
&dev_attr_cdpower);
|
||||
@@ -1105,6 +1105,8 @@ static int acpi_pcc_hotkey_add(struct acpi_device *device)
|
||||
|
||||
out_platform:
|
||||
platform_device_unregister(pcc->platform);
|
||||
out_sysfs:
|
||||
sysfs_remove_group(&device->dev.kobj, &pcc_attr_group);
|
||||
out_backlight:
|
||||
backlight_device_unregister(pcc->backlight);
|
||||
out_input:
|
||||
|
||||
@@ -183,7 +183,7 @@ static int toshiba_haps_add(struct acpi_device *acpi_dev)
|
||||
|
||||
pr_info("Toshiba HDD Active Protection Sensor device\n");
|
||||
|
||||
haps = kzalloc(sizeof(struct toshiba_haps_dev), GFP_KERNEL);
|
||||
haps = devm_kzalloc(&acpi_dev->dev, sizeof(*haps), GFP_KERNEL);
|
||||
if (!haps)
|
||||
return -ENOMEM;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user