Subject: Re: mt7612 suspend/resume issue

From: Lorenzo Bianconi <[email-masked]>
Date: Mon, 22 Jun 2020 18:02:17 +0200

> On Mon, Jun 22, 2020 at 4:53 PM Lorenzo Bianconi
> <[email-masked]> wrote:
> > > On Sun, Jun 21, 2020 at 10:54 PM Lorenzo Bianconi <[email-masked]> wrote:
> > > > > > +static int __maybe_unused
> > > > > > +mt76x2e_suspend(struct pci_dev *pdev, pm_message_t state)
> > > > > > +{
> > > > > > +   struct mt76_dev *mdev = pci_get_drvdata(pdev);
> > > > > > +   struct mt76x02_dev *dev = container_of(mdev, struct mt76x02_dev, mt76);
> > > > > > +   int i, err;
> > > >
> > > > can you please double-check what is the PCI state requested during suspend?
> > >
> > > Do you mean ACPI S3 (this is the state the system enters)?  If not,
> > > what should I check and where?
> >
> > yes, right. Just for debugging, can you please force the card in PCI_D0 during the
> > suspend?
> 
> Do you want me to do this:
> 
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/pci.c
> b/drivers/net/wireless/mediatek/mt76/mt76x2/pci.c
> index 5543e242fb9b..e558342cce03 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76x2/pci.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt76x2/pci.c
> @@ -119,9 +119,8 @@ mt76x2e_suspend(struct pci_dev *pdev, pm_message_t state)
> 
>      mt76x02_dma_reset(dev);
> 
> -    pci_enable_wake(pdev, pci_choose_state(pdev, state), true);
>      pci_save_state(pdev);
> -    err = pci_set_power_state(pdev, pci_choose_state(pdev, state));
> +    err = pci_set_power_state(pdev, PCI_D0);
>      if (err)
>          goto restore;

I think you can just substitute pci_choose_state(pdev, state) with PCI_D0, not
removing pci_enable_wake()

Regards,
Lorenzo

> 
> ?
> 
> -- 
>   Best regards,
>     Oleksandr Natalenko (post-factum)
>     Principal Software Maintenance Engineer
>