From patchwork Wed May 17 10:52:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ilpo_J=C3=A4rvinen?= X-Patchwork-Id: 95169 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp1044677vqo; Wed, 17 May 2023 04:06:44 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7//9XkXn+LUVPBTxKSroSQU++ICHVbCNFSeiI7pQab22caAG2xkF1EdSyWGKABq6bbsS9Z X-Received: by 2002:a17:902:c950:b0:1a1:d54b:71df with SMTP id i16-20020a170902c95000b001a1d54b71dfmr2011815pla.0.1684321603828; Wed, 17 May 2023 04:06:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684321603; cv=none; d=google.com; s=arc-20160816; b=XNYU4BlIrUtzPDtL9wmNS352QECY92sJy4XUTZeRxeaCSNMrP5uf1FgiUlp06AT5Qm Gd/T8ZKvhJmSsPz5+014err59neuVtE4DnrMPVsrcrLD9Av2Xx9Z+AgPrM5k1qZMfMoZ dEOQ06uWPOqCYNeNUrakSgle2zHPU7A32UYvjq45xv6MMvLCKHxkWGa/oIZ4l5OGQTHo ZE7iVueZHqLhnoHS0U4phdPJLRoqK3Jf9pEL/O6kxIoAZxlWIqEpyKHjLu0bvR0SdA2L zE18cR5Ylu0vmcDuuHgbxEwAwgqWn2XQQ0gxldoL6BDTCOvlopX9Zrs9YZg1a3NH1sx6 SfKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=2axjmF+AM7q79nZADlnqZG+DqsQaGGOui7TPu6aZKsU=; b=EULbioWUBSt9CHR0Q7jw6wJDzHI8/JuSaH4m0aIpb/foosoT7zSuKqi/xdKVxwFtSK ide7mdgpB2hQtZRlmX0HVwGNzwXvooFq1SbfaftU2osdv8yzxZbOMiMJsqf9ImlcTjvQ AxN9ETRbdsye/DMwrbceiZu3o15vj5Q80VnIs08lisFYzpQycELi1hRMz3Kkc5mbNYPk 7mGygoHssaH3O1VEFLrTRAmanPsBJCh6Pq1/V/jqw0uyt5D9aGY4O4ba6EwGlno8VNQW iKZ09Ae/KnM4QXdFC9JosJXwf80X5KYCuEK2eaZh2pL78fWruVB4L7PEnyn+QEDPwtlD jHUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=kQSZsMOP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u2-20020a170902e5c200b0019f33cb669asi22086915plf.615.2023.05.17.04.06.28; Wed, 17 May 2023 04:06:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=kQSZsMOP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230514AbjEQK6o (ORCPT + 99 others); Wed, 17 May 2023 06:58:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42388 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230216AbjEQK6l (ORCPT ); Wed, 17 May 2023 06:58:41 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6FE4B61AD; Wed, 17 May 2023 03:58:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684321090; x=1715857090; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FuFXzjOd8Jq9CElj4g5CQDGQFvJ4smZ3IyuF6JWPb+E=; b=kQSZsMOP7zbF5CIsF2HnMdNXkYQo4aP36Lu9xtRHy9xYKfeyHhzjwgkl 3oAILAs6t+0q6cUuUzN1UNqt6GBKKZ89XWP8DjVBFVbJUeh78oh9XiRYr uZ1AKfjKnv+/aHUXdMIrDHZMRE0iVEIsU8llkpPwlkcOCziLj/AdKrtHo +50FeaZEfiLfpsIjamNihbBv7t9comLqJxJ+MdVbIiXet2paXZnSWr0bK I7b9I1KiJ5tBNBw9OcZsszAQ2Kamo0dfTzJ0o7twnXBDtLodgndiB60wr jzGuB9p6j5QPcA6Ia8eYhOjC3TH32lEOHVHOy6D4o63EZZDHqurwFw2mz Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10712"; a="438071923" X-IronPort-AV: E=Sophos;i="5.99,281,1677571200"; d="scan'208";a="438071923" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 May 2023 03:54:06 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10712"; a="734651392" X-IronPort-AV: E=Sophos;i="5.99,281,1677571200"; d="scan'208";a="734651392" Received: from lnstern-mobl1.amr.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.251.221.185]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 May 2023 03:53:59 -0700 From: =?utf-8?q?Ilpo_J=C3=A4rvinen?= To: linux-pci@vger.kernel.org, Bjorn Helgaas , Lorenzo Pieralisi , Rob Herring , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Emmanuel Grumbach , "Rafael J . Wysocki" , Heiner Kallweit , Lukas Wunner , Kalle Valo , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Michal Kazior , Janusz Dziedzic , ath10k@lists.infradead.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dean Luick , Andy Shevchenko , =?utf-8?q?Ilpo_J=C3=A4?= =?utf-8?q?rvinen?= , stable@vger.kernel.org Subject: [PATCH v2 9/9] wifi: ath10k: Use RMW accessors for changing LNKCTL Date: Wed, 17 May 2023 13:52:35 +0300 Message-Id: <20230517105235.29176-10-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230517105235.29176-1-ilpo.jarvinen@linux.intel.com> References: <20230517105235.29176-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766139210142300560?= X-GMAIL-MSGID: =?utf-8?q?1766139210142300560?= Don't assume that only the driver would be accessing LNKCTL. ASPM policy changes can trigger write to LNKCTL outside of driver's control. Use RMW capability accessors which does proper locking to avoid losing concurrent updates to the register value. On restore, clear the ASPMC field properly. Fixes: 76d870ed09ab ("ath10k: enable ASPM") Suggested-by: Lukas Wunner Signed-off-by: Ilpo Järvinen Cc: stable@vger.kernel.org Acked-by: Kalle Valo --- drivers/net/wireless/ath/ath10k/pci.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/pci.c b/drivers/net/wireless/ath/ath10k/pci.c index a7f44f6335fb..9275a672f90c 100644 --- a/drivers/net/wireless/ath/ath10k/pci.c +++ b/drivers/net/wireless/ath/ath10k/pci.c @@ -1963,8 +1963,9 @@ static int ath10k_pci_hif_start(struct ath10k *ar) ath10k_pci_irq_enable(ar); ath10k_pci_rx_post(ar); - pcie_capability_write_word(ar_pci->pdev, PCI_EXP_LNKCTL, - ar_pci->link_ctl); + pcie_capability_clear_and_set_word(ar_pci->pdev, PCI_EXP_LNKCTL, + PCI_EXP_LNKCTL_ASPMC, + ar_pci->link_ctl & PCI_EXP_LNKCTL_ASPMC); return 0; } @@ -2821,8 +2822,8 @@ static int ath10k_pci_hif_power_up(struct ath10k *ar, pcie_capability_read_word(ar_pci->pdev, PCI_EXP_LNKCTL, &ar_pci->link_ctl); - pcie_capability_write_word(ar_pci->pdev, PCI_EXP_LNKCTL, - ar_pci->link_ctl & ~PCI_EXP_LNKCTL_ASPMC); + pcie_capability_clear_word(ar_pci->pdev, PCI_EXP_LNKCTL, + PCI_EXP_LNKCTL_ASPMC); /* * Bring the target up cleanly.