From patchwork Fri Oct 12 09:30:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Govind Singh X-Patchwork-Id: 10638157 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 89896112B for ; Fri, 12 Oct 2018 09:30:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 799B92BC46 for ; Fri, 12 Oct 2018 09:30:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6E1DE2BC48; Fri, 12 Oct 2018 09:30:20 +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 135FF2BC46 for ; Fri, 12 Oct 2018 09:30:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728150AbeJLRBu (ORCPT ); Fri, 12 Oct 2018 13:01:50 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:39112 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728027AbeJLRBu (ORCPT ); Fri, 12 Oct 2018 13:01:50 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 534AD60791; Fri, 12 Oct 2018 09:30:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1539336618; bh=t4o8aIhjNKhMTUxAQDDUdPaiPLiYBeoDM3xZLARpmVU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kamGsxsDbOtIg8CDIMwLhT54bn2Q+nIIBj125q2+HBbzUoJo3PjAecJzMkt35vs37 6X7tfYx6Xe4gPg1KA84FA0jNdJczJoI/hm9IdXDEJv2ZvH+0aKDpoRs3y8D55Z6fL1 HXu9bS6HLLz3UlAhK4b1A4iqgNYNMgfPWH/ScJRc= 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 843F16063F; Fri, 12 Oct 2018 09:30:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1539336617; bh=t4o8aIhjNKhMTUxAQDDUdPaiPLiYBeoDM3xZLARpmVU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UMj5BcBAkx3JAupsQyJfmIGQswiWHcKAXUcwausJBc/AXQjn2kB71xiT2Q3D8VDfJ O2ZyWaD6k0pBrnU/pVkU2A/2IXgwF3DTg4TtPC5qD1tSF9iJtycUgqN/R7R2WeFJ7Q kJpcewWQ3X5g1mNc3NxXgRj33zUtLejoi9u1BmGw= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 843F16063F 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 1/3] ath10k: Enable bus layer suspend/resume for WCN3990 Date: Fri, 12 Oct 2018 15:00:01 +0530 Message-Id: <20181012093003.11932-2-govinds@codeaurora.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181012093003.11932-1-govinds@codeaurora.org> References: <20181012093003.11932-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..6da951eea345 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\n"); + 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\n"); + 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:30:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Govind Singh X-Patchwork-Id: 10638159 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 827D21508 for ; Fri, 12 Oct 2018 09:30:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 733042BC46 for ; Fri, 12 Oct 2018 09:30:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 679702BC48; Fri, 12 Oct 2018 09:30:22 +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 105E62BC46 for ; Fri, 12 Oct 2018 09:30:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728154AbeJLRBw (ORCPT ); Fri, 12 Oct 2018 13:01:52 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:39164 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728027AbeJLRBw (ORCPT ); Fri, 12 Oct 2018 13:01:52 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 4E30360AD8; Fri, 12 Oct 2018 09:30:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1539336620; bh=JbRXAVIBWwD16QNZWzV+fa1aFbd2FdekTlbm6N+BsdU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NpQvNXmaIrI8Csq6We7OfLtCE2F9IIgAnvf3MgT3EJUPArfbwF7VtKXVp6+TWA4Q7 lF4xpZbvGstUicXZufUASt5u3QxLbmTJNZxKE0o8aSFPveCymxdwzjO7kOF64bri/P cZpcFlA++lGMvuZFtlzeYkWJ4LtkK9mgr2QyXn7o= 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 8ACC260B73; Fri, 12 Oct 2018 09:30:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1539336619; bh=JbRXAVIBWwD16QNZWzV+fa1aFbd2FdekTlbm6N+BsdU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GKZ0d+0skSWNGzCLMHFPBvj4YaLuxbL8+hCtuxnuyYxw8nW6KjbKqAygM8QG6hUjk MUMiW2TOLLXOfYCVfZeZtksqVb3m3eUQw0jxlxA+nbDUoXVw7lO4CqBH1s/NSoBSkc wTV0oORMHwGXM1MgmtNvOF5qoMH7OGXRr4/YK/Aw= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 8ACC260B73 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 2/3] ath10k: Disable interface pause wow config for integrated chipset Date: Fri, 12 Oct 2018 15:00:02 +0530 Message-Id: <20181012093003.11932-3-govinds@codeaurora.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181012093003.11932-1-govinds@codeaurora.org> References: <20181012093003.11932-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:30:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Govind Singh X-Patchwork-Id: 10638161 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 6A1861508 for ; Fri, 12 Oct 2018 09:30:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 591FC2BC46 for ; Fri, 12 Oct 2018 09:30:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4DA712BC48; Fri, 12 Oct 2018 09:30:24 +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 E97482BC46 for ; Fri, 12 Oct 2018 09:30:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728204AbeJLRBy (ORCPT ); Fri, 12 Oct 2018 13:01:54 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:39240 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728027AbeJLRBy (ORCPT ); Fri, 12 Oct 2018 13:01:54 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 68F54605A4; Fri, 12 Oct 2018 09:30:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1539336622; bh=zFFCV8dF/s0kQeAIi9JmB7de/s77Qvgt1PYPogvaYNI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R09pTZT3VQ9i0H0h1Zn9tkF9PurIvzRZp+A7LNMtmn5pxmghnKSLGi0yew/BSbpaP ZY4pnfD/znuBYMGcuKiEVfkEdHGqz7Cd5h19+n+lRmq+9Ds7rbtNlSGhnVCAe7q62R 3xY70mDzISRjfheovV/eTdfY5AhCvn0IXYX032l0= 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 8F84D60209; Fri, 12 Oct 2018 09:30:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1539336622; bh=zFFCV8dF/s0kQeAIi9JmB7de/s77Qvgt1PYPogvaYNI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R09pTZT3VQ9i0H0h1Zn9tkF9PurIvzRZp+A7LNMtmn5pxmghnKSLGi0yew/BSbpaP ZY4pnfD/znuBYMGcuKiEVfkEdHGqz7Cd5h19+n+lRmq+9Ds7rbtNlSGhnVCAe7q62R 3xY70mDzISRjfheovV/eTdfY5AhCvn0IXYX032l0= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 8F84D60209 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 3/3] ath10k: Request credit report if flow control enabled on ep Date: Fri, 12 Oct 2018 15:00:03 +0530 Message-Id: <20181012093003.11932-4-govinds@codeaurora.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181012093003.11932-1-govinds@codeaurora.org> References: <20181012093003.11932-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++;