net: ipa: fix another QMI message definition
authorAlex Elder <elder@linaro.org>
Mon, 15 Mar 2021 15:21:11 +0000 (10:21 -0500)
committerDavid S. Miller <davem@davemloft.net>
Tue, 16 Mar 2021 18:17:59 +0000 (11:17 -0700)
The ipa_init_modem_driver_req_ei[] encoding array for the
INIT_MODEM_DRIVER request message has some errors in it.

First, the tlv_type associated with the hw_stats_quota_size field is
wrong; it duplicates the valiue used for the hw_stats_quota_base_addr
field (0x1f) and should use 0x20 instead.  The tlv_type value for
the hw_stats_drop_size field also uses the same duplicate value; it
should use 0x22 instead.

Second, there is no definition for the hw_stats_drop_base_addr
field.  It is an optional 32-bit enumerated type value.

Finally, the hw_stats_quota_base_addr, hw_stats_quota_size, and
hw_stats_drop_size fields are defined as enumerated types; they
should be unsigned 4-byte values.

Reported-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
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

index e00f829..e4a6efb 100644 (file)
@@ -530,7 +530,7 @@ struct qmi_elem_info ipa_init_modem_driver_req_ei[] = {
                                           hw_stats_quota_base_addr_valid),
        },
        {
-               .data_type      = QMI_SIGNED_4_BYTE_ENUM,
+               .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      =
                        sizeof_field(struct ipa_init_modem_driver_req,
@@ -545,37 +545,57 @@ struct qmi_elem_info ipa_init_modem_driver_req_ei[] = {
                .elem_size      =
                        sizeof_field(struct ipa_init_modem_driver_req,
                                     hw_stats_quota_size_valid),
-               .tlv_type       = 0x1f,
+               .tlv_type       = 0x20,
                .offset         = offsetof(struct ipa_init_modem_driver_req,
                                           hw_stats_quota_size_valid),
        },
        {
-               .data_type      = QMI_SIGNED_4_BYTE_ENUM,
+               .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      =
                        sizeof_field(struct ipa_init_modem_driver_req,
                                     hw_stats_quota_size),
-               .tlv_type       = 0x1f,
+               .tlv_type       = 0x20,
                .offset         = offsetof(struct ipa_init_modem_driver_req,
                                           hw_stats_quota_size),
        },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      =
+                       sizeof_field(struct ipa_init_modem_driver_req,
+                                    hw_stats_drop_base_addr_valid),
+               .tlv_type       = 0x21,
+               .offset         = offsetof(struct ipa_init_modem_driver_req,
+                                          hw_stats_drop_base_addr_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      =
+                       sizeof_field(struct ipa_init_modem_driver_req,
+                                    hw_stats_drop_base_addr),
+               .tlv_type       = 0x21,
+               .offset         = offsetof(struct ipa_init_modem_driver_req,
+                                          hw_stats_drop_base_addr),
+       },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      =
                        sizeof_field(struct ipa_init_modem_driver_req,
                                     hw_stats_drop_size_valid),
-               .tlv_type       = 0x1f,
+               .tlv_type       = 0x22,
                .offset         = offsetof(struct ipa_init_modem_driver_req,
                                           hw_stats_drop_size_valid),
        },
        {
-               .data_type      = QMI_SIGNED_4_BYTE_ENUM,
+               .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      =
                        sizeof_field(struct ipa_init_modem_driver_req,
                                     hw_stats_drop_size),
-               .tlv_type       = 0x1f,
+               .tlv_type       = 0x22,
                .offset         = offsetof(struct ipa_init_modem_driver_req,
                                           hw_stats_drop_size),
        },