forked from mirrors/linux
		
	platform/x86: wmi: add context pointer field to struct wmi_device_id
When using wmi_install_notify_handler() to initialize a WMI handler a data pointer can be supplied which will be passed on to the notification handler. No similar feature exist when handling WMI events via struct wmi_driver. Add a context field pointer to struct wmi_device_id and add a function find_guid_context() to retrieve that context pointer. Signed-off-by: Mattias Jacobsson <2pi@mok.nu> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
This commit is contained in:
		
							parent
							
								
									3e58167ac3
								
							
						
					
					
						commit
						a48e23385f
					
				
					 2 changed files with 23 additions and 0 deletions
				
			
		|  | @ -146,6 +146,28 @@ static bool find_guid(const char *guid_string, struct wmi_block **out) | |||
| 	return false; | ||||
| } | ||||
| 
 | ||||
| static const void *find_guid_context(struct wmi_block *wblock, | ||||
| 				      struct wmi_driver *wdriver) | ||||
| { | ||||
| 	const struct wmi_device_id *id; | ||||
| 	uuid_le guid_input; | ||||
| 
 | ||||
| 	if (wblock == NULL || wdriver == NULL) | ||||
| 		return NULL; | ||||
| 	if (wdriver->id_table == NULL) | ||||
| 		return NULL; | ||||
| 
 | ||||
| 	id = wdriver->id_table; | ||||
| 	while (*id->guid_string) { | ||||
| 		if (uuid_le_to_bin(id->guid_string, &guid_input)) | ||||
| 			continue; | ||||
| 		if (!memcmp(wblock->gblock.guid, &guid_input, 16)) | ||||
| 			return id->context; | ||||
| 		id++; | ||||
| 	} | ||||
| 	return NULL; | ||||
| } | ||||
| 
 | ||||
| static int get_subobj_info(acpi_handle handle, const char *pathname, | ||||
| 			   struct acpi_device_info **info) | ||||
| { | ||||
|  |  | |||
|  | @ -798,6 +798,7 @@ struct tee_client_device_id { | |||
|  */ | ||||
| struct wmi_device_id { | ||||
| 	const char guid_string[UUID_STRING_LEN+1]; | ||||
| 	const void *context; | ||||
| }; | ||||
| 
 | ||||
| #endif /* LINUX_MOD_DEVICETABLE_H */ | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Mattias Jacobsson
						Mattias Jacobsson