aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/soc
diff options
context:
space:
mode:
authorBjorn Andersson <bjorn.andersson@sonymobile.com>2015-08-28 13:39:20 -0400
committerAndy Gross <agross@codeaurora.org>2015-10-14 15:51:20 -0400
commit1a7caca20ed56a80cea045327deaeb4e4379cbd1 (patch)
treeabccd232c7af826a7d6807fb0203ff83c01adc13 /include/linux/soc
parentf1fed8c054a22dcb88c0ded986c80aa7019e5098 (diff)
soc: qcom: smd: Implement id_table driver matching
Implement a id_table based driver maching mechanism for drivers that binds to fixed channels and doesn't need any additional configuration, e.g. IPCRTR and DIAG. Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> Signed-off-by: Andy Gross <agross@codeaurora.org>
Diffstat (limited to 'include/linux/soc')
-rw-r--r--include/linux/soc/qcom/smd.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/soc/qcom/smd.h b/include/linux/soc/qcom/smd.h
index d7e50aa6a4ac..d0cb6d189a0a 100644
--- a/include/linux/soc/qcom/smd.h
+++ b/include/linux/soc/qcom/smd.h
@@ -9,6 +9,14 @@ struct qcom_smd_channel;
9struct qcom_smd_lookup; 9struct qcom_smd_lookup;
10 10
11/** 11/**
12 * struct qcom_smd_id - struct used for matching a smd device
13 * @name: name of the channel
14 */
15struct qcom_smd_id {
16 char name[20];
17};
18
19/**
12 * struct qcom_smd_device - smd device struct 20 * struct qcom_smd_device - smd device struct
13 * @dev: the device struct 21 * @dev: the device struct
14 * @channel: handle to the smd channel for this device 22 * @channel: handle to the smd channel for this device
@@ -21,6 +29,7 @@ struct qcom_smd_device {
21/** 29/**
22 * struct qcom_smd_driver - smd driver struct 30 * struct qcom_smd_driver - smd driver struct
23 * @driver: underlying device driver 31 * @driver: underlying device driver
32 * @smd_match_table: static channel match table
24 * @probe: invoked when the smd channel is found 33 * @probe: invoked when the smd channel is found
25 * @remove: invoked when the smd channel is closed 34 * @remove: invoked when the smd channel is closed
26 * @callback: invoked when an inbound message is received on the channel, 35 * @callback: invoked when an inbound message is received on the channel,
@@ -29,6 +38,8 @@ struct qcom_smd_device {
29 */ 38 */
30struct qcom_smd_driver { 39struct qcom_smd_driver {
31 struct device_driver driver; 40 struct device_driver driver;
41 const struct qcom_smd_id *smd_match_table;
42
32 int (*probe)(struct qcom_smd_device *dev); 43 int (*probe)(struct qcom_smd_device *dev);
33 void (*remove)(struct qcom_smd_device *dev); 44 void (*remove)(struct qcom_smd_device *dev);
34 int (*callback)(struct qcom_smd_device *, const void *, size_t); 45 int (*callback)(struct qcom_smd_device *, const void *, size_t);