// SPDX-License-Identifier: GPL-2.0-only /* * ISHTP-HID glue driver. * * Copyright (c) 2012-2016, Intel Corporation. */ #include <linux/hid.h> #include <linux/intel-ish-client-if.h> #include <uapi/linux/input.h> #include "ishtp-hid.h" /** * ishtp_hid_parse() - hid-core .parse() callback * @hid: hid device instance * * This function gets called during call to hid_add_device * * Return: 0 on success and non zero on error */ static int ishtp_hid_parse(struct hid_device *hid) { … } /* Empty callbacks with success return code */ static int ishtp_hid_start(struct hid_device *hid) { … } static void ishtp_hid_stop(struct hid_device *hid) { … } static int ishtp_hid_open(struct hid_device *hid) { … } static void ishtp_hid_close(struct hid_device *hid) { … } static int ishtp_raw_request(struct hid_device *hid, unsigned char reportnum, __u8 *buf, size_t len, unsigned char rtype, int reqtype) { … } /** * ishtp_hid_request() - hid-core .request() callback * @hid: hid device instance * @rep: pointer to hid_report * @reqtype: type of req. [GET|SET]_REPORT * * This function is used to set/get feaure/input report. */ static void ishtp_hid_request(struct hid_device *hid, struct hid_report *rep, int reqtype) { … } /** * ishtp_wait_for_response() - hid-core .wait() callback * @hid: hid device instance * * This function is used to wait after get feaure/input report. * * Return: 0 on success and non zero on error */ static int ishtp_wait_for_response(struct hid_device *hid) { … } /** * ishtp_hid_wakeup() - Wakeup caller * @hid: hid device instance * * This function will wakeup caller waiting for Get/Set feature report */ void ishtp_hid_wakeup(struct hid_device *hid) { … } static const struct hid_ll_driver ishtp_hid_ll_driver = …; /** * ishtp_hid_probe() - hid register ll driver * @cur_hid_dev: Index of hid device calling to register * @client_data: Client data pointer * * This function is used to allocate and add HID device. * * Return: 0 on success, non zero on error */ int ishtp_hid_probe(unsigned int cur_hid_dev, struct ishtp_cl_data *client_data) { … } /** * ishtp_hid_remove() - Remove registered hid device * @client_data: client data pointer * * This function is used to destroy allocatd HID device. */ void ishtp_hid_remove(struct ishtp_cl_data *client_data) { … }