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 ...
Showing the changes to include/uapi (1 of 95 files). Show all
Unified · Split
| @@ -6,7 +6,7 @@ · 5 unmodified lines | ||
| 6 | 6 | * device. This device provides direct user-space access to the SSAM EC. |
| 7 | 7 | * Intended for debugging and development. |
| 8 | 8 | * |
| 9 | − * Copyright (C) 2020 Maximilian Luz <luzmaximilian@gmail.com> | |
| 9 | + * Copyright (C) 2020-2021 Maximilian Luz <luzmaximilian@gmail.com> | |
| 10 | 10 | */ |
| 11 | 11 | |
| 12 | 12 | #ifndef _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H |
| @@ -73,6 +73,75 @@ struct ssam_cdev_request { · 60 unmodified lines | ||
| 73 | 73 | } response; |
| 74 | 74 | } __attribute__((__packed__)); |
| 75 | 75 | |
| 76 | −#define SSAM_CDEV_REQUEST _IOWR(0xA5, 1, struct ssam_cdev_request) | |
| 76 | +/** | |
| 77 | + * struct ssam_cdev_notifier_desc - Notifier descriptor. | |
| 78 | + * @priority: Priority value determining the order in which notifier | |
| 79 | + * callbacks will be called. A higher value means higher | |
| 80 | + * priority, i.e. the associated callback will be executed | |
| 81 | + * earlier than other (lower priority) callbacks. | |
| 82 | + * @target_category: The event target category for which this notifier should | |
| 83 | + * receive events. | |
| 84 | + * | |
| 85 | + * Specifies the notifier that should be registered or unregistered, | |
| 86 | + * specifically with which priority and for which target category of events. | |
| 87 | + */ | |
| 88 | +struct ssam_cdev_notifier_desc { | |
| 89 | + __s32 priority; | |
| 90 | + __u8 target_category; | |
| 91 | +} __attribute__((__packed__)); | |
| 92 | + | |
| 93 | +/** | |
| 94 | + * struct ssam_cdev_event_desc - Event descriptor. | |
| 95 | + * @reg: Registry via which the event will be enabled/disabled. | |
| 96 | + * @reg.target_category: Target category for the event registry requests. | |
| 97 | + * @reg.target_id: Target ID for the event registry requests. | |
| 98 | + * @reg.cid_enable: Command ID for the event-enable request. | |
| 99 | + * @reg.cid_disable: Command ID for the event-disable request. | |
| 100 | + * @id: ID specifying the event. | |
| 101 | + * @id.target_category: Target category of the event source. | |
| 102 | + * @id.instance: Instance ID of the event source. | |
| 103 | + * @flags: Flags used for enabling the event. | |
| 104 | + * | |
| 105 | + * Specifies which event should be enabled/disabled and how to do that. | |
| 106 | + */ | |
| 107 | +struct ssam_cdev_event_desc { | |
| 108 | + struct { | |
| 109 | + __u8 target_category; | |
| 110 | + __u8 target_id; | |
| 111 | + __u8 cid_enable; | |
| 112 | + __u8 cid_disable; | |
| 113 | + } reg; | |
| 114 | + | |
| 115 | + struct { | |
| 116 | + __u8 target_category; | |
| 117 | + __u8 instance; | |
| 118 | + } id; | |
| 119 | + | |
| 120 | + __u8 flags; | |
| 121 | +} __attribute__((__packed__)); | |
| 122 | + | |
| 123 | +/** | |
| 124 | + * struct ssam_cdev_event - SSAM event sent by the EC. | |
| 125 | + * @target_category: Target category of the event source. See &enum ssam_ssh_tc. | |
| 126 | + * @target_id: Target ID of the event source. | |
| 127 | + * @command_id: Command ID of the event. | |
| 128 | + * @instance_id: Instance ID of the event source. | |
| 129 | + * @length: Length of the event payload in bytes. | |
| 130 | + * @data: Event payload data. | |
| 131 | + */ | |
| 132 | +struct ssam_cdev_event { | |
| 133 | + __u8 target_category; | |
| 134 | + __u8 target_id; | |
| 135 | + __u8 command_id; | |
| 136 | + __u8 instance_id; | |
| 137 | + __u16 length; | |
| 138 | + __u8 data[]; | |
| 139 | +} __attribute__((__packed__)); | |
| 140 | + | |
| 141 | +#define SSAM_CDEV_REQUEST _IOWR(0xA5, 1, struct ssam_cdev_request) | |
| 142 | +#define SSAM_CDEV_NOTIF_REGISTER _IOW(0xA5, 2, struct ssam_cdev_notifier_desc) | |
| 143 | +#define SSAM_CDEV_NOTIF_UNREGISTER _IOW(0xA5, 3, struct ssam_cdev_notifier_desc) | |
| 144 | +#define SSAM_CDEV_EVENT_ENABLE _IOW(0xA5, 4, struct ssam_cdev_event_desc) | |
| 145 | +#define SSAM_CDEV_EVENT_DISABLE _IOW(0xA5, 5, struct ssam_cdev_event_desc) | |
| 77 | 146 | |
| 78 | 147 | #endif /* _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H */ |