OSDN Git Service

ASoC: msm: qdsp6v2: Fix APR packet size for SET_UI_PROPERTY
authorDerek Chen <chenche@codeaurora.org>
Fri, 9 Mar 2018 22:33:03 +0000 (17:33 -0500)
committerDerek Chen <chenche@codeaurora.org>
Fri, 9 Mar 2018 23:01:36 +0000 (18:01 -0500)
The APR packet size was incorrect for the API
VSS_ICOMMON_CMD_SET_UI_PROPERTY. Using struct
param_hdr_v1 made the previous calculation for
packet size < 0.

Signed-off-by: Derek Chen <chenche@codeaurora.org>
Change-Id: I7496e78ad6918251f90fdd5d778b322d4a81c4c0

sound/soc/msm/qdsp6v2/q6voice.c

index a0f30a3..17d7870 100644 (file)
@@ -8623,6 +8623,7 @@ static int voice_pack_and_set_cvs_ui_property(struct voice_data *v,
 {
        struct vss_icommon_cmd_set_ui_property *set_ui_property = NULL;
        u32 total_size = 0;
+       u32 pkt_size = 0;
        bool iid_supported = q6common_is_instance_id_supported();
        void *apr_cvs;
        int ret = 0;
@@ -8640,7 +8641,7 @@ static int voice_pack_and_set_cvs_ui_property(struct voice_data *v,
                return -ENOMEM;
 
        ret = q6common_pack_pp_params(set_ui_property->param_data, &param_hdr,
-                                   param_data, &total_size);
+                                   param_data, &pkt_size);
        if (ret) {
                pr_err("%s: Failed to pack params, error %d", __func__, ret);
                goto done;
@@ -8654,7 +8655,7 @@ static int voice_pack_and_set_cvs_ui_property(struct voice_data *v,
                APR_HDR_FIELD(APR_MSG_TYPE_SEQ_CMD, APR_HDR_LEN(APR_HDR_SIZE),
                              APR_PKT_VER);
        set_ui_property->apr_hdr.pkt_size =
-               APR_PKT_SIZE(APR_HDR_SIZE, total_size - APR_HDR_SIZE);
+               APR_PKT_SIZE(APR_HDR_SIZE, pkt_size);
        set_ui_property->apr_hdr.src_svc = 0;
        set_ui_property->apr_hdr.src_domain = APR_DOMAIN_APPS;
        set_ui_property->apr_hdr.src_port =