diff options
author | Bjorn Andersson <bjorn.andersson@linaro.org> | 2016-03-29 07:35:22 +0300 |
---|---|---|
committer | Andy Gross <andy.gross@linaro.org> | 2016-04-20 05:55:12 +0300 |
commit | b853cb9628bfbcc4017da46d5f5b46e3eba9d8c6 (patch) | |
tree | 1a5af00411dc2a4d4f731bf18a00a6e859f62aa5 /include/linux/soc | |
parent | afd356dfb3a4127b61a3519802a4db9046703724 (diff) | |
download | linux-b853cb9628bfbcc4017da46d5f5b46e3eba9d8c6.tar.xz |
soc: qcom: smd: Make callback pass channel reference
By passing the smd channel reference to the callback, rather than the
smd device, we can open additional smd channels from sub-devices of smd
devices.
Also updates the two smd clients today found in mainline.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
Diffstat (limited to 'include/linux/soc')
-rw-r--r-- | include/linux/soc/qcom/smd.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/include/linux/soc/qcom/smd.h b/include/linux/soc/qcom/smd.h index bd51c8a9d807..cb2f81559bc0 100644 --- a/include/linux/soc/qcom/smd.h +++ b/include/linux/soc/qcom/smd.h @@ -26,7 +26,7 @@ struct qcom_smd_device { struct qcom_smd_channel *channel; }; -typedef int (*qcom_smd_cb_t)(struct qcom_smd_device *, const void *, size_t); +typedef int (*qcom_smd_cb_t)(struct qcom_smd_channel *, const void *, size_t); /** * struct qcom_smd_driver - smd driver struct @@ -50,13 +50,16 @@ struct qcom_smd_driver { int qcom_smd_driver_register(struct qcom_smd_driver *drv); void qcom_smd_driver_unregister(struct qcom_smd_driver *drv); +void *qcom_smd_get_drvdata(struct qcom_smd_channel *channel); +void qcom_smd_set_drvdata(struct qcom_smd_channel *channel, void *data); + #define module_qcom_smd_driver(__smd_driver) \ module_driver(__smd_driver, qcom_smd_driver_register, \ qcom_smd_driver_unregister) int qcom_smd_send(struct qcom_smd_channel *channel, const void *data, int len); -struct qcom_smd_channel *qcom_smd_open_channel(struct qcom_smd_device *sdev, +struct qcom_smd_channel *qcom_smd_open_channel(struct qcom_smd_channel *channel, const char *name, qcom_smd_cb_t cb); |