All of lore.kernel.org
 help / color / mirror / Atom feed
From: Loic Poulain <loic.poulain@linaro.org>
To: Carl Huang <cjhuang@codeaurora.org>, Kalle Valo <kvalo@codeaurora.org>
Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>,
	ath11k@lists.infradead.org,
	linux-arm-msm <linux-arm-msm@vger.kernel.org>,
	linux-wireless@vger.kernel.org, regressions@lists.linux.dev
Subject: Re: [regression] mhi: ath11k resume fails on some devices
Date: Thu, 23 Sep 2021 12:50:08 +0200	[thread overview]
Message-ID: <CAMZdPi-3WOj_TT7diUJJ00RaoHgKw-tu-heQJu6vDUK1yZ4CZg@mail.gmail.com> (raw)
In-Reply-To: <6912b6840858c0554922c01a0f9c47b8@codeaurora.org>

Hi Carl and Kalle,

On Thu, 23 Sept 2021 at 11:26, Carl Huang <cjhuang@codeaurora.org> wrote:
>
> On 2021-09-23 16:59, Manivannan Sadhasivam wrote:
> > On Thu, Sep 23, 2021 at 04:34:43PM +0800, Carl Huang wrote:
> >> On 2021-09-17 01:19, Manivannan Sadhasivam wrote:
> >> > On Thu, Sep 16, 2021 at 07:42:02PM +0300, Kalle Valo wrote:
> >> > > Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> writes:
> >> > >
> >> > > > On Thu, Sep 16, 2021 at 01:18:22PM +0200, Loic Poulain wrote:
> >> > > >> Le jeu. 16 sept. 2021 à 13:12, Manivannan Sadhasivam <
> >> > > >> manivannan.sadhasivam@linaro.org> a écrit :
> >> > > >>
> >> > > >
> >> > > > [...]
> >> > > >
> >> > > >> > If things seems to work fine without that patch, then it implies that
> >> > > >> > setting M0
> >> > > >> > state works during resume. I think we should just revert that patch.
> >> > > >> >
> >> > > >> > Loic, did that patch fix any issue for you or it was a cosmetic fix only?
> >> > > >>
> >> > > >>
> >> > > >> It fixes sdx modem resuming issue, without that we don’t know modem needs
> >> > > >> to be reinitialized.
> >> > > >>
> >> > > >
> >> > > > Okay. Then in that case, the recovery mechanism has to be added to the ath11k
> >> > > > MHI controller.
> >> > >
> >> > > What does that mean in practise, do you have any pointers or
> >> > > examples? I
> >> > > have no clue what you are proposing :)
> >> > >
> >> >
> >> > Take a look at the mhi_pci_recovery_work() function below:
> >> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/bus/mhi/pci_generic.c#n610
> >> >
> >> > You need to implement something similar that basically powers up the MHI
> >> > endpoint (QCA6390) in case pm_resume() fails. At minimum, you need to
> >> > call
> >> > below functions:
> >> >
> >> > # Check if the device is powered on. If yes, then power it down to bring
> >> > it back
> >> > mhi_power_down()
> >> > mhi_unprepare_after_power_down()
> >> >
> >> > # Power up the device
> >> > mhi_prepare_for_power_up()
> >> > mhi_sync_power_up()
> >> >
> >> > This implies that the WLAN device has been powered off during suspend,
> >> > so the
> >> > resume fails and we are bringing the device back to working state.
> >> >
> >> This is fine for platform which doesn't provide power supply during
> >> suspend.
> >> But NUC has power supply in suspend state.
> >
> > If NUC retains power supply during suspend then it should work with
> > that commit.
> > During resume, the device is expected to be in M3 state and that's what
> > the
> > commit verifies.
> >
> > If the device is in a different state, then most likely the device have
> > power
> > cycled.
> >
> But the tricky thing here is that upstream QCA6390 doesn't have recovery
> mechanism to download
> firmware again, so QCA6390 has no way to work after a power cycle.

Maybe a simple quick-fix would be to add a 'force' parameter to the
mhi resume function and discard state testing in case it is forced,
that would allow both ath11k and modem to work for now. Then
investigating what happens on ath11k side.

