mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 17:23:36 +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
@ -7,12 +7,11 @@ WMI Driver API
|
||||
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
|
||||
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
|
||||
and/or notification IDs. The modern bus-based interface instead maps each
|
||||
WMI device to a :c:type:`struct wmi_device <wmi_device>`, so it supports
|
||||
WMI devices sharing GUIDs and/or notification IDs. Drivers can then register
|
||||
a :c:type:`struct wmi_driver <wmi_driver>`, which will be bound to compatible
|
||||
WMI devices by the driver core.
|
||||
it has some issues with multiple WMI devices sharing the same GUID.
|
||||
The modern bus-based interface instead maps each WMI device to a
|
||||
:c:type:`struct wmi_device <wmi_device>`, so it supports WMI devices sharing the
|
||||
same GUID. Drivers can then register a :c:type:`struct wmi_driver <wmi_driver>`
|
||||
which will be bound to compatible WMI devices by the driver core.
|
||||
|
||||
.. kernel-doc:: include/linux/wmi.h
|
||||
:internal:
|
||||
|
@ -8,7 +8,7 @@ Introduction
|
||||
============
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
flow with other ACPI methods (_BIX or _BIF for battery related methods
|
||||
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
|
||||
to test different sensor type values, since on some machines this data is
|
||||
not reinitialized upon a warm reset).
|
||||
|
@ -11499,7 +11499,7 @@ F: include/uapi/linux/idxd.h
|
||||
|
||||
INTEL IN FIELD SCAN (IFS) DEVICE
|
||||
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>
|
||||
S: Maintained
|
||||
F: drivers/platform/x86/intel/ifs
|
||||
|
@ -2391,12 +2391,18 @@ static struct attribute *dell_battery_attrs[] = {
|
||||
};
|
||||
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,
|
||||
struct acpi_battery_hook *hook)
|
||||
{
|
||||
/* this currently only supports the primary battery */
|
||||
if (strcmp(battery->desc->name, "BAT0") != 0)
|
||||
return -ENODEV;
|
||||
/* Return 0 instead of an error to avoid being unloaded */
|
||||
if (!dell_battery_supported(battery))
|
||||
return 0;
|
||||
|
||||
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,
|
||||
struct acpi_battery_hook *hook)
|
||||
{
|
||||
if (!dell_battery_supported(battery))
|
||||
return 0;
|
||||
|
||||
device_remove_groups(&battery->dev, dell_battery_groups);
|
||||
return 0;
|
||||
}
|
||||
|
@ -521,6 +521,7 @@ static int __init sysman_init(void)
|
||||
int ret = 0;
|
||||
|
||||
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)) {
|
||||
pr_err("Unable to run on non-Dell system\n");
|
||||
return -ENODEV;
|
||||
|
@ -130,8 +130,6 @@ const struct pmc_reg_map spt_reg_map = {
|
||||
.ppfear_buckets = SPT_PPFEAR_NUM_ENTRIES,
|
||||
.pm_cfg_offset = SPT_PMC_PM_CFG_OFFSET,
|
||||
.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,
|
||||
.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())
|
||||
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];
|
||||
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_ICELAKE_D, 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_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, NULL),
|
||||
X86_MATCH_VFM(INTEL_GRANITERAPIDS_D, NULL),
|
||||
X86_MATCH_VFM(INTEL_PANTHERCOVE_X, NULL),
|
||||
{}
|
||||
};
|
||||
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++) {
|
||||
pdevs[i] = platform_device_register_full(&dev_info->pdev_info[i]);
|
||||
if (IS_ERR(pdevs[i])) {
|
||||
ret = PTR_ERR(pdevs[i]);
|
||||
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,
|
||||
&pdata, sizeof(pdata));
|
||||
if (IS_ERR(pdevs[pdev_count])) {
|
||||
ret = PTR_ERR(pdevs[pdev_count]);
|
||||
x86_android_tablet_remove(pdev);
|
||||
return PTR_ERR(pdevs[pdev_count]);
|
||||
return ret;
|
||||
}
|
||||
pdev_count++;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user