mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
platform-drivers-x86 for v6.12-2
Highlights: - Intel PMC fix for suspend/resume issues on some Sky and Kaby Lake laptops - Intel Diamond Rapids hw-id additions - Documentation and MAINTAINERS fixes - Some other small fixes The following is an automated git shortlog grouped by driver: ISST: - Add Diamond Rapids to support list - Fix the KASAN report slab-out-of-bounds bug MAINTAINERS: - Update Intel In Field Scan(IFS) entry dell-ddv: - Fix typo in documentation dell-laptop: - Do not fail when encountering unsupported batteries dell-sysman: - add support for alienware products intel/pmc: - Disable ACPI PM Timer disabling on Sky and Kaby Lake platform/x86/intel: - power-domains: Add Diamond Rapids support wmi: - Update WMI driver API documentation x86-android-tablets: - Fix use after free on platform_device_register() errors -----BEGIN PGP SIGNATURE----- iQFIBAABCAAyFiEEuvA7XScYQRpenhd+kuxHeUQDJ9wFAmcCbogUHGhkZWdvZWRl QHJlZGhhdC5jb20ACgkQkuxHeUQDJ9xFEgf/UYsNHFO5P5IVwWIoXzyFgRNg8zQU trABCxfCZztZOEwRVJKZ0lVLbkKULdBJE4Tj7RwhZiCubcupV5LJT5OLe5R+AFGK qhG2FTo9uHacwEXPMZyBAnj+aW6sSnVATAQgBZFnZ0SdInuOjlAmMvAL48MfNnEO Nw7EiGtAvkl7R9XHBsF7vs6EFewjy+ZFMoslZq90UUhfK51DCu74w7hv8vY5oG50 pstbW3aqn5nmCKcPhQNW7ZmG6ukpdKkl74u1hdW6JRuBruFrZWR6px1xax6+Q/Is /ib4x69irCN+sBTX7fGTPNsO+Oaq0GmUfeiGdcZA2SjmIJ8P4yvPAuNBbw== =Nfjz -----END PGP SIGNATURE----- Merge tag 'platform-drivers-x86-v6.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86 Pull x86 platform driver fixes from Hans de Goede: - Intel PMC fix for suspend/resume issues on some Sky and Kaby Lake laptops - Intel Diamond Rapids hw-id additions - Documentation and MAINTAINERS fixes - Some other small fixes * tag 'platform-drivers-x86-v6.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: platform/x86: x86-android-tablets: Fix use after free on platform_device_register() errors platform/x86: wmi: Update WMI driver API documentation platform/x86: dell-ddv: Fix typo in documentation platform/x86: dell-sysman: add support for alienware products platform/x86/intel: power-domains: Add Diamond Rapids support platform/x86: ISST: Add Diamond Rapids to support list platform/x86:intel/pmc: Disable ACPI PM Timer disabling on Sky and Kaby Lake platform/x86: dell-laptop: Do not fail when encountering unsupported batteries MAINTAINERS: Update Intel In Field Scan(IFS) entry platform/x86: ISST: Fix the KASAN report slab-out-of-bounds bug
This commit is contained in:
commit
c8d9f2c7aa
9 changed files with 30 additions and 17 deletions
|
@ -7,12 +7,11 @@ WMI Driver API
|
||||||
The WMI driver core supports a more modern bus-based interface for interacting
|
The WMI driver core supports a more modern bus-based interface for interacting
|
||||||
with WMI devices, and an older GUID-based interface. The latter interface is
|
with WMI devices, and an older GUID-based interface. The latter interface is
|
||||||
considered to be deprecated, so new WMI drivers should generally avoid it since
|
considered to be deprecated, so new WMI drivers should generally avoid it since
|
||||||
it has some issues with multiple WMI devices and events sharing the same GUIDs
|
it has some issues with multiple WMI devices sharing the same GUID.
|
||||||
and/or notification IDs. The modern bus-based interface instead maps each
|
The modern bus-based interface instead maps each WMI device to a
|
||||||
WMI device to a :c:type:`struct wmi_device <wmi_device>`, so it supports
|
:c:type:`struct wmi_device <wmi_device>`, so it supports WMI devices sharing the
|
||||||
WMI devices sharing GUIDs and/or notification IDs. Drivers can then register
|
same GUID. Drivers can then register a :c:type:`struct wmi_driver <wmi_driver>`
|
||||||
a :c:type:`struct wmi_driver <wmi_driver>`, which will be bound to compatible
|
which will be bound to compatible WMI devices by the driver core.
|
||||||
WMI devices by the driver core.
|
|
||||||
|
|
||||||
.. kernel-doc:: include/linux/wmi.h
|
.. kernel-doc:: include/linux/wmi.h
|
||||||
:internal:
|
:internal:
|
||||||
|
|
|
@ -8,7 +8,7 @@ Introduction
|
||||||
============
|
============
|
||||||
|
|
||||||
Many Dell notebooks made after ~2020 support a WMI-based interface for
|
Many Dell notebooks made after ~2020 support a WMI-based interface for
|
||||||
retrieving various system data like battery temperature, ePPID, diagostic data
|
retrieving various system data like battery temperature, ePPID, diagnostic data
|
||||||
and fan/thermal sensor data.
|
and fan/thermal sensor data.
|
||||||
|
|
||||||
This interface is likely used by the `Dell Data Vault` software on Windows,
|
This interface is likely used by the `Dell Data Vault` software on Windows,
|
||||||
|
@ -277,7 +277,7 @@ Reverse-Engineering the DDV WMI interface
|
||||||
4. Try to deduce the meaning of a certain WMI method by comparing the control
|
4. Try to deduce the meaning of a certain WMI method by comparing the control
|
||||||
flow with other ACPI methods (_BIX or _BIF for battery related methods
|
flow with other ACPI methods (_BIX or _BIF for battery related methods
|
||||||
for example).
|
for example).
|
||||||
5. Use the built-in UEFI diagostics to view sensor types/values for fan/thermal
|
5. Use the built-in UEFI diagnostics to view sensor types/values for fan/thermal
|
||||||
related methods (sometimes overwriting static ACPI data fields can be used
|
related methods (sometimes overwriting static ACPI data fields can be used
|
||||||
to test different sensor type values, since on some machines this data is
|
to test different sensor type values, since on some machines this data is
|
||||||
not reinitialized upon a warm reset).
|
not reinitialized upon a warm reset).
|
||||||
|
|
|
@ -11499,7 +11499,7 @@ F: include/uapi/linux/idxd.h
|
||||||
|
|
||||||
INTEL IN FIELD SCAN (IFS) DEVICE
|
INTEL IN FIELD SCAN (IFS) DEVICE
|
||||||
M: Jithu Joseph <jithu.joseph@intel.com>
|
M: Jithu Joseph <jithu.joseph@intel.com>
|
||||||
R: Ashok Raj <ashok.raj@intel.com>
|
R: Ashok Raj <ashok.raj.linux@gmail.com>
|
||||||
R: Tony Luck <tony.luck@intel.com>
|
R: Tony Luck <tony.luck@intel.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/platform/x86/intel/ifs
|
F: drivers/platform/x86/intel/ifs
|
||||||
|
|
|
@ -2391,12 +2391,18 @@ static struct attribute *dell_battery_attrs[] = {
|
||||||
};
|
};
|
||||||
ATTRIBUTE_GROUPS(dell_battery);
|
ATTRIBUTE_GROUPS(dell_battery);
|
||||||
|
|
||||||
|
static bool dell_battery_supported(struct power_supply *battery)
|
||||||
|
{
|
||||||
|
/* We currently only support the primary battery */
|
||||||
|
return strcmp(battery->desc->name, "BAT0") == 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int dell_battery_add(struct power_supply *battery,
|
static int dell_battery_add(struct power_supply *battery,
|
||||||
struct acpi_battery_hook *hook)
|
struct acpi_battery_hook *hook)
|
||||||
{
|
{
|
||||||
/* this currently only supports the primary battery */
|
/* Return 0 instead of an error to avoid being unloaded */
|
||||||
if (strcmp(battery->desc->name, "BAT0") != 0)
|
if (!dell_battery_supported(battery))
|
||||||
return -ENODEV;
|
return 0;
|
||||||
|
|
||||||
return device_add_groups(&battery->dev, dell_battery_groups);
|
return device_add_groups(&battery->dev, dell_battery_groups);
|
||||||
}
|
}
|
||||||
|
@ -2404,6 +2410,9 @@ static int dell_battery_add(struct power_supply *battery,
|
||||||
static int dell_battery_remove(struct power_supply *battery,
|
static int dell_battery_remove(struct power_supply *battery,
|
||||||
struct acpi_battery_hook *hook)
|
struct acpi_battery_hook *hook)
|
||||||
{
|
{
|
||||||
|
if (!dell_battery_supported(battery))
|
||||||
|
return 0;
|
||||||
|
|
||||||
device_remove_groups(&battery->dev, dell_battery_groups);
|
device_remove_groups(&battery->dev, dell_battery_groups);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -521,6 +521,7 @@ static int __init sysman_init(void)
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
if (!dmi_find_device(DMI_DEV_TYPE_OEM_STRING, "Dell System", NULL) &&
|
if (!dmi_find_device(DMI_DEV_TYPE_OEM_STRING, "Dell System", NULL) &&
|
||||||
|
!dmi_find_device(DMI_DEV_TYPE_OEM_STRING, "Alienware", NULL) &&
|
||||||
!dmi_find_device(DMI_DEV_TYPE_OEM_STRING, "www.dell.com", NULL)) {
|
!dmi_find_device(DMI_DEV_TYPE_OEM_STRING, "www.dell.com", NULL)) {
|
||||||
pr_err("Unable to run on non-Dell system\n");
|
pr_err("Unable to run on non-Dell system\n");
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
|
@ -130,8 +130,6 @@ const struct pmc_reg_map spt_reg_map = {
|
||||||
.ppfear_buckets = SPT_PPFEAR_NUM_ENTRIES,
|
.ppfear_buckets = SPT_PPFEAR_NUM_ENTRIES,
|
||||||
.pm_cfg_offset = SPT_PMC_PM_CFG_OFFSET,
|
.pm_cfg_offset = SPT_PMC_PM_CFG_OFFSET,
|
||||||
.pm_read_disable_bit = SPT_PMC_READ_DISABLE_BIT,
|
.pm_read_disable_bit = SPT_PMC_READ_DISABLE_BIT,
|
||||||
.acpi_pm_tmr_ctl_offset = SPT_PMC_ACPI_PM_TMR_CTL_OFFSET,
|
|
||||||
.acpi_pm_tmr_disable_bit = SPT_PMC_BIT_ACPI_PM_TMR_DISABLE,
|
|
||||||
.ltr_ignore_max = SPT_NUM_IP_IGN_ALLOWED,
|
.ltr_ignore_max = SPT_NUM_IP_IGN_ALLOWED,
|
||||||
.pm_vric1_offset = SPT_PMC_VRIC1_OFFSET,
|
.pm_vric1_offset = SPT_PMC_VRIC1_OFFSET,
|
||||||
};
|
};
|
||||||
|
|
|
@ -316,7 +316,9 @@ static struct pci_dev *_isst_if_get_pci_dev(int cpu, int bus_no, int dev, int fn
|
||||||
cpu >= nr_cpu_ids || cpu >= num_possible_cpus())
|
cpu >= nr_cpu_ids || cpu >= num_possible_cpus())
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
pkg_id = topology_physical_package_id(cpu);
|
pkg_id = topology_logical_package_id(cpu);
|
||||||
|
if (pkg_id >= topology_max_packages())
|
||||||
|
return NULL;
|
||||||
|
|
||||||
bus_number = isst_cpu_info[cpu].bus_info[bus_no];
|
bus_number = isst_cpu_info[cpu].bus_info[bus_no];
|
||||||
if (bus_number < 0)
|
if (bus_number < 0)
|
||||||
|
@ -807,6 +809,7 @@ static const struct x86_cpu_id isst_cpu_ids[] = {
|
||||||
X86_MATCH_VFM(INTEL_GRANITERAPIDS_X, SST_HPM_SUPPORTED),
|
X86_MATCH_VFM(INTEL_GRANITERAPIDS_X, SST_HPM_SUPPORTED),
|
||||||
X86_MATCH_VFM(INTEL_ICELAKE_D, 0),
|
X86_MATCH_VFM(INTEL_ICELAKE_D, 0),
|
||||||
X86_MATCH_VFM(INTEL_ICELAKE_X, 0),
|
X86_MATCH_VFM(INTEL_ICELAKE_X, 0),
|
||||||
|
X86_MATCH_VFM(INTEL_PANTHERCOVE_X, SST_HPM_SUPPORTED),
|
||||||
X86_MATCH_VFM(INTEL_SAPPHIRERAPIDS_X, 0),
|
X86_MATCH_VFM(INTEL_SAPPHIRERAPIDS_X, 0),
|
||||||
X86_MATCH_VFM(INTEL_SKYLAKE_X, SST_MBOX_SUPPORTED),
|
X86_MATCH_VFM(INTEL_SKYLAKE_X, SST_MBOX_SUPPORTED),
|
||||||
{}
|
{}
|
||||||
|
|
|
@ -82,6 +82,7 @@ static const struct x86_cpu_id tpmi_cpu_ids[] = {
|
||||||
X86_MATCH_VFM(INTEL_ATOM_CRESTMONT_X, NULL),
|
X86_MATCH_VFM(INTEL_ATOM_CRESTMONT_X, NULL),
|
||||||
X86_MATCH_VFM(INTEL_ATOM_CRESTMONT, NULL),
|
X86_MATCH_VFM(INTEL_ATOM_CRESTMONT, NULL),
|
||||||
X86_MATCH_VFM(INTEL_GRANITERAPIDS_D, NULL),
|
X86_MATCH_VFM(INTEL_GRANITERAPIDS_D, NULL),
|
||||||
|
X86_MATCH_VFM(INTEL_PANTHERCOVE_X, NULL),
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(x86cpu, tpmi_cpu_ids);
|
MODULE_DEVICE_TABLE(x86cpu, tpmi_cpu_ids);
|
||||||
|
|
|
@ -390,8 +390,9 @@ static __init int x86_android_tablet_probe(struct platform_device *pdev)
|
||||||
for (i = 0; i < pdev_count; i++) {
|
for (i = 0; i < pdev_count; i++) {
|
||||||
pdevs[i] = platform_device_register_full(&dev_info->pdev_info[i]);
|
pdevs[i] = platform_device_register_full(&dev_info->pdev_info[i]);
|
||||||
if (IS_ERR(pdevs[i])) {
|
if (IS_ERR(pdevs[i])) {
|
||||||
|
ret = PTR_ERR(pdevs[i]);
|
||||||
x86_android_tablet_remove(pdev);
|
x86_android_tablet_remove(pdev);
|
||||||
return PTR_ERR(pdevs[i]);
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -443,8 +444,9 @@ static __init int x86_android_tablet_probe(struct platform_device *pdev)
|
||||||
PLATFORM_DEVID_AUTO,
|
PLATFORM_DEVID_AUTO,
|
||||||
&pdata, sizeof(pdata));
|
&pdata, sizeof(pdata));
|
||||||
if (IS_ERR(pdevs[pdev_count])) {
|
if (IS_ERR(pdevs[pdev_count])) {
|
||||||
|
ret = PTR_ERR(pdevs[pdev_count]);
|
||||||
x86_android_tablet_remove(pdev);
|
x86_android_tablet_remove(pdev);
|
||||||
return PTR_ERR(pdevs[pdev_count]);
|
return ret;
|
||||||
}
|
}
|
||||||
pdev_count++;
|
pdev_count++;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue