platform-drivers-x86 for v5.14-1
Highlights:
- New think-lmi driver adding support for changing BIOS settings from
within Linux using the standard firmware-attributes class sysfs API
- MS Surface aggregator-cdev now also supports forwarding events to
user-space (for debugging / new driver development purposes only)
- New intel_skl_int3472 driver this provides the necessary glue to
translate ACPI table information to GPIOs, regulators, etc. for
camera sensors on Intel devices with IPU3 attached MIPI cameras
- A whole bunch of other fixes + device-specific quirk additions
- New devm_work_autocancel() devm-helpers.h function
Note this also contains merges of the following immutable branches/tags
shared with other subsystems:
- platform-drivers-x86-goodix-v5.14-1
- intel-gpio-v5.14-1
- linux-pm/acpi-scan
- devm-helpers-v5.14-1
The following is an automated git shortlog grouped by driver:
ACPI:
- scan: initialize local variable to avoid garbage being returned
- scan: Add function to fetch dependent of ACPI device
- scan: Extend acpi_walk_dep_device_list()
- scan: Rearrange dep_unmet initialization
Add intel_skl_int3472 driver:
- Add intel_skl_int3472 driver
ISST:
- Use numa node id for cpu pci dev mapping
- Optimize CPU to PCI device mapping
Input:
- goodix - platform/x86: touchscreen_dmi - Move upside down quirks to touchscreen_dmi.c
MAINTAINERS:
- Update IRC link for Surface System Aggregator subsystem
- Update info for telemetry
Merge remote-tracking branch 'linux-pm/acpi-scan' into review-hans:
- Merge remote-tracking branch 'linux-pm/acpi-scan' into review-hans
Merge tag 'devm-helpers-v5.14-1' into review-hans:
- Merge tag 'devm-helpers-v5.14-1' into review-hans
Merge tag 'intel-gpio-v5.14-1' into review-hans:
- Merge tag 'intel-gpio-v5.14-1' into review-hans
Merge tag 'platform-drivers-x86-goodix-v5.14-1' into review-hans:
- Merge tag 'platform-drivers-x86-goodix-v5.14-1' into review-hans
Remove "default n" entries:
- Remove "default n" entries
Rename hp-wireless to wireless-hotkey:
- Rename hp-wireless to wireless-hotkey
asus-nb-wmi:
- Revert "add support for ASUS ROG Zephyrus G14 and G15"
- Revert "Drop duplicate DMI quirk structures"
dcdbas:
- drop unneeded assignment in host_control_smi()
dell-privacy:
- Add support for Dell hardware privacy
dell-wmi:
- Rename dell-wmi.c to dell-wmi-base.c
dell-wmi-sysman:
- Change user experience when Admin/System Password is modified
- fw_attr_inuse can be static
- Use firmware_attributes_class helper
- Make populate_foo_data functions more robust
dell-wmi-sysman/think-lmi:
- Make fw_attr_class global static
devm-helpers:
- Add resource managed version of work init
docs:
- driver-api: Update Surface Aggregator user-space interface documentation
extcon:
- extcon-max8997: Simplify driver using devm
- extcon-max8997: Fix IRQ freeing at error path
- extcon-max77693.c: Fix potential work-queue cancellation race
- extcon-max14577: Fix potential work-queue cancellation race
firmware_attributes_class:
- Create helper file for handling firmware-attributes class registration events
gpio:
- wcove: Split error handling for CTRL and IRQ registers
- wcove: Unify style of to_reg() with to_ireg()
- wcove: Use IRQ hardware number getter instead of direct access
- crystalcove: remove platform_set_drvdata() + cleanup probe
gpiolib:
- acpi: Add acpi_gpio_get_io_resource()
- acpi: Introduce acpi_get_and_request_gpiod() helper
hdaps:
- Constify static attribute_group struct
ideapad-laptop:
- Ignore VPC event bit 10
intel_cht_int33fe:
- Move to its own subfolder
- Correct "displayport" fwnode reference
intel_ips:
- fix set but unused warning in read_mgtv
intel_pmt_crashlog:
- Constify static attribute_group struct
intel_skl_int3472:
- Uninitialized variable in skl_int3472_handle_gpio_resources()
- Move to intel/ subfolder
- Provide skl_int3472_unregister_clock()
- Provide skl_int3472_unregister_regulator()
- Use ACPI GPIO resource directly
- Fix dependencies (drop CLKDEV_LOOKUP)
- Free ACPI device resources after use
mfd:
- tps68470: Remove tps68470 MFD driver
platform/mellanox:
- mlxreg-hotplug: Revert "move to use request_irq by IRQF_NO_AUTOEN flag"
platform/surface:
- aggregator: Use list_move_tail instead of list_del/list_add_tail in ssh_packet_layer.c
- aggregator: Use list_move_tail instead of list_del/list_add_tail in ssh_request_layer.c
- aggregator: Drop unnecessary variable initialization
- aggregator: Do not return uninitialized value
- aggregator_cdev: Add lockdep support
- aggregator_cdev: Allow enabling of events from user-space
- aggregator_cdev: Add support for forwarding events to user-space
- aggregator: Update copyright
- aggregator: Allow enabling of events without notifiers
- aggregator: Allow registering notifiers without enabling events
- dtx: Add missing mutex_destroy() call in failure path
- aggregator: Fix event disable function
- aggregator_registry: Consolidate node groups for 5th- and 6th-gen devices
- aggregator_registry: Add support for 13" Intel Surface Laptop 4
- aggregator_registry: Update comments for 15" AMD Surface Laptop 4
samsung-laptop:
- set debugfs blobs to read only
- use octal numbers for rwx file permissions
tc1100-wmi:
- Constify static attribute_group struct
think-lmi:
- Move kfree(setting->possible_values) to tlmi_attr_setting_release()
- Split current_value to reflect only the value
- Fix issues with duplicate attributes
- Return EINVAL when kbdlang gets set to a 0 length string
- Add missing MODULE_DEVICE_TABLE
- Avoid potential read before start of the buffer
- Fix check for admin password being set
- Add WMI interface support on Lenovo platforms
thinkpad-lmi:
- Remove unused display_name member from struct tlmi_pwd_setting
thinkpad_acpi:
- Add X1 Carbon Gen 9 second fan support
- Fix inconsistent indenting
tools/power/x86/intel-speed-select:
- v1.10 release
- Fix uncore memory frequency display
toshiba_acpi:
- Fix missing error code in toshiba_acpi_setup_keyboard()
toshiba_haps:
- Fix missing newline in pr_debug call in toshiba_haps_notify
touchscreen_dmi:
- Fix Chuwi Hi10 Pro comment
- Add info for the Goodix GT912 panel of TM800A550L tablets
- Add an extra entry for the upside down Goodix touchscreen on Teclast X89 tablets
x86/platform/uv:
- Constify static attribute_group struct
-----BEGIN PGP SIGNATURE-----
iQFIBAABCAAyFiEEuvA7XScYQRpenhd+kuxHeUQDJ9wFAmDbELwUHGhkZWdvZWRl
QHJlZGhhdC5jb20ACgkQkuxHeUQDJ9yp2wgAj1mTOJi/4Rx1g8wXLpP/hflEkFMU
yyMeKe3LOEzuo/LZUfW4tqWiXa4aTgN6rUOF8KUumsIor/72hKcczuPVY+qCqF7V
qYZ0vMG93DfAyVPQvBrNjHMXiVevD/gMFRqJEOOgXt96B6Zea4vh1pBvLACAHFZ0
bjkZDX3cO89TSfUF7uhiU9UkMvMMAVs34Knc1Pe4QnZ16e2kPGcKip3qb73yT+xC
8NVRgE6fdSIJfDAVzqpdh91rfDdzHDJ6vT10uijOTkriJciN07UKtYuK5StCpAo5
sXIQllHySHRHj5N0IWZ04w6RMQ+l/9CaHDttkYWW3fV1EU9SVzvp/+d6zA==
=tAuE
-----END PGP SIGNATURE-----
Merge tag 'platform-drivers-x86-v5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
Pull x86 platform driver updates from Hans de Goede:
"Highlights:
- New think-lmi driver adding support for changing Lenovo Thinkpad
BIOS settings from within Linux using the standard firmware-
attributes class sysfs API
- MS Surface aggregator-cdev now also supports forwarding events to
user-space (for debugging / new driver development purposes only)
- New intel_skl_int3472 driver this provides the necessary glue to
translate ACPI table information to GPIOs, regulators, etc. for
camera sensors on Intel devices with IPU3 attached MIPI cameras
- A whole bunch of other fixes + device-specific quirk additions
- New devm_work_autocancel() devm-helpers.h function"
* tag 'platform-drivers-x86-v5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (83 commits)
platform/x86: dell-wmi-sysman: Change user experience when Admin/System Password is modified
platform/x86: intel_skl_int3472: Uninitialized variable in skl_int3472_handle_gpio_resources()
platform/x86: think-lmi: Move kfree(setting->possible_values) to tlmi_attr_setting_release()
platform/x86: think-lmi: Split current_value to reflect only the value
platform/x86: think-lmi: Fix issues with duplicate attributes
platform/x86: think-lmi: Return EINVAL when kbdlang gets set to a 0 length string
platform/x86: intel_cht_int33fe: Move to its own subfolder
platform/x86: intel_skl_int3472: Move to intel/ subfolder
platform/x86: intel_skl_int3472: Provide skl_int3472_unregister_clock()
platform/x86: intel_skl_int3472: Provide skl_int3472_unregister_regulator()
platform/x86: intel_skl_int3472: Use ACPI GPIO resource directly
platform/x86: intel_skl_int3472: Fix dependencies (drop CLKDEV_LOOKUP)
platform/x86: intel_skl_int3472: Free ACPI device resources after use
platform/x86: Remove "default n" entries
platform/x86: ISST: Use numa node id for cpu pci dev mapping
platform/x86: ISST: Optimize CPU to PCI device mapping
tools/power/x86/intel-speed-select: v1.10 release
tools/power/x86/intel-speed-select: Fix uncore memory frequency display
extcon: extcon-max8997: Simplify driver using devm
extcon: extcon-max8997: Fix IRQ freeing at error path
...
This commit is contained in:
commit
776ba3ad65
95 changed files with 4286 additions and 693 deletions
|
|
@ -1097,6 +1097,8 @@ void __acpi_handle_debug(struct _ddebug *descriptor, acpi_handle handle, const c
|
|||
#if defined(CONFIG_ACPI) && defined(CONFIG_GPIOLIB)
|
||||
bool acpi_gpio_get_irq_resource(struct acpi_resource *ares,
|
||||
struct acpi_resource_gpio **agpio);
|
||||
bool acpi_gpio_get_io_resource(struct acpi_resource *ares,
|
||||
struct acpi_resource_gpio **agpio);
|
||||
int acpi_dev_gpio_irq_get_by(struct acpi_device *adev, const char *name, int index);
|
||||
#else
|
||||
static inline bool acpi_gpio_get_irq_resource(struct acpi_resource *ares,
|
||||
|
|
@ -1104,6 +1106,11 @@ static inline bool acpi_gpio_get_irq_resource(struct acpi_resource *ares,
|
|||
{
|
||||
return false;
|
||||
}
|
||||
static inline bool acpi_gpio_get_io_resource(struct acpi_resource *ares,
|
||||
struct acpi_resource_gpio **agpio)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
static inline int acpi_dev_gpio_irq_get_by(struct acpi_device *adev,
|
||||
const char *name, int index)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -51,4 +51,29 @@ static inline int devm_delayed_work_autocancel(struct device *dev,
|
|||
return devm_add_action(dev, devm_delayed_work_drop, w);
|
||||
}
|
||||
|
||||
static inline void devm_work_drop(void *res)
|
||||
{
|
||||
cancel_work_sync(res);
|
||||
}
|
||||
|
||||
/**
|
||||
* devm_work_autocancel - Resource-managed work allocation
|
||||
* @dev: Device which lifetime work is bound to
|
||||
* @w: Work to be added (and automatically cancelled)
|
||||
* @worker: Worker function
|
||||
*
|
||||
* Initialize work which is automatically cancelled when driver is detached.
|
||||
* A few drivers need to queue work which must be cancelled before driver
|
||||
* is detached to avoid accessing removed resources.
|
||||
* devm_work_autocancel() can be used to omit the explicit
|
||||
* cancelleation when driver is detached.
|
||||
*/
|
||||
static inline int devm_work_autocancel(struct device *dev,
|
||||
struct work_struct *w,
|
||||
work_func_t worker)
|
||||
{
|
||||
INIT_WORK(w, worker);
|
||||
return devm_add_action(dev, devm_work_drop, w);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -692,6 +692,8 @@ int devm_acpi_dev_add_driver_gpios(struct device *dev,
|
|||
const struct acpi_gpio_mapping *gpios);
|
||||
void devm_acpi_dev_remove_driver_gpios(struct device *dev);
|
||||
|
||||
struct gpio_desc *acpi_get_and_request_gpiod(char *path, int pin, char *label);
|
||||
|
||||
#else /* CONFIG_GPIOLIB && CONFIG_ACPI */
|
||||
|
||||
struct acpi_device;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
* managing access and communication to and from the SSAM EC, as well as main
|
||||
* communication structures and definitions.
|
||||
*
|
||||
* Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
|
||||
* Copyright (C) 2019-2021 Maximilian Luz <luzmaximilian@gmail.com>
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_SURFACE_AGGREGATOR_CONTROLLER_H
|
||||
|
|
@ -795,6 +795,20 @@ enum ssam_event_mask {
|
|||
#define SSAM_EVENT_REGISTRY_REG \
|
||||
SSAM_EVENT_REGISTRY(SSAM_SSH_TC_REG, 0x02, 0x01, 0x02)
|
||||
|
||||
/**
|
||||
* enum ssam_event_notifier_flags - Flags for event notifiers.
|
||||
* @SSAM_EVENT_NOTIFIER_OBSERVER:
|
||||
* The corresponding notifier acts as observer. Registering a notifier
|
||||
* with this flag set will not attempt to enable any event. Equally,
|
||||
* unregistering will not attempt to disable any event. Note that a
|
||||
* notifier with this flag may not even correspond to a certain event at
|
||||
* all, only to a specific event target category. Event matching will not
|
||||
* be influenced by this flag.
|
||||
*/
|
||||
enum ssam_event_notifier_flags {
|
||||
SSAM_EVENT_NOTIFIER_OBSERVER = BIT(0),
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ssam_event_notifier - Notifier block for SSAM events.
|
||||
* @base: The base notifier block with callback function and priority.
|
||||
|
|
@ -803,6 +817,7 @@ enum ssam_event_mask {
|
|||
* @event.id: ID specifying the event.
|
||||
* @event.mask: Flags determining how events are matched to the notifier.
|
||||
* @event.flags: Flags used for enabling the event.
|
||||
* @flags: Notifier flags (see &enum ssam_event_notifier_flags).
|
||||
*/
|
||||
struct ssam_event_notifier {
|
||||
struct ssam_notifier_block base;
|
||||
|
|
@ -813,6 +828,8 @@ struct ssam_event_notifier {
|
|||
enum ssam_event_mask mask;
|
||||
u8 flags;
|
||||
} event;
|
||||
|
||||
unsigned long flags;
|
||||
};
|
||||
|
||||
int ssam_notifier_register(struct ssam_controller *ctrl,
|
||||
|
|
@ -821,4 +838,12 @@ int ssam_notifier_register(struct ssam_controller *ctrl,
|
|||
int ssam_notifier_unregister(struct ssam_controller *ctrl,
|
||||
struct ssam_event_notifier *n);
|
||||
|
||||
int ssam_controller_event_enable(struct ssam_controller *ctrl,
|
||||
struct ssam_event_registry reg,
|
||||
struct ssam_event_id id, u8 flags);
|
||||
|
||||
int ssam_controller_event_disable(struct ssam_controller *ctrl,
|
||||
struct ssam_event_registry reg,
|
||||
struct ssam_event_id id, u8 flags);
|
||||
|
||||
#endif /* _LINUX_SURFACE_AGGREGATOR_CONTROLLER_H */
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
* Provides support for non-platform/non-ACPI SSAM clients via dedicated
|
||||
* subsystem.
|
||||
*
|
||||
* Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
|
||||
* Copyright (C) 2019-2021 Maximilian Luz <luzmaximilian@gmail.com>
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_SURFACE_AGGREGATOR_DEVICE_H
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
* Surface System Aggregator Module (SSAM). Provides the interface for basic
|
||||
* packet- and request-based communication with the SSAM EC via SSH.
|
||||
*
|
||||
* Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
|
||||
* Copyright (C) 2019-2021 Maximilian Luz <luzmaximilian@gmail.com>
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_SURFACE_AGGREGATOR_SERIAL_HUB_H
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue