From patchwork Tue Nov 10 08:25:53 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fengwei Yin X-Patchwork-Id: 56288 Delivered-To: patch@linaro.org Received: by 10.112.155.196 with SMTP id vy4csp610576lbb; Mon, 9 Nov 2015 23:25:10 -0800 (PST) X-Received: by 10.68.178.1 with SMTP id cu1mr3389541pbc.115.1447140310697; Mon, 09 Nov 2015 23:25:10 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id bg5si3280903pbb.218.2015.11.09.23.25.10; Mon, 09 Nov 2015 23:25:10 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dkim=neutral (body hash did not verify) header.i=@linaro_org.20150623.gappssmtp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751315AbbKJHZG (ORCPT + 1 other); Tue, 10 Nov 2015 02:25:06 -0500 Received: from mail-pa0-f53.google.com ([209.85.220.53]:33266 "EHLO mail-pa0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751125AbbKJHZF (ORCPT ); Tue, 10 Nov 2015 02:25:05 -0500 Received: by pabfh17 with SMTP id fh17so226304612pab.0 for ; Mon, 09 Nov 2015 23:25:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro_org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=IkKm22McD3bkKyzCIbSrAC+Zsw22dc2e6rk82LNxgbc=; b=aGE3Foh/JOQDtoka7raJhuh4GnMu0tSaVOThsD1TAR990dto/LX+ykaMckAHI0nOTF Qr9DcebYpOpFmun0Do5Ad5N4TxQRS/vH4e//XuBWAyRoFjIiEo8U1eWSdmjTPv4112g6 AJEHLf2fz2tzV7R/BYmsZVQmB3zTP8KkfjsAa/S0/L7UH7vNPusa6Ky00WfQuKiofPMl AKi/oBCbBU9RnZi76/xpysZykAhFApwnaOlzuXNtDf8eyMaxUNFcCx99lF9NUpIlLNvY dnHK9orC/Qi5qz3iB8iQjdSPvz0gX7imV0iINdGKE1u2uGKlZIbp2rczWcrL7ppMnW/u uDGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=IkKm22McD3bkKyzCIbSrAC+Zsw22dc2e6rk82LNxgbc=; b=Y39H/nopUQS3etHEo2opS1GO/0gHJOlJwr3ec8hGMdHrRqQwwbSTCEFNgYIXV73sBT A+BN9sV55ghhUZITCnIMWcnki3ngHLPQ7rHFbPNM0rsve7nDarfLxXiSaSUXzWGe+3Z7 IuJlv5xU2DfO5tx/z/vkULdQZ+EwjPjRxDJ5oZT1vnlbdnKe3K9gfxhlbxDpfQABjQ1d v3/rK8n8jJAqmbezctr2qgxk7T0BDFmIw7xqr5nE4hI0hTRzaEoP6a+7nxJZ4GY0R89m ODLMu80zii5uDNnRmvZFpLiBhbu7VDQDIP0tN0XU04leyAMak8TIFJ52EDP4OOhUBaPh 0AhA== X-Gm-Message-State: ALoCoQnTlgIcy9Kg+rfD9ae85oZgyNL+y5X0WQNqkFQDxNLVG32pXuUs6e46WADZqhLeJzsZdeIt X-Received: by 10.66.122.145 with SMTP id ls17mr3360430pab.11.1447140305189; Mon, 09 Nov 2015 23:25:05 -0800 (PST) Received: from localhost.localdomain ([45.116.12.36]) by smtp.googlemail.com with ESMTPSA id dw5sm2224716pbb.3.2015.11.09.23.25.02 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 09 Nov 2015 23:25:04 -0800 (PST) From: "Yin, Fengwei" To: andy.green@linaro.org, linux-wireless@vger.kernel.org, wcn36xx@lists.infradead.org, me@bobcopeland.com, k.eugene.e@gmail.com, bjorn.andersson@sonymobile.com Cc: fengwei.yin@linaro.org Subject: [PATCH v2 3/5] wcn36xx: handle new hal response format Date: Tue, 10 Nov 2015 03:25:53 -0500 Message-Id: <1447143955-10304-4-git-send-email-fengwei.yin@linaro.org> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1447143955-10304-1-git-send-email-fengwei.yin@linaro.org> References: <1447143955-10304-1-git-send-email-fengwei.yin@linaro.org> Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Andy Green 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 --- drivers/net/wireless/ath/wcn36xx/smd.c | 16 ++++++++++++++++ drivers/net/wireless/ath/wcn36xx/smd.h | 9 +++++++++ 2 files changed, 25 insertions(+) -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c index be317f4..b7e61a0 100644 --- a/drivers/net/wireless/ath/wcn36xx/smd.c +++ b/drivers/net/wireless/ath/wcn36xx/smd.c @@ -302,6 +302,22 @@ 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 (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;