Received: by 2002:a05:7412:419a:b0:f3:1519:9f41 with SMTP id i26csp3195621rdh; Mon, 27 Nov 2023 08:20:48 -0800 (PST) X-Google-Smtp-Source: AGHT+IGRkjZJZD5wmqK8XR+oQEHKOPz12ErwvQy3RnD/cqFKsNyEkJFxkVUzghIiZORGHmxQAN5k X-Received: by 2002:a05:622a:d5:b0:41b:7773:ee56 with SMTP id p21-20020a05622a00d500b0041b7773ee56mr12161166qtw.50.1701102048017; Mon, 27 Nov 2023 08:20:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701102048; cv=none; d=google.com; s=arc-20160816; b=iVnS/0Xwwr6XkYUOhECnSi4GYiTWc82Lh4s7OoUhOc+5knklOCLf2hKKi0TsN4VVrP zGuulXBYRZga8C/1oagjC279Gx7KPZc4s5YS6KcYVR/3REP/EMqN0OBJjmWjPc6+V90H 9j/DiyhcZbs6UqPDLiX4iFD+sCRjnsM8TcxH6th6R4dyVRZ1v3YX+gKk/ugobDom5Xk+ bWjxGti4J+he6p3ZFQN9wdT7av+QrMgL/Q/adPHNGrg4dX6pG4WGoO0grZh2YWI5Bn+a jm9CO9DygGlDYLPI6CX+eMvEQnu9u4kO+eV8/C5LQ7+c8xTSIPdR850s3yU4NIimtOFB hdSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=4gk0zw4OBpTkrcGfk8tpNUfJspoBMTxhXMWLSwKpXxk=; fh=DsmpQugfDyHzy3r7IhaRWgu+h4RwOFD/lORqFRmQRCg=; b=g0IHoUylfsMh6+Ai/3lesgOUjz/aaOGWFHJtEAG46vwZI/tJNGOpvH0xuhO9bfONkZ SLz3kUDAzeW4E1zKJoIsPFnNqAUQFFPATlhkuJPqXp2P4fClJdoG4FaWDgoo3gCENx3M g06cjKFn8xvdjgfsw9DtvWSMUiyhCB6L6bfbGYj2RP7y9T9JmQlWHXd+w+dXnWXClEmY VikuoERCKUV9Env+vaFeo9fb81HAYkTDjKl11zh8Wpp5HxKD0OZ5Yl6PTcWJNskxYiqY P783DmlLypLYSAYHi+v8lLEGEAI4xMtLdD7AH5W/kbM/sqxQtgzAPnNaOa6XE1ycRWBT VlKQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=fmNRLMZ5; spf=pass (google.com: domain of linux-wireless+bounces-110-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-wireless+bounces-110-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id j11-20020ac85c4b000000b00423794c99a1si9652302qtj.362.2023.11.27.08.20.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 08:20:48 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless+bounces-110-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=fmNRLMZ5; spf=pass (google.com: domain of linux-wireless+bounces-110-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-wireless+bounces-110-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id AC1A41C20A95 for ; Mon, 27 Nov 2023 16:20:47 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7C5C937152; Mon, 27 Nov 2023 16:20:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fmNRLMZ5" X-Original-To: linux-wireless@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5EBAB36B08; Mon, 27 Nov 2023 16:20:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 33EDDC433C7; Mon, 27 Nov 2023 16:20:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701102029; bh=5ou17yiktRU9nagkHXi6c6F9I8XPQs9jzQuZICUzCw4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fmNRLMZ5HHgeTI8q/E817rmKIoEht8FTlg3XPowTCpn+Aqp9X6RovHciR3ym0hdkf 2kvL6tBOjz1VdFmc9rFzlpjMwou/5x0UH7lQhwF8MqSSRpvUTuxKJzR09EH/GeTOOx 86dH+C9ktuAG5mPk3SDFYci7U91ipp2C6NrtnwRLDCzVurQ6DN+v3EJ/Y/MkxGOGzx E1N5SUmDiNF8glr8RoGzWR6wbQi6yTIKX42/xg4nKhCp3Qvqnmr1jh78oAcyaZj4Qe hSZi6AnZRcCIcj5LKNINcjze5Bcoc/qrv2BTpnEnIM+MCltRMyQVNyvpHspXn5ii2B xyWYUZkzAf1xg== From: Kalle Valo To: mhi@lists.linux.dev Cc: ath11k@lists.infradead.org, linux-wireless@vger.kernel.org Subject: [PATCH RFC v2 3/8] wifi: ath11k: handle irq enable/disable in several code path Date: Mon, 27 Nov 2023 18:20:17 +0200 Message-Id: <20231127162022.518834-4-kvalo@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231127162022.518834-1-kvalo@kernel.org> References: <20231127162022.518834-1-kvalo@kernel.org> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Baochen Qiang For non WoW suspend/resume, ath11k host powers down whole hardware when suspend and power up it when resume, the code path it goes through is very like the ath11k reset logic. In order to reuse that logic, do some IRQ management work to make it work. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Signed-off-by: Baochen Qiang Signed-off-by: Kalle Valo --- drivers/net/wireless/ath/ath11k/core.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c index 0c6ecbb9a066..fbd6b6a0e12c 100644 --- a/drivers/net/wireless/ath/ath11k/core.c +++ b/drivers/net/wireless/ath/ath11k/core.c @@ -852,9 +852,6 @@ int ath11k_core_resume(struct ath11k_base *ab) return ret; } - ath11k_hif_ce_irq_enable(ab); - ath11k_hif_irq_enable(ab); - ret = ath11k_dp_rx_pktlog_start(ab); if (ret) { ath11k_warn(ab, "failed to start rx pktlog during resume: %d\n", @@ -1775,10 +1772,9 @@ static int ath11k_core_reconfigure_on_crash(struct ath11k_base *ab) mutex_lock(&ab->core_lock); ath11k_thermal_unregister(ab); - ath11k_hif_irq_disable(ab); ath11k_dp_pdev_free(ab); ath11k_spectral_deinit(ab); - ath11k_hif_stop(ab); + ath11k_ce_cleanup_pipes(ab); ath11k_wmi_detach(ab); ath11k_dp_pdev_reo_cleanup(ab); mutex_unlock(&ab->core_lock); @@ -2033,8 +2029,8 @@ static void ath11k_core_reset(struct work_struct *work) time_left = wait_for_completion_timeout(&ab->recovery_start, ATH11K_RECOVER_START_TIMEOUT_HZ); - ath11k_hif_power_down(ab); - ath11k_hif_power_up(ab); + ath11k_hif_irq_disable(ab); + ath11k_hif_ce_irq_disable(ab); ath11k_dbg(ab, ATH11K_DBG_BOOT, "reset started\n"); } -- 2.39.2