net: ipa: extend the INDICATION_REGISTER request
authorAlex Elder <elder@linaro.org>
Mon, 15 Mar 2021 15:21:12 +0000 (10:21 -0500)
committerDavid S. Miller <davem@davemloft.net>
Tue, 16 Mar 2021 18:17:59 +0000 (11:17 -0700)
The specified format of the INDICATION_REGISTER QMI request message
has been extended to support two more optional fields:
  endpoint_desc_ind:
    sender wishes to receive endpoint descriptor information via
    an IPA ENDP_DESC indication QMI message
  bw_change_ind:
    sender wishes to receive bandwidth change information via
    an IPA BW_CHANGE indication QMI message

Add definitions that permit these fields to be formatted and parsed
by the QMI library code.

Signed-off-by: Alex Elder <elder@linaro.org>
Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ipa/ipa_qmi_msg.c
drivers/net/ipa/ipa_qmi_msg.h

index e4a6efb..6838e80 100644 (file)
@@ -70,6 +70,46 @@ struct qmi_elem_info ipa_indication_register_req_ei[] = {
                .offset         = offsetof(struct ipa_indication_register_req,
                                           ipa_mhi_ready_ind),
        },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      =
+                       sizeof_field(struct ipa_indication_register_req,
+                                    endpoint_desc_ind_valid),
+               .tlv_type       = 0x13,
+               .offset         = offsetof(struct ipa_indication_register_req,
+                                          endpoint_desc_ind_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = 1,
+               .elem_size      =
+                       sizeof_field(struct ipa_indication_register_req,
+                                    endpoint_desc_ind),
+               .tlv_type       = 0x13,
+               .offset         = offsetof(struct ipa_indication_register_req,
+                                          endpoint_desc_ind),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      =
+                       sizeof_field(struct ipa_indication_register_req,
+                                    bw_change_ind_valid),
+               .tlv_type       = 0x14,
+               .offset         = offsetof(struct ipa_indication_register_req,
+                                          bw_change_ind_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = 1,
+               .elem_size      =
+                       sizeof_field(struct ipa_indication_register_req,
+                                    bw_change_ind),
+               .tlv_type       = 0x14,
+               .offset         = offsetof(struct ipa_indication_register_req,
+                                          bw_change_ind),
+       },
        {
                .data_type      = QMI_EOTI,
        },
index 12b6621..3233d14 100644 (file)
@@ -24,7 +24,7 @@
  * information for each field.  The qmi_send_*() interfaces require
  * the message size to be provided.
  */
-#define IPA_QMI_INDICATION_REGISTER_REQ_SZ     12      /* -> server handle */
+#define IPA_QMI_INDICATION_REGISTER_REQ_SZ     20      /* -> server handle */
 #define IPA_QMI_INDICATION_REGISTER_RSP_SZ     7       /* <- server handle */
 #define IPA_QMI_INIT_DRIVER_REQ_SZ             162     /* client handle -> */
 #define IPA_QMI_INIT_DRIVER_RSP_SZ             25      /* client handle <- */
@@ -44,6 +44,10 @@ struct ipa_indication_register_req {
        u8 data_usage_quota_reached;
        u8 ipa_mhi_ready_ind_valid;
        u8 ipa_mhi_ready_ind;
+       u8 endpoint_desc_ind_valid;
+       u8 endpoint_desc_ind;
+       u8 bw_change_ind_valid;
+       u8 bw_change_ind;
 };
 
 /* The response to a IPA_QMI_INDICATION_REGISTER request consists only of