Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp1422826pxj; Fri, 4 Jun 2021 14:09:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxAph9Jcg+DN14EfOqG09N0Brbvm9fI8ESdehmXvxP6iIfEsEa2s2/prxqXRTu5mGwqjgR5 X-Received: by 2002:a05:6402:612:: with SMTP id n18mr6692932edv.83.1622840949606; Fri, 04 Jun 2021 14:09:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622840949; cv=none; d=google.com; s=arc-20160816; b=n/HPkPQeYYeajpvHwd0Mn3BNDjRhLzVIeVmYMIhI0F2G10vusKQNZ6BM0dhg+PMOEv O/IL3d2uMnadb0NhMrb4iRrDnlkMRM4UNmnN1zCdWlidx5KOf0a3PblDvq1aiWGpEE9q WjWa/FeShuLt+vT7uL60Jq9AiMCsTJjGGSIYYht5raKzW/O46NNAkqnTRa5zKvv0iBXP opT/c0PS3BPF0okOSSFOsazhWUIYW5/xzoZ+vANBrdZTw3AXHf4/dq/RinPcQ4nqMyKD l3IljTaUY/sovO24EjauPYgw8QCnwR6UUOw4o935AZQrplGAHDyB2Q+7gaQVdOGaylw5 J7Zw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:message-id:subject:cc:to:from:date :dkim-signature; bh=0nf/J12u4BY+yjc0ioJcvpa4QQ2Ev1dcUcfha11iKKY=; b=Anhow/DbW/LNUXnZC7uKh5yRXr5zHS+NUVD2swW0RIEOyW0vG5XRWkSV+d+DPLoOsb pNPlwEuww2QBTEFBZIxZAJkHxVRQdVpZxcnduN2y50tKs/Uq2HzXVUGM0YFWzvAfvc9R w/a/siXEQBdtq31wP6aUpFIJNQfkdcNK3fei9ykXpTVrz0PNODr02gcnwVadve5Zd722 etMpyI8Xfapl7/MOcQ3YDQs0JbMOdwSHj+/we83atsZXTT4xEgJgD5NfObaCTnFr8OTp EUI3hszdgXBb1rEFMR435kHIgZPXtalVQQZQ3a1QOaQJ2BP8FRtUM/XH+kw9ImuSgVbT Rk6A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="TaM//SWb"; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h11si5117519edw.427.2021.06.04.14.08.38; Fri, 04 Jun 2021 14:09:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="TaM//SWb"; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229961AbhFDVKX (ORCPT + 99 others); Fri, 4 Jun 2021 17:10:23 -0400 Received: from mail.kernel.org ([198.145.29.99]:52840 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229668AbhFDVKV (ORCPT ); Fri, 4 Jun 2021 17:10:21 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 25F81613EA; Fri, 4 Jun 2021 21:08:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1622840914; bh=Xye3NEgxGGlW+L7h1jlnfY5apTXpxQ80ISWiwLJL5g0=; h=Date:From:To:Cc:Subject:In-Reply-To:From; b=TaM//SWb/KIsUNGkxKDWGLtb5Sev3OUCRqvvGSWzSx9tdz7rNOT0dEgfA6QUVLadm lcSEAyOZePbSq+JBbNucDkEvQrhLWUqHiIbkAvfttf7cDveTYmp+5lb3oDLbh1hQlV py1Sp3P2Z2A1IN277joEPD8Zv1n+lPz1jSVHURZFATuftUpnPIcQzLqULie7PTTOv8 Jlh/FTCg5JVQKmLeLTFeujWdm2B91poSc6cmnzKNX99UL9eeJVkhouNFIdsBvKPlOj FzFvtM4CqJG3qlEut8U6GL+Ysloe8TzHh8sQmEqqqXC+tJ/c0y8GvmNjlCZP4JG/DR Z6pTG/V5xHnCA== Date: Fri, 4 Jun 2021 16:08:32 -0500 From: Bjorn Helgaas To: Jonas =?iso-8859-1?Q?Dre=DFler?= Cc: Amitkumar Karwar , Ganapathi Bhat , Sharvari Harisangam , Xinming Hu , Kalle Valo , "David S. Miller" , Jakub Kicinski , Tsuchiya Yuto , linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, Maximilian Luz , Andy Shevchenko , Bjorn Helgaas , Pali =?iso-8859-1?Q?Roh=E1r?= Subject: Re: [RFC PATCH 2/3] mwifiex: pcie: add reset_d3cold quirk for Surface gen4+ devices Message-ID: <20210604210832.GA2239805@bjorn-Precision-5520> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20210522131827.67551-3-verdre@v0yd.nl> Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org On Sat, May 22, 2021 at 03:18:26PM +0200, Jonas Dre?ler wrote: > From: Tsuchiya Yuto > > To reset mwifiex on Surface gen4+ (Pro 4 or later gen) devices, it > seems that putting the wifi device into D3cold is required according > to errata.inf file on Windows installation (Windows/INF/errata.inf). > > This patch adds a function that performs power-cycle (put into D3cold > then D0) and call the function at the end of reset_prepare(). > > Note: Need to also reset the parent device (bridge) of wifi on SB1; > it might be because the bridge of wifi always reports it's in D3hot. > When I tried to reset only the wifi device (not touching parent), it gave > the following error and the reset failed: > > acpi device:4b: Cannot transition to power state D0 for parent in D3hot > mwifiex_pcie 0000:03:00.0: can't change power state from D3cold to D0 (config space inaccessible) > > Signed-off-by: Tsuchiya Yuto > Signed-off-by: Jonas Dre?ler > --- > drivers/net/wireless/marvell/mwifiex/pcie.c | 7 + > .../wireless/marvell/mwifiex/pcie_quirks.c | 123 ++++++++++++++++++ > .../wireless/marvell/mwifiex/pcie_quirks.h | 3 + > 3 files changed, 133 insertions(+) > > diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c > index 02fdce926de5..d9acfea395ad 100644 > --- a/drivers/net/wireless/marvell/mwifiex/pcie.c > +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c > @@ -528,6 +528,13 @@ static void mwifiex_pcie_reset_prepare(struct pci_dev *pdev) > mwifiex_shutdown_sw(adapter); > clear_bit(MWIFIEX_IFACE_WORK_DEVICE_DUMP, &card->work_flags); > clear_bit(MWIFIEX_IFACE_WORK_CARD_RESET, &card->work_flags); > + > + /* For Surface gen4+ devices, we need to put wifi into D3cold right > + * before performing FLR This comment seems incorrect or at least incomplete. When the device is in D3cold, it isn't powered at all, so you can't do anything with it, including FLR. But maybe you meant that you need to put it in D3cold and back to D0 before doing an FLR. That would work. But in that case, there's no point in an FLR because the power cycle has already reset more than the FLR will. Bjorn