summaryrefslogtreecommitdiff
path: root/include/linux/intel-ish-client-if.h
diff options
context:
space:
mode:
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>2019-03-18 12:14:22 -0700
committerJiri Kosina <jkosina@suse.cz>2019-03-19 11:57:23 +0100
commite00a864f976ab2646929ae82aa65ccd05a4f7539 (patch)
tree6d879843fd2779a82a0b813b46acda0106cc3ee7 /include/linux/intel-ish-client-if.h
parentc2012ec06204b1c92c7ed683ac36d53472a37be4 (diff)
downloadlwn-e00a864f976ab2646929ae82aa65ccd05a4f7539.tar.gz
lwn-e00a864f976ab2646929ae82aa65ccd05a4f7539.zip
HID: intel-ish-hid: Move driver registry functions
Move the driver registry with the ishtp bus to the common interface file, which clients can include. Also rename __ishtp_cl_driver_register() to ishtp_cl_driver_register() and removed define for ishtp_cl_driver_register. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'include/linux/intel-ish-client-if.h')
-rw-r--r--include/linux/intel-ish-client-if.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/include/linux/intel-ish-client-if.h b/include/linux/intel-ish-client-if.h
index 11e285172735..abc0b8122f07 100644
--- a/include/linux/intel-ish-client-if.h
+++ b/include/linux/intel-ish-client-if.h
@@ -10,6 +10,31 @@
struct ishtp_cl_device;
+/**
+ * struct ishtp_cl_device - ISHTP device handle
+ * @driver: driver instance on a bus
+ * @name: Name of the device for probe
+ * @probe: driver callback for device probe
+ * @remove: driver callback on device removal
+ *
+ * Client drivers defines to get probed/removed for ISHTP client device.
+ */
+struct ishtp_cl_driver {
+ struct device_driver driver;
+ const char *name;
+ const guid_t *guid;
+ int (*probe)(struct ishtp_cl_device *dev);
+ int (*remove)(struct ishtp_cl_device *dev);
+ int (*reset)(struct ishtp_cl_device *dev);
+ const struct dev_pm_ops *pm;
+};
+
+int ishtp_cl_driver_register(struct ishtp_cl_driver *driver,
+ struct module *owner);
+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 *));
+
/* Get the device * from ishtp device instance */
struct device *ishtp_device(struct ishtp_cl_device *cl_device);
/* Trace interface for clients */