diff mbox series

[net-next,3/3] net: ipa: extend the INDICATION_REGISTER request

Message ID 20210315152112.1907968-4-elder@linaro.org
State New
Headers show
Series net: ipa: QMI fixes | expand

Commit Message

Alex Elder March 15, 2021, 3:21 p.m. UTC
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>

---
 drivers/net/ipa/ipa_qmi_msg.c | 40 +++++++++++++++++++++++++++++++++++
 drivers/net/ipa/ipa_qmi_msg.h |  6 +++++-
 2 files changed, 45 insertions(+), 1 deletion(-)

-- 
2.27.0

Comments

Manivannan Sadhasivam March 16, 2021, 3:43 a.m. UTC | #1
On Mon, Mar 15, 2021 at 10:21:12AM -0500, Alex Elder wrote:
> 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>


Thanks,
Mani

> ---

>  drivers/net/ipa/ipa_qmi_msg.c | 40 +++++++++++++++++++++++++++++++++++

>  drivers/net/ipa/ipa_qmi_msg.h |  6 +++++-

>  2 files changed, 45 insertions(+), 1 deletion(-)

> 

> diff --git a/drivers/net/ipa/ipa_qmi_msg.c b/drivers/net/ipa/ipa_qmi_msg.c

> index e4a6efbe9bd00..6838e8065072b 100644

> --- a/drivers/net/ipa/ipa_qmi_msg.c

> +++ b/drivers/net/ipa/ipa_qmi_msg.c

> @@ -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,

>  	},

> diff --git a/drivers/net/ipa/ipa_qmi_msg.h b/drivers/net/ipa/ipa_qmi_msg.h

> index 12b6621f4b0e6..3233d145fd87c 100644

> --- a/drivers/net/ipa/ipa_qmi_msg.h

> +++ b/drivers/net/ipa/ipa_qmi_msg.h

> @@ -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

> -- 

> 2.27.0

>
diff mbox series

Patch

diff --git a/drivers/net/ipa/ipa_qmi_msg.c b/drivers/net/ipa/ipa_qmi_msg.c
index e4a6efbe9bd00..6838e8065072b 100644
--- a/drivers/net/ipa/ipa_qmi_msg.c
+++ b/drivers/net/ipa/ipa_qmi_msg.c
@@ -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,
 	},
diff --git a/drivers/net/ipa/ipa_qmi_msg.h b/drivers/net/ipa/ipa_qmi_msg.h
index 12b6621f4b0e6..3233d145fd87c 100644
--- a/drivers/net/ipa/ipa_qmi_msg.h
+++ b/drivers/net/ipa/ipa_qmi_msg.h
@@ -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