[PATCH 3/5] wcn36xx: handle new hal response format

fengwei.yin fengwei.yin at linaro.org
Mon Nov 9 01:29:34 PST 2015



On 2015/11/9 18:02, Yin, Fengwei wrote:
> From: Andy Green <andy.green at linaro.org>
>
> From: Andy Green <andy.green at linaro.org>
>
> wcn3620 has a new message structure for the reply to some hal
> commands.  This patch adds the struct and helper routine that
> uses it if the chip is wcn3620, or falls back to the old
> helper routine.
>
> We don't know what to do with the candidate list he sends back,
> but we can at least accept and ignore it nicely instead of dying.
>
> Signed-off-by: Andy Green <andy.green at linaro.org>
> ---
>   drivers/net/wireless/ath/wcn36xx/smd.c | 17 +++++++++++++++++
>   drivers/net/wireless/ath/wcn36xx/smd.h |  9 +++++++++
>   2 files changed, 26 insertions(+)
>
> diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
> index be317f4..a84c2cc 100644
> --- a/drivers/net/wireless/ath/wcn36xx/smd.c
> +++ b/drivers/net/wireless/ath/wcn36xx/smd.c
> @@ -302,6 +302,23 @@ static int wcn36xx_smd_rsp_status_check(void *buf, size_t len)
>   	return 0;
>   }
>
> +static int wcn36xx_smd_rsp_status_check_v2(struct wcn36xx *wcn, void *buf,
> +					     size_t len)
> +{
> +	struct wcn36xx_fw_msg_status_rsp_v2 *rsp;
> +
> +	if (wcn->chip_version != WCN36XX_CHIP_3620 ||
> +	    len < sizeof(struct wcn36xx_hal_msg_header) + sizeof(*rsp))
> +		return wcn36xx_smd_rsp_status_check(buf, len);
> +
> +	rsp = buf + sizeof(struct wcn36xx_hal_msg_header);
> +
> +	if (WCN36XX_FW_MSG_RESULT_SUCCESS != rsp->status)
> +		return rsp->status;
> +
> +	return 0;
> +}
> +
>   int wcn36xx_smd_load_nv(struct wcn36xx *wcn)
>   {
>   	struct nv_data *nv_d;
> diff --git a/drivers/net/wireless/ath/wcn36xx/smd.h b/drivers/net/wireless/ath/wcn36xx/smd.h
> index 008d034..8361f9e 100644
> --- a/drivers/net/wireless/ath/wcn36xx/smd.h
> +++ b/drivers/net/wireless/ath/wcn36xx/smd.h
> @@ -44,6 +44,15 @@ struct wcn36xx_fw_msg_status_rsp {
>   	u32	status;
>   } __packed;
>
> +/* wcn3620 returns this for tigger_ba */
> +
> +struct wcn36xx_fw_msg_status_rsp_v2 {
> +	u8	bss_id[6];
> +	u32	status __packed;
> +	u16	count_following_candidates __packed;
> +	/* candidate list follows */
> +};
> +
>   struct wcn36xx_hal_ind_msg {
>   	struct list_head list;
>   	u8 *msg;
>

I got message from kbuild test robot that this patch has build error. Please
go ahead to review the other patches. I will send out v2 which have missed
patch included. Sorry for this.

Regards
Yin, Fengwei



More information about the wcn36xx mailing list