Re: [PATCH v6 3/6] soc: qcom: pdr: extract PDR message marshalling data

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Dmitry,

On Mon, Apr 22, 2024 at 5:11 AM Dmitry Baryshkov
<dmitry.baryshkov@xxxxxxxxxx> wrote:
>
> The in-kernel PD mapper is going to use same message structures as the
> QCOM_PDR_HELPERS module. Extract message marshalling data to separate
> module that can be used by both PDR helpers and by PD mapper.
>
> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
> ---
>  drivers/soc/qcom/Kconfig        |   4 +
>  drivers/soc/qcom/Makefile       |   1 +
>  drivers/soc/qcom/pdr_internal.h | 306 ++------------------------------------
>  drivers/soc/qcom/qcom_pdr_msg.c | 315 ++++++++++++++++++++++++++++++++++++++++
>  4 files changed, 330 insertions(+), 296 deletions(-)

<snip>

> diff --git a/drivers/soc/qcom/qcom_pdr_msg.c b/drivers/soc/qcom/qcom_pdr_msg.c
> new file mode 100644
> index 000000000000..a8867e8b1319
> --- /dev/null
> +++ b/drivers/soc/qcom/qcom_pdr_msg.c
> @@ -0,0 +1,315 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright (C) 2020 The Linux Foundation. All rights reserved.
> + */
> +
> +#include <linux/soc/qcom/qmi.h>
> +
> +#include "pdr_internal.h"
> +
> +const struct qmi_elem_info servreg_location_entry_ei[] = {
> +       {
> +               .data_type      = QMI_STRING,
> +               .elem_len       = SERVREG_NAME_LENGTH + 1,
> +               .elem_size      = sizeof(char),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0,
> +               .offset         = offsetof(struct servreg_location_entry,
> +                                          name),
> +       },
> +       {
> +               .data_type      = QMI_UNSIGNED_4_BYTE,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u32),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0,
> +               .offset         = offsetof(struct servreg_location_entry,
> +                                          instance),
> +       },
> +       {
> +               .data_type      = QMI_UNSIGNED_1_BYTE,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u8),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0,
> +               .offset         = offsetof(struct servreg_location_entry,
> +                                          service_data_valid),
> +       },
> +       {
> +               .data_type      = QMI_UNSIGNED_4_BYTE,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u32),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0,
> +               .offset         = offsetof(struct servreg_location_entry,
> +                                          service_data),
> +       },
> +       {}
> +};
> +EXPORT_SYMBOL_GPL(servreg_location_entry_ei);
> +
> +const struct qmi_elem_info servreg_get_domain_list_req_ei[] = {
> +       {
> +               .data_type      = QMI_STRING,
> +               .elem_len       = SERVREG_NAME_LENGTH + 1,
> +               .elem_size      = sizeof(char),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x01,
> +               .offset         = offsetof(struct servreg_get_domain_list_req,
> +                                          service_name),
> +       },
> +       {
> +               .data_type      = QMI_OPT_FLAG,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u8),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x10,
> +               .offset         = offsetof(struct servreg_get_domain_list_req,
> +                                          domain_offset_valid),
> +       },
> +       {
> +               .data_type      = QMI_UNSIGNED_4_BYTE,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u32),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x10,
> +               .offset         = offsetof(struct servreg_get_domain_list_req,
> +                                          domain_offset),
> +       },
> +       {}
> +};
> +EXPORT_SYMBOL_GPL(servreg_get_domain_list_req_ei);
> +
> +const struct qmi_elem_info servreg_get_domain_list_resp_ei[] = {
> +       {
> +               .data_type      = QMI_STRUCT,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(struct qmi_response_type_v01),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x02,
> +               .offset         = offsetof(struct servreg_get_domain_list_resp,
> +                                          resp),
> +               .ei_array      = qmi_response_type_v01_ei,
> +       },
> +       {
> +               .data_type      = QMI_OPT_FLAG,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u8),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x10,
> +               .offset         = offsetof(struct servreg_get_domain_list_resp,
> +                                          total_domains_valid),
> +       },
> +       {
> +               .data_type      = QMI_UNSIGNED_2_BYTE,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u16),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x10,
> +               .offset         = offsetof(struct servreg_get_domain_list_resp,
> +                                          total_domains),
> +       },
> +       {
> +               .data_type      = QMI_OPT_FLAG,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u8),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x11,
> +               .offset         = offsetof(struct servreg_get_domain_list_resp,
> +                                          db_rev_count_valid),
> +       },
> +       {
> +               .data_type      = QMI_UNSIGNED_2_BYTE,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u16),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x11,
> +               .offset         = offsetof(struct servreg_get_domain_list_resp,
> +                                          db_rev_count),
> +       },
> +       {
> +               .data_type      = QMI_OPT_FLAG,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u8),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x12,
> +               .offset         = offsetof(struct servreg_get_domain_list_resp,
> +                                          domain_list_valid),
> +       },
> +       {
> +               .data_type      = QMI_DATA_LEN,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u8),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x12,
> +               .offset         = offsetof(struct servreg_get_domain_list_resp,
> +                                          domain_list_len),
> +       },
> +       {
> +               .data_type      = QMI_STRUCT,
> +               .elem_len       = SERVREG_DOMAIN_LIST_LENGTH,
> +               .elem_size      = sizeof(struct servreg_location_entry),
> +               .array_type     = VAR_LEN_ARRAY,
> +               .tlv_type       = 0x12,
> +               .offset         = offsetof(struct servreg_get_domain_list_resp,
> +                                          domain_list),
> +               .ei_array      = servreg_location_entry_ei,
> +       },
> +       {}
> +};
> +EXPORT_SYMBOL_GPL(servreg_get_domain_list_resp_ei);
> +
> +const struct qmi_elem_info servreg_register_listener_req_ei[] = {
> +       {
> +               .data_type      = QMI_UNSIGNED_1_BYTE,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u8),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x01,
> +               .offset         = offsetof(struct servreg_register_listener_req,
> +                                          enable),
> +       },
> +       {
> +               .data_type      = QMI_STRING,
> +               .elem_len       = SERVREG_NAME_LENGTH + 1,
> +               .elem_size      = sizeof(char),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x02,
> +               .offset         = offsetof(struct servreg_register_listener_req,
> +                                          service_path),
> +       },
> +       {}
> +};
> +EXPORT_SYMBOL_GPL(servreg_register_listener_req_ei);
> +
> +const struct qmi_elem_info servreg_register_listener_resp_ei[] = {
> +       {
> +               .data_type      = QMI_STRUCT,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(struct qmi_response_type_v01),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x02,
> +               .offset         = offsetof(struct servreg_register_listener_resp,
> +                                          resp),
> +               .ei_array      = qmi_response_type_v01_ei,
> +       },
> +       {
> +               .data_type      = QMI_OPT_FLAG,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u8),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x10,
> +               .offset         = offsetof(struct servreg_register_listener_resp,
> +                                          curr_state_valid),
> +       },
> +       {
> +               .data_type      = QMI_SIGNED_4_BYTE_ENUM,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(enum servreg_service_state),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x10,
> +               .offset         = offsetof(struct servreg_register_listener_resp,
> +                                          curr_state),
> +       },
> +       {}
> +};
> +EXPORT_SYMBOL_GPL(servreg_register_listener_resp_ei);
> +
> +const struct qmi_elem_info servreg_restart_pd_req_ei[] = {
> +       {
> +               .data_type      = QMI_STRING,
> +               .elem_len       = SERVREG_NAME_LENGTH + 1,
> +               .elem_size      = sizeof(char),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x01,
> +               .offset         = offsetof(struct servreg_restart_pd_req,
> +                                          service_path),
> +       },
> +       {}
> +};
> +EXPORT_SYMBOL_GPL(servreg_restart_pd_req_ei);
> +
> +const struct qmi_elem_info servreg_restart_pd_resp_ei[] = {
> +       {
> +               .data_type      = QMI_STRUCT,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(struct qmi_response_type_v01),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x02,
> +               .offset         = offsetof(struct servreg_restart_pd_resp,
> +                                          resp),
> +               .ei_array      = qmi_response_type_v01_ei,
> +       },
> +       {}
> +};
> +EXPORT_SYMBOL_GPL(servreg_restart_pd_resp_ei);
> +
> +const struct qmi_elem_info servreg_state_updated_ind_ei[] = {
> +       {
> +               .data_type      = QMI_SIGNED_4_BYTE_ENUM,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u32),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x01,
> +               .offset         = offsetof(struct servreg_state_updated_ind,
> +                                          curr_state),
> +       },
> +       {
> +               .data_type      = QMI_STRING,
> +               .elem_len       = SERVREG_NAME_LENGTH + 1,
> +               .elem_size      = sizeof(char),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x02,
> +               .offset         = offsetof(struct servreg_state_updated_ind,
> +                                          service_path),
> +       },
> +       {
> +               .data_type      = QMI_UNSIGNED_2_BYTE,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u16),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x03,
> +               .offset         = offsetof(struct servreg_state_updated_ind,
> +                                          transaction_id),
> +       },
> +       {}
> +};
> +EXPORT_SYMBOL_GPL(servreg_state_updated_ind_ei);
> +
> +const struct qmi_elem_info servreg_set_ack_req_ei[] = {
> +       {
> +               .data_type      = QMI_STRING,
> +               .elem_len       = SERVREG_NAME_LENGTH + 1,
> +               .elem_size      = sizeof(char),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x01,
> +               .offset         = offsetof(struct servreg_set_ack_req,
> +                                          service_path),
> +       },
> +       {
> +               .data_type      = QMI_UNSIGNED_2_BYTE,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(u16),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x02,
> +               .offset         = offsetof(struct servreg_set_ack_req,
> +                                          transaction_id),
> +       },
> +       {}
> +};
> +EXPORT_SYMBOL_GPL(servreg_set_ack_req_ei);
> +
> +const struct qmi_elem_info servreg_set_ack_resp_ei[] = {
> +       {
> +               .data_type      = QMI_STRUCT,
> +               .elem_len       = 1,
> +               .elem_size      = sizeof(struct qmi_response_type_v01),
> +               .array_type     = NO_ARRAY,
> +               .tlv_type       = 0x02,
> +               .offset         = offsetof(struct servreg_set_ack_resp,
> +                                          resp),
> +               .ei_array       = qmi_response_type_v01_ei,
> +       },
> +       {}
> +};
> +EXPORT_SYMBOL_GPL(servreg_set_ack_resp_ei);
>
> --
> 2.39.2
>
This is missing MODULE_LICENSE

ERROR: modpost: missing MODULE_LICENSE() in drivers/soc/qcom/qcom_pdr_msg.o





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux