From patchwork Fri Oct 12 09:49:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Govind Singh X-Patchwork-Id: 10638233 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-2.web.codeaurora.org (Postfix) with ESMTP id 6492314E2 for ; Fri, 12 Oct 2018 09:49:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 49AC72B61C for ; Fri, 12 Oct 2018 09:49:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 388BC2B69F; Fri, 12 Oct 2018 09:49:48 +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=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 899EA2B61C for ; Fri, 12 Oct 2018 09:49:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728257AbeJLRVW (ORCPT ); Fri, 12 Oct 2018 13:21:22 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:59312 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727808AbeJLRVW (ORCPT ); Fri, 12 Oct 2018 13:21:22 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id A4ACD60AD8; Fri, 12 Oct 2018 09:49:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1539337785; bh=2MqALgetTAkw4UJEjOiE/NyIA+i59WNWFYofGUX8qY0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gQVGofdgbiSzwUtUBIQcur2aSQnKtKNV++dIPy9qUI9kaINT8wha3FQZo3CEqz4HZ 5YzZlyunsQQZtE0C4VS7CCtY79wFWO/PTP5SFm1mLT4xZ+ZvqgwhgOJyfialt/CcdJ 1cF+rYapLOzfRpkKzZFiZATreve+u2xq6N/PTns0= Received: from govinds-linux.qualcomm.com (blr-c-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.19.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: govinds@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id E82AF60791; Fri, 12 Oct 2018 09:49:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1539337785; bh=2MqALgetTAkw4UJEjOiE/NyIA+i59WNWFYofGUX8qY0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gQVGofdgbiSzwUtUBIQcur2aSQnKtKNV++dIPy9qUI9kaINT8wha3FQZo3CEqz4HZ 5YzZlyunsQQZtE0C4VS7CCtY79wFWO/PTP5SFm1mLT4xZ+ZvqgwhgOJyfialt/CcdJ 1cF+rYapLOzfRpkKzZFiZATreve+u2xq6N/PTns0= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org E82AF60791 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=govinds@codeaurora.org From: Govind Singh To: ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org, Govind Singh Subject: [PATCH v2 1/3] ath10k: Enable bus layer suspend/resume for WCN3990 Date: Fri, 12 Oct 2018 15:19:36 +0530 Message-Id: <20181012094938.14734-2-govinds@codeaurora.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181012094938.14734-1-govinds@codeaurora.org> References: <20181012094938.14734-1-govinds@codeaurora.org> MIME-Version: 1.0 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 Register snoc bus layer suspend/resume PM ops and configure the wakeup source(CE2) for the device. Testing: Tested on WCN3990 HW. Tested FW: WLAN.HL.2.0-01192-QCAHLSWMTPLZ-1. Signed-off-by: Govind Singh --- drivers/net/wireless/ath/ath10k/snoc.c | 45 ++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/drivers/net/wireless/ath/ath10k/snoc.c b/drivers/net/wireless/ath/ath10k/snoc.c index bdef3d00f3f4..3f935c5ce8a8 100644 --- a/drivers/net/wireless/ath/ath10k/snoc.c +++ b/drivers/net/wireless/ath/ath10k/snoc.c @@ -30,6 +30,7 @@ #define ATH10K_SNOC_RX_POST_RETRY_MS 50 #define CE_POLL_PIPE 4 +#define ATH10K_SNOC_WAKE_IRQ 2 static char *const ce_name[] = { "WLAN_CE_0", @@ -1025,6 +1026,46 @@ static int ath10k_snoc_hif_power_up(struct ath10k *ar) return ret; } +#ifdef CONFIG_PM +static int ath10k_snoc_hif_suspend(struct ath10k *ar) +{ + struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); + int ret; + + if (!device_may_wakeup(ar->dev)) + return -EPERM; + + ret = enable_irq_wake(ar_snoc->ce_irqs[ATH10K_SNOC_WAKE_IRQ].irq_line); + if (ret) { + ath10k_err(ar, "failed to enable wakeup irq :%d\n", ret); + return ret; + } + + ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc device suspended\n"); + + return ret; +} + +static int ath10k_snoc_hif_resume(struct ath10k *ar) +{ + struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); + int ret; + + if (!device_may_wakeup(ar->dev)) + return -EPERM; + + ret = disable_irq_wake(ar_snoc->ce_irqs[ATH10K_SNOC_WAKE_IRQ].irq_line); + if (ret) { + ath10k_err(ar, "failed to disable wakeup irq: %d\n", ret); + return ret; + } + + ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc device resumed\n"); + + return ret; +} +#endif + static const struct ath10k_hif_ops ath10k_snoc_hif_ops = { .read32 = ath10k_snoc_read32, .write32 = ath10k_snoc_write32, @@ -1038,6 +1079,10 @@ static const struct ath10k_hif_ops ath10k_snoc_hif_ops = { .send_complete_check = ath10k_snoc_hif_send_complete_check, .get_free_queue_number = ath10k_snoc_hif_get_free_queue_number, .get_target_info = ath10k_snoc_hif_get_target_info, +#ifdef CONFIG_PM + .suspend = ath10k_snoc_hif_suspend, + .resume = ath10k_snoc_hif_resume, +#endif }; static const struct ath10k_bus_ops ath10k_snoc_bus_ops = { From patchwork Fri Oct 12 09:49:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Govind Singh X-Patchwork-Id: 10638235 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-2.web.codeaurora.org (Postfix) with ESMTP id 41A04933 for ; Fri, 12 Oct 2018 09:49:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 309332B61C for ; Fri, 12 Oct 2018 09:49:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 246BF2B69F; Fri, 12 Oct 2018 09:49:50 +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=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 B2AF92B61C for ; Fri, 12 Oct 2018 09:49:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728283AbeJLRVY (ORCPT ); Fri, 12 Oct 2018 13:21:24 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:59396 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727808AbeJLRVY (ORCPT ); Fri, 12 Oct 2018 13:21:24 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 1C5BB60C6A; Fri, 12 Oct 2018 09:49:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1539337788; bh=JbRXAVIBWwD16QNZWzV+fa1aFbd2FdekTlbm6N+BsdU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LHgtMAMsEZwB4R5TSg7ggAVqD/yDtgu7+Ntn+/cp8kE1RuRjXA68jzIU9HoDL2jeU PQc/Sp0qWbFMjgvRYIuGdQj4B6EWZA1R0CMwOO3kVrlrvj8xXD93atxejWTh3VAWED mNik4fHcI+MerKYtw9vmNIa3JIBSO+cUaZehG2J4= Received: from govinds-linux.qualcomm.com (blr-c-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.19.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: govinds@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id EAD5C60C55; Fri, 12 Oct 2018 09:49:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1539337787; bh=JbRXAVIBWwD16QNZWzV+fa1aFbd2FdekTlbm6N+BsdU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j0tUfwH5PG1GdmC60G7mHo3nG+5lqlRT3KZOPZ69T57SAQdiGWb9NsHeZPQwYZuBb 09BQagD2qrG9QpQYmv2NQrokAvnBMBKHnUVnv3ffYrg2fM9TZqTDT9C8Q3ZpdnwYT6 9XHuqiWY166GPzAnj7wpKjnycdg5tWYiGQiGQ21k= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org EAD5C60C55 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=govinds@codeaurora.org From: Govind Singh To: ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org, Govind Singh Subject: [PATCH v2 2/3] ath10k: Disable interface pause wow config for integrated chipset Date: Fri, 12 Oct 2018 15:19:37 +0530 Message-Id: <20181012094938.14734-3-govinds@codeaurora.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181012094938.14734-1-govinds@codeaurora.org> References: <20181012094938.14734-1-govinds@codeaurora.org> MIME-Version: 1.0 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 wow pause iface config controls the PCI D0/D3-WOW cases for pcie bus state. Firmware does not expects WOW_IFACE_PAUSE_ENABLED config for bus/link that cannot be suspended ex:snoc and does not trigger common subsystem shutdown. Disable interface pause wow config for integrated chipset(WCN3990) for correct WOW configuration in the firmware. Testing: Tested on WCN3990 HW. Tested FW: WLAN.HL.2.0-01192-QCAHLSWMTPLZ-1. Signed-off-by: Govind Singh --- drivers/net/wireless/ath/ath10k/wmi-tlv.c | 2 ++ drivers/net/wireless/ath/ath10k/wmi-tlv.h | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/drivers/net/wireless/ath/ath10k/wmi-tlv.c b/drivers/net/wireless/ath/ath10k/wmi-tlv.c index 8c49a26fc571..1e608ef6499c 100644 --- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c +++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c @@ -3185,6 +3185,8 @@ ath10k_wmi_tlv_op_gen_wow_enable(struct ath10k *ar) cmd = (void *)tlv->value; cmd->enable = __cpu_to_le32(1); + if (ar->hif.bus == ATH10K_BUS_SNOC) + cmd->pause_iface_config = WOW_IFACE_PAUSE_DISABLED; ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow enable\n"); return skb; diff --git a/drivers/net/wireless/ath/ath10k/wmi-tlv.h b/drivers/net/wireless/ath/ath10k/wmi-tlv.h index 3e1e340cd834..a8bdb5614b9b 100644 --- a/drivers/net/wireless/ath/ath10k/wmi-tlv.h +++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.h @@ -1968,8 +1968,15 @@ struct wmi_tlv_set_quiet_cmd { __le32 enabled; } __packed; +enum wmi_tlv_wow_interface_cfg { + WOW_IFACE_PAUSE_ENABLED, + WOW_IFACE_PAUSE_DISABLED +}; + struct wmi_tlv_wow_enable_cmd { __le32 enable; + __le32 pause_iface_config; + __le32 flags; } __packed; struct wmi_tlv_wow_host_wakeup_ind { From patchwork Fri Oct 12 09:49:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Govind Singh X-Patchwork-Id: 10638237 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-2.web.codeaurora.org (Postfix) with ESMTP id CB132933 for ; Fri, 12 Oct 2018 09:49:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BBC0A2B61C for ; Fri, 12 Oct 2018 09:49:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B016C2B69F; Fri, 12 Oct 2018 09:49:51 +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=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 5FCF62B61C for ; Fri, 12 Oct 2018 09:49:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728309AbeJLRV0 (ORCPT ); Fri, 12 Oct 2018 13:21:26 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:59452 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727808AbeJLRV0 (ORCPT ); Fri, 12 Oct 2018 13:21:26 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id A9E9B60C60; Fri, 12 Oct 2018 09:49:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1539337789; bh=zFFCV8dF/s0kQeAIi9JmB7de/s77Qvgt1PYPogvaYNI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nwvkVKI2JKM4Odp35v2D9EoEDl919WVnVuOyT5jsuoD0R5KXhpBD3Yz9n57ZgHsVV yyTdH44oXEbi//2d8WscZArDIKCcbB/o6pc4lR30/5Q63pWRs2m6MVcuI1thuYOVDt K39LjDHNnOr3B+kbCpjkmqPr9ekeZ/ou3rctoW8U= Received: from govinds-linux.qualcomm.com (blr-c-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.19.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: govinds@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id F0E49605A4; Fri, 12 Oct 2018 09:49:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1539337789; bh=zFFCV8dF/s0kQeAIi9JmB7de/s77Qvgt1PYPogvaYNI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nwvkVKI2JKM4Odp35v2D9EoEDl919WVnVuOyT5jsuoD0R5KXhpBD3Yz9n57ZgHsVV yyTdH44oXEbi//2d8WscZArDIKCcbB/o6pc4lR30/5Q63pWRs2m6MVcuI1thuYOVDt K39LjDHNnOr3B+kbCpjkmqPr9ekeZ/ou3rctoW8U= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org F0E49605A4 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=govinds@codeaurora.org From: Govind Singh To: ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org, Govind Singh Subject: [PATCH v2 3/3] ath10k: Request credit report if flow control enabled on ep Date: Fri, 12 Oct 2018 15:19:38 +0530 Message-Id: <20181012094938.14734-4-govinds@codeaurora.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181012094938.14734-1-govinds@codeaurora.org> References: <20181012094938.14734-1-govinds@codeaurora.org> MIME-Version: 1.0 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 FW credit flow control is enabled for only WMI ctrl service(CE3) but credit update is requested unconditionally on all HTC services as part of HTC tx in CE3/CE0/CE4. This is causing WOW failure as FW is not expecting credit report request on other end-points(CE0/CE4). Request credit report only on those endpoints where credit flow control is enabled. Testing: Tested on WCN3990 HW. Tested FW: WLAN.HL.2.0-01192-QCAHLSWMTPLZ-1. Signed-off-by: Govind Singh --- drivers/net/wireless/ath/ath10k/htc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/ath/ath10k/htc.c b/drivers/net/wireless/ath/ath10k/htc.c index 8902720b4e49..31f1a316be7c 100644 --- a/drivers/net/wireless/ath/ath10k/htc.c +++ b/drivers/net/wireless/ath/ath10k/htc.c @@ -87,7 +87,8 @@ static void ath10k_htc_prepare_tx_skb(struct ath10k_htc_ep *ep, hdr->eid = ep->eid; hdr->len = __cpu_to_le16(skb->len - sizeof(*hdr)); hdr->flags = 0; - hdr->flags |= ATH10K_HTC_FLAG_NEED_CREDIT_UPDATE; + if (ep->tx_credit_flow_enabled) + hdr->flags |= ATH10K_HTC_FLAG_NEED_CREDIT_UPDATE; spin_lock_bh(&ep->htc->tx_lock); hdr->seq_no = ep->seq_no++;