Thoughts?

Regards,
Loic

WARNING: multiple messages have this Message-ID (diff)
From: Loic Poulain <loic.poulain@linaro.org>
To: Carl Huang <cjhuang@codeaurora.org>, Kalle Valo <kvalo@codeaurora.org>
Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>,
	ath11k@lists.infradead.org,
	 linux-arm-msm <linux-arm-msm@vger.kernel.org>,
	linux-wireless@vger.kernel.org,  regressions@lists.linux.dev
Subject: Re: [regression] mhi: ath11k resume fails on some devices
Date: Thu, 23 Sep 2021 12:50:08 +0200	[thread overview]
Message-ID: <CAMZdPi-3WOj_TT7diUJJ00RaoHgKw-tu-heQJu6vDUK1yZ4CZg@mail.gmail.com> (raw)
In-Reply-To: <6912b6840858c0554922c01a0f9c47b8@codeaurora.org>

Hi Carl and Kalle,

On Thu, 23 Sept 2021 at 11:26, Carl Huang <cjhuang@codeaurora.org> wrote:
>
> On 2021-09-23 16:59, Manivannan Sadhasivam wrote:
> > On Thu, Sep 23, 2021 at 04:34:43PM +0800, Carl Huang wrote:
> >> On 2021-09-17 01:19, Manivannan Sadhasivam wrote:
> >> > On Thu, Sep 16, 2021 at 07:42:02PM +0300, Kalle Valo wrote:
> >> > > Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> writes:
> >> > >
> >> > > > On Thu, Sep 16, 2021 at 01:18:22PM +0200, Loic Poulain wrote:
> >> > > >> Le jeu. 16 sept. 2021 à 13:12, Manivannan Sadhasivam <
> >> > > >> manivannan.sadhasivam@linaro.org> a écrit :
> >> > > >>
> >> > > >
> >> > > > [...]
> >> > > >
> >> > > >> > If things seems to work fine without that patch, then it implies that
> >> > > >> > setting M0
> >> > > >> > state works during resume. I think we should just revert that patch.
> >> > > >> >
> >> > > >> > Loic, did that patch fix any issue for you or it was a cosmetic fix only?
> >> > > >>
> >> > > >>
> >> > > >> It fixes sdx modem resuming issue, without that we don’t know modem needs
> >> > > >> to be reinitialized.
> >> > > >>
> >> > > >
> >> > > > Okay. Then in that case, the recovery mechanism has to be added to the ath11k
> >> > > > MHI controller.
> >> > >
> >> > > What does that mean in practise, do you have any pointers or
> >> > > examples? I
> >> > > have no clue what you are proposing :)
> >> > >
> >> >
> >> > Take a look at the mhi_pci_recovery_work() function below:
> >> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/bus/mhi/pci_generic.c#n610
> >> >
> >> > You need to implement something similar that basically powers up the MHI
> >> > endpoint (QCA6390) in case pm_resume() fails. At minimum, you need to
> >> > call
> >> > below functions:
> >> >
> >> > # Check if the device is powered on. If yes, then power it down to bring
> >> > it back
> >> > mhi_power_down()
> >> > mhi_unprepare_after_power_down()
> >> >
> >> > # Power up the device
> >> > mhi_prepare_for_power_up()
> >> > mhi_sync_power_up()
> >> >
> >> > This implies that the WLAN device has been powered off during suspend,
> >> > so the
> >> > resume fails and we are bringing the device back to working state.
> >> >
> >> This is fine for platform which doesn't provide power supply during
> >> suspend.
> >> But NUC has power supply in suspend state.
> >
> > If NUC retains power supply during suspend then it should work with
> > that commit.
> > During resume, the device is expected to be in M3 state and that's what
> > the
> > commit verifies.
> >
> > If the device is in a different state, then most likely the device have
> > power
> > cycled.
> >
> But the tricky thing here is that upstream QCA6390 doesn't have recovery
> mechanism to download
> firmware again, so QCA6390 has no way to work after a power cycle.

Maybe a simple quick-fix would be to add a 'force' parameter to the
mhi resume function and discard state testing in case it is forced,
that would allow both ath11k and modem to work for now. Then
investigating what happens on ath11k side.

Thoughts?

Regards,
Loic

-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

  reply	other threads:[~2021-09-23 10:39 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-16  8:00 [regression] mhi: ath11k resume fails on some devices Kalle Valo
2021-09-16  8:00 ` Kalle Valo
2021-09-16 10:18 ` Loic Poulain
2021-09-16 10:18   ` Loic Poulain
2021-09-16 10:18   ` Loic Poulain
2021-09-16 11:12   ` Manivannan Sadhasivam
2021-09-16 11:12     ` Manivannan Sadhasivam
     [not found]     ` <CAMZdPi94607mZorp+Zmkw3seWXak6p9Jr05CQ5hhfgKQoG8n7Q@mail.gmail.com>
2021-09-16 16:35       ` Manivannan Sadhasivam
2021-09-16 16:35         ` Manivannan Sadhasivam
2021-09-16 16:42         ` Kalle Valo
2021-09-16 16:42           ` Kalle Valo
2021-09-16 16:42           ` Kalle Valo
2021-09-16 17:19           ` Manivannan Sadhasivam
2021-09-16 17:19             ` Manivannan Sadhasivam
2021-09-23  8:34             ` Carl Huang
2021-09-23  8:34               ` Carl Huang
2021-09-23  8:59               ` Manivannan Sadhasivam
2021-09-23  8:59                 ` Manivannan Sadhasivam
2021-09-23  9:26                 ` Carl Huang
2021-09-23  9:26                   ` Carl Huang
2021-09-23 10:50                   ` Loic Poulain [this message]
2021-09-23 10:50                     ` Loic Poulain
2021-09-23 10:50                     ` Loic Poulain
2021-09-24  9:07                 ` Kalle Valo
2021-09-24  9:07                   ` Kalle Valo
2021-09-24  9:07                   ` Kalle Valo
2021-09-24  9:57                   ` Manivannan Sadhasivam
2021-09-24  9:57                     ` Manivannan Sadhasivam
2021-10-07  9:55                     ` Kalle Valo
2021-10-07  9:55                       ` Kalle Valo
2021-10-21 10:01                       ` Manivannan Sadhasivam
2021-10-21 10:01                         ` Manivannan Sadhasivam
2021-09-24  8:36   ` Kalle Valo
2021-09-24  8:36     ` Kalle Valo
2021-09-24  8:36     ` Kalle Valo
2021-09-24  9:43     ` Loic Poulain
2021-09-24  9:43       ` Loic Poulain
2021-09-24  9:43       ` Loic Poulain
2021-09-24 10:00       ` Manivannan Sadhasivam
2021-09-24 10:00         ` Manivannan Sadhasivam
2021-10-07  9:48       ` Kalle Valo
2021-10-07  9:48         ` Kalle Valo
2021-10-19 12:12         ` Kalle Valo
2021-10-19 12:12           ` Kalle Valo
2021-10-21 10:03           ` Manivannan Sadhasivam
2021-10-21 10:03             ` Manivannan Sadhasivam
2021-11-12 11:36             ` Thorsten Leemhuis
2021-11-12 11:36               ` Thorsten Leemhuis
2021-11-18 17:41             ` Manivannan Sadhasivam
2021-11-18 17:41               ` Manivannan Sadhasivam
2021-12-01  7:34               ` Thorsten Leemhuis
2021-12-01  7:34                 ` Thorsten Leemhuis
2021-09-25 17:40 ` Thorsten Leemhuis

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=CAMZdPi-3WOj_TT7diUJJ00RaoHgKw-tu-heQJu6vDUK1yZ4CZg@mail.gmail.com \
    --to=loic.poulain@linaro.org \
    --cc=ath11k@lists.infradead.org \
    --cc=cjhuang@codeaurora.org \
    --cc=kvalo@codeaurora.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=manivannan.sadhasivam@linaro.org \
    --cc=regressions@lists.linux.dev \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.