linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kalle Valo <kvalo@codeaurora.org>
To: "Tomislav Požega" <pozega.tomislav@gmail.com>
Cc: linux-wireless@vger.kernel.org, ath10k@lists.infradead.org
Subject: Re: [PATCH] ath10k: Fix ASPM L1 state on QCA988X
Date: Thu, 03 Oct 2019 16:33:46 +0300	[thread overview]
Message-ID: <87wodmgdhh.fsf@tynnyri.adurom.net> (raw)
In-Reply-To: <1553025580-6118-1-git-send-email-pozega.tomislav@gmail.com> ("Tomislav \=\?utf-8\?Q\?Po\=C5\=BEega\=22's\?\= message of "Tue, 19 Mar 2019 20:59:40 +0100")

(please always CC ath10k list so that ath10k patches are easy to find)

Tomislav Požega <pozega.tomislav@gmail.com> writes:

> On some systems there are heavy crashes if the kernel config
> option CONFIG_PCIEASPM_PERFORMANCE is not set. Patch provided by
> Sujith for ath9k fixes this issue and the card operates without
> crashes with kernel default CONFIG_PCIEASPM_DEFAULT option that uses
> BIOS provided ASPM settings. Tested with QCA9862 mPCIe card.
>
> Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
> Signed-off-by: Tomislav Požega <pozega.tomislav@gmail.com>

So I'll summarise the discussion from patchwork:

https://patchwork.kernel.org/patch/10860301/

Sujith wrote this workaround first for ath9k and you ported it to
ath10k:

https://lore.kernel.org/linux-wireless/1377421989-21240-1-git-send-email-sujith@msujith.org/

https://git.kernel.org/linus/b380a43b52be

And you have PCI problems after QCA988X firmware has crashed on HP
Compaq 6735b laptop, apparently the device just does not respond on PCI
bus at that point. And this workaround solves the issue and you don't
have any problems anymore.

Please correct if I have misunderstood.

> --- a/drivers/net/wireless/ath/ath10k/pci.c
> +++ b/drivers/net/wireless/ath/ath10k/pci.c
> @@ -2787,14 +2787,25 @@ static int ath10k_pci_hif_power_up(struct ath10k *ar,
>  				   enum ath10k_firmware_mode fw_mode)
>  {
>  	struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
> +	struct pci_dev *pdev = ar_pci->pdev;
>  	int ret;
> +	u32 val;
>  
>  	ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot hif power up\n");
>  
> -	pcie_capability_read_word(ar_pci->pdev, PCI_EXP_LNKCTL,
> +	if (ar->dev_id == QCA988X_2_0_DEVICE_ID) {
> +		pci_read_config_dword(pdev, 0x70c, &val);
> +		if ((val & 0xff000000) == 0x17000000) {
> +			val &= 0x00ffffff;
> +			val |= 0x27000000;
> +			pci_write_config_dword(pdev, 0x570c, val);
> +		}
> +	} else {
> +		pcie_capability_read_word(ar_pci->pdev, PCI_EXP_LNKCTL,
>  				  &ar_pci->link_ctl);
> -	pcie_capability_write_word(ar_pci->pdev, PCI_EXP_LNKCTL,
> +		pcie_capability_write_word(ar_pci->pdev, PCI_EXP_LNKCTL,
>  				   ar_pci->link_ctl & ~PCI_EXP_LNKCTL_ASPMC);
> +	}

Magic values are not nice, it's better to have proper defines. Sujith
already provided meaning for 0x70c, but I don't know what 0x570c means
(or I guess 0x500 offset)?

Also please use GENMASK() and FIELD_PREP(). Otherwise looks good to me.

-- 
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

  parent reply	other threads:[~2019-10-03 13:33 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-19 19:59 [PATCH] ath10k: Fix ASPM L1 state on QCA988X Tomislav Požega
2019-03-19 20:45 ` Peter Oh
2019-03-19 21:02   ` Tom Psyborg
2019-03-20 15:12 ` Ben Greear
2019-03-20 15:48   ` Tom Psyborg
2019-03-20 15:59     ` Ben Greear
2019-09-25 10:35       ` Tom Psyborg
2019-10-03 13:33 ` Kalle Valo [this message]
2019-10-03 14:01   ` Tom Psyborg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87wodmgdhh.fsf@tynnyri.adurom.net \
    --to=kvalo@codeaurora.org \
    --cc=ath10k@lists.infradead.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=pozega.tomislav@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).