mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-20 02:34:23 +08:00
HID: intel-ish-hid: ishtp: add helper function for client search
Add helper function ishtp_fw_cl_get_client() for client driver searching client information to hide internal details from callers. Signed-off-by: Even Xu <even.xu@intel.com> Reviewed-by: Andriy Shevchenko <andriy.shevchenko@intel.com> Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
parent
816e7ed1c8
commit
e625020b2c
@ -148,6 +148,31 @@ int ishtp_fw_cl_by_uuid(struct ishtp_device *dev, const uuid_le *uuid)
|
||||
}
|
||||
EXPORT_SYMBOL(ishtp_fw_cl_by_uuid);
|
||||
|
||||
/**
|
||||
* ishtp_fw_cl_get_client() - return client information to client
|
||||
* @dev: the ishtp device structure
|
||||
* @uuid: uuid of the client to search
|
||||
*
|
||||
* Search firmware client using UUID and reture related client information.
|
||||
*
|
||||
* Return: pointer of client information on success, NULL on failure.
|
||||
*/
|
||||
struct ishtp_fw_client *ishtp_fw_cl_get_client(struct ishtp_device *dev,
|
||||
const uuid_le *uuid)
|
||||
{
|
||||
int i;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&dev->fw_clients_lock, flags);
|
||||
i = ishtp_fw_cl_by_uuid(dev, uuid);
|
||||
spin_unlock_irqrestore(&dev->fw_clients_lock, flags);
|
||||
if (i < 0 || dev->fw_clients[i].props.fixed_address)
|
||||
return NULL;
|
||||
|
||||
return &dev->fw_clients[i];
|
||||
}
|
||||
EXPORT_SYMBOL(ishtp_fw_cl_get_client);
|
||||
|
||||
/**
|
||||
* ishtp_fw_cl_by_id() - return index to fw_clients for client_id
|
||||
* @dev: the ishtp device structure
|
||||
|
@ -113,5 +113,7 @@ void ishtp_cl_driver_unregister(struct ishtp_cl_driver *driver);
|
||||
int ishtp_register_event_cb(struct ishtp_cl_device *device,
|
||||
void (*read_cb)(struct ishtp_cl_device *));
|
||||
int ishtp_fw_cl_by_uuid(struct ishtp_device *dev, const uuid_le *cuuid);
|
||||
struct ishtp_fw_client *ishtp_fw_cl_get_client(struct ishtp_device *dev,
|
||||
const uuid_le *uuid);
|
||||
|
||||
#endif /* _LINUX_ISHTP_CL_BUS_H */
|
||||
|
Loading…
Reference in New Issue
Block a user