diff options
| author | Bjorn Andersson <bjorn.andersson@sonymobile.com> | 2015-08-28 13:39:20 -0400 |
|---|---|---|
| committer | Andy Gross <agross@codeaurora.org> | 2015-10-14 15:51:20 -0400 |
| commit | 1a7caca20ed56a80cea045327deaeb4e4379cbd1 (patch) | |
| tree | abccd232c7af826a7d6807fb0203ff83c01adc13 /include/linux/soc | |
| parent | f1fed8c054a22dcb88c0ded986c80aa7019e5098 (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.h | 11 |
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; | |||
| 9 | struct qcom_smd_lookup; | 9 | struct 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 | */ | ||
| 15 | struct 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 | */ |
| 30 | struct qcom_smd_driver { | 39 | struct 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); |
