From patchwork Tue Jul 18 11:58:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Manikanta Pubbisetty X-Patchwork-Id: 9848157 X-Patchwork-Delegate: kvalo@adurom.com Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 6D34B60392 for ; Tue, 18 Jul 2017 11:58:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5B2EC27FAC for ; Tue, 18 Jul 2017 11:58:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5015728497; Tue, 18 Jul 2017 11:58:19 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E357227FAC for ; Tue, 18 Jul 2017 11:58:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751388AbdGRL6R (ORCPT ); Tue, 18 Jul 2017 07:58:17 -0400 Received: from sabertooth02.qualcomm.com ([65.197.215.38]:14598 "EHLO sabertooth02.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751322AbdGRL6Q (ORCPT ); Tue, 18 Jul 2017 07:58:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=qti.qualcomm.com; i=@qti.qualcomm.com; q=dns/txt; s=qcdkim; t=1500379096; x=1531915096; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=ZfeVp5nedoEkJShzU27Qi97gMY+M1ssD7XoFkyunJgk=; b=NIm/ieuxTwTAW/MZ5CTneyiZPq1519ytquUHwAmLLJOQgu5oTLASG43e AODEhlZ8HwTv1LW7BZySTKKyD/dWCnOwP8lcI5Kz1DUY2MiZhCQQ54++b VgENN+mDyXTc2ycx+Xb8GzMpxgU4Wo5Nn/cnDwzivOK+SDqfAGyGPaHKU I=; X-IronPort-AV: E=Sophos;i="5.40,377,1496127600"; d="scan'208";a="111798970" Received: from unknown (HELO Ironmsg04-L.qualcomm.com) ([10.53.140.111]) by sabertooth02.qualcomm.com with ESMTP; 18 Jul 2017 04:58:16 -0700 X-IronPort-AV: E=McAfee;i="5800,7501,8594"; a="1388931072" X-MGA-submission: =?us-ascii?q?MDFkFqRG7/aG+/wpkdYczN28lIoWyDpXbX4T6h?= =?us-ascii?q?oM93cMCvGcRklJAdqsO36TZIR9BDWtfwGWA4lD8OTF7hXPpoEFSaV/W4?= =?us-ascii?q?6K8eX8Ajeqk4HfEvMLezXMc1kp8Sulp0crcaIVs2mq+TE78ETOHDOmAN?= =?us-ascii?q?Ty?= Received: from nasanexm02e.na.qualcomm.com ([10.85.0.86]) by Ironmsg04-L.qualcomm.com with ESMTP/TLS/RC4-SHA; 18 Jul 2017 04:58:15 -0700 Received: from aphydexm01f.ap.qualcomm.com (10.252.127.15) by nasanexm02e.na.qualcomm.com (10.85.0.86) with Microsoft SMTP Server (TLS) id 15.0.1178.4; Tue, 18 Jul 2017 04:58:14 -0700 Received: from localhost (10.80.80.8) by aphydexm01f.ap.qualcomm.com (10.252.127.15) with Microsoft SMTP Server (TLS) id 15.0.1178.4; Tue, 18 Jul 2017 17:28:09 +0530 From: To: CC: Subject: [PATCHv2 1/3] ath10k: extend wmi service map to accommodate new services Date: Tue, 18 Jul 2017 17:28:12 +0530 Message-ID: <1500379094-2373-2-git-send-email-mpubbise@qti.qualcomm.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1500379094-2373-1-git-send-email-mpubbise@qti.qualcomm.com> References: <1500379094-2373-1-git-send-email-mpubbise@qti.qualcomm.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: NASANEXM01G.na.qualcomm.com (10.85.0.33) To aphydexm01f.ap.qualcomm.com (10.252.127.15) Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Manikanta Pubbisetty Though there is room to accommodate 512 services in wmi service ready event, target uses only first 4-bits of each 32-bit word for advertising wmi services thereby limiting max wmi services to 64. TDLS implementation for 10.4 firmwares introduces new wmi services by making use of remaining unused bits of each 32-bit word, therefore the wmi service mapping in host needs to be extended. This patch adds the logic to extend the wmi SVCMAP to accommodate new wmi services. Signed-off-by: Manikanta Pubbisetty --- drivers/net/wireless/ath/ath10k/wmi.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/ath/ath10k/wmi.h b/drivers/net/wireless/ath/ath10k/wmi.h index baa38c8..3a4cbbc 100644 --- a/drivers/net/wireless/ath/ath10k/wmi.h +++ b/drivers/net/wireless/ath/ath10k/wmi.h @@ -420,9 +420,20 @@ static inline char *wmi_service_name(int service_id) __le32_to_cpu((wmi_svc_bmap)[(svc_id) / (sizeof(u32))]) & \ BIT((svc_id) % (sizeof(u32)))) +/* This extension is required to accommodate new services, current limit + * for wmi_services is 64 as target is using only 4-bits of each 32-bit + * wmi_service word. Extending this to make use of remaining unused bits + * for new services. + */ +#define WMI_EXT_SERVICE_IS_ENABLED(wmi_svc_bmap, svc_id, len) \ + ((svc_id) >= (len) && \ + __le32_to_cpu((wmi_svc_bmap)[((svc_id) - (len)) / 28]) & \ + BIT(((((svc_id) - (len)) % 28) & 0x1f) + 4)) + #define SVCMAP(x, y, len) \ do { \ - if (WMI_SERVICE_IS_ENABLED((in), (x), (len))) \ + if ((WMI_SERVICE_IS_ENABLED((in), (x), (len))) || \ + (WMI_EXT_SERVICE_IS_ENABLED((in), (x), (len)))) \ __set_bit(y, out); \ } while (0)