From: Yassine Oudjana Move QRTR instance conversion from qmi_interface into a new macro in order to reuse it in QRTR device ID tables. Signed-off-by: Yassine Oudjana --- drivers/soc/qcom/qmi_interface.c | 5 +++-- include/linux/soc/qcom/qrtr.h | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/soc/qcom/qmi_interface.c b/drivers/soc/qcom/qmi_interface.c index 6500f863aae5ca218892d13233d4c9bf4b63a0f4..bd97b006757fc20778e4bb512945d85f4cd31b24 100644 --- a/drivers/soc/qcom/qmi_interface.c +++ b/drivers/soc/qcom/qmi_interface.c @@ -14,6 +14,7 @@ #include #include #include +#include static struct socket *qmi_sock_create(struct qmi_handle *qmi, struct sockaddr_qrtr *sq); @@ -173,7 +174,7 @@ static void qmi_send_new_lookup(struct qmi_handle *qmi, struct qmi_service *svc) memset(&pkt, 0, sizeof(pkt)); pkt.cmd = cpu_to_le32(QRTR_TYPE_NEW_LOOKUP); pkt.server.service = cpu_to_le32(svc->service); - pkt.server.instance = cpu_to_le32(svc->version | svc->instance << 8); + pkt.server.instance = cpu_to_le32(QRTR_INSTANCE(svc->version, svc->instance)); sq.sq_family = qmi->sq.sq_family; sq.sq_node = qmi->sq.sq_node; @@ -236,7 +237,7 @@ static void qmi_send_new_server(struct qmi_handle *qmi, struct qmi_service *svc) memset(&pkt, 0, sizeof(pkt)); pkt.cmd = cpu_to_le32(QRTR_TYPE_NEW_SERVER); pkt.server.service = cpu_to_le32(svc->service); - pkt.server.instance = cpu_to_le32(svc->version | svc->instance << 8); + pkt.server.instance = cpu_to_le32(QRTR_INSTANCE(svc->version, svc->instance)); pkt.server.node = cpu_to_le32(qmi->sq.sq_node); pkt.server.port = cpu_to_le32(qmi->sq.sq_port); diff --git a/include/linux/soc/qcom/qrtr.h b/include/linux/soc/qcom/qrtr.h index e9249d9422b8ca96baa43073cf07c4a75c163219..e2aca520fdbe22bc855004143dc8baa7a3f67517 100644 --- a/include/linux/soc/qcom/qrtr.h +++ b/include/linux/soc/qcom/qrtr.h @@ -3,6 +3,8 @@ #ifndef __QCOM_QRTR_H__ #define __QCOM_QRTR_H__ +#include +#include #include struct qrtr_device { @@ -15,6 +17,14 @@ struct qrtr_device { #define to_qrtr_device(d) container_of(d, struct qrtr_device, dev) +#define QRTR_INSTANCE(qmi_version, qmi_instance) \ + (FIELD_PREP(GENMASK(7, 0), qmi_version) | \ + FIELD_PREP(GENMASK(15, 8), qmi_instance)) + +#define QRTR_INSTANCE_CONST(qmi_version, qmi_instance) \ + (FIELD_PREP_CONST(GENMASK(7, 0), qmi_version) | \ + FIELD_PREP_CONST(GENMASK(15, 8), qmi_instance)) + struct qrtr_driver { int (*probe)(struct qrtr_device *qdev); void (*remove)(struct qrtr_device *qdev); -- 2.50.0