From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
To: Baochen Qiang <quic_bqiang@quicinc.com>
Cc: Kalle Valo <kvalo@kernel.org>,
mhi@lists.linux.dev, ath11k@lists.infradead.org,
linux-wireless@vger.kernel.org
Subject: Re: [PATCH RFC v2 2/8] bus: mhi: host: add new interfaces to handle MHI channels directly
Date: Fri, 2 Feb 2024 17:46:30 +0530 [thread overview]
Message-ID: <20240202121630.GC8020@thinkpad> (raw)
In-Reply-To: <34e80f19-8804-4505-b134-f099e087b53e@quicinc.com>
On Fri, Feb 02, 2024 at 06:49:19PM +0800, Baochen Qiang wrote:
>
>
> On 2/2/2024 3:10 PM, Manivannan Sadhasivam wrote:
> > On Fri, Feb 02, 2024 at 02:42:58PM +0800, Baochen Qiang wrote:
> > >
> > >
> > > On 2/1/2024 6:00 PM, Manivannan Sadhasivam wrote:
> > > > On Wed, Jan 31, 2024 at 03:39:26PM +0800, Baochen Qiang wrote:
> > > > >
> > > > >
> > > > > On 1/31/2024 2:19 AM, Manivannan Sadhasivam wrote:
> > > > > > On Mon, Nov 27, 2023 at 06:20:16PM +0200, Kalle Valo wrote:
> > > > > > > From: Baochen Qiang <quic_bqiang@quicinc.com>
> > > > > > >
> > > > > > > When using mhi_power_down_no_destroy() MHI hosts need to unprepare MHI channels
> > > > > > > by themselves. Similarly, MHI stack will also not create new MHI device since
> > > > > > > old devices were not destroyed, so MHI hosts need to prepare channels as well.
> > > > > > > Hence add these two interfaces to make that possible.
> > > > > > >
> > > > > > > Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30
> > > > > > >
> > > > > > > Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>
> > > > > > > Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
> > > > > > > ---
> > > > > > > drivers/bus/mhi/host/main.c | 107 ++++++++++++++++++++++++++++++++++++
> > > > > > > include/linux/mhi.h | 20 ++++++-
> > > > > > > 2 files changed, 126 insertions(+), 1 deletion(-)
> > > > > > >
> > > > > > > diff --git a/drivers/bus/mhi/host/main.c b/drivers/bus/mhi/host/main.c
> > > > > > > index d80975f4bba8..3f677fc628ad 100644
> > > > > > > --- a/drivers/bus/mhi/host/main.c
> > > > > > > +++ b/drivers/bus/mhi/host/main.c
> > > > > > > @@ -1669,6 +1669,58 @@ int mhi_prepare_for_transfer_autoqueue(struct mhi_device *mhi_dev)
> > > > > > > }
> > > > > > > EXPORT_SYMBOL_GPL(mhi_prepare_for_transfer_autoqueue);
> > > > > > > +static int ____mhi_prepare_for_transfer(struct device *dev, void *data)
> > > > > >
> > > > > > "__mhi_prepare_all_for_transfer"
> > > > >
> > > > > This is to prepare one single child device, I don't think a name like
> > > > > __mhi_prepare_all_for_transfer (with 'all' inside) make sense, right?
> > > > > How about changing to "mhi_prepare_dev_for_transfer" or
> > > > > "mhi_prepare_single_for_transfer"?
> > > > >
> > > >
> > > > I think most of the checks in this function can be moved inside
> > > > mhi_prepare_for_transfer() API. With that you can just reuse the API without
> > > > adding a new helper.
> > > >
> > > > For autoqueue channels, you can add another API
> > > > mhi_prepare_all_for_transfer_autoqueue() just like
> > > > mhi_prepare_for_transfer_autoqueue() to maintain uniformity.
> > > >
> > > > - Mani
> > > If we do that, we need to call two APIs together, does it make sense? From
> > > the view of an MHI user, what we want is an API to prepare all channels, no
> > > matter whether a channel is configured as autoqueue or non-autoqueue, we
> > > don't care about it.
> > >
> >
> > You are calling this API from a wrong place first up.
> > mhi_{prepare/unprepare}_transfer* APIs are meant to be used by the client
> > drivers like QRTR. Controller drivers should not call them.
> >
> > What you need here is the hibernation support for QRTR itself and call these
> > APIs from there.
>
> OK, I got your point. QRTR is the right place to manage MHI channels, not
> ath11k it self.
> And we even don't need these two APIs if change to do it in QRTR.
>
> >
> > > And besides, I don't think there is a scenario where we need to use them
> > > separately. So if we always need to use them together, why not merge them in
> > > a single API?
> > >
> >
> > A single controller driver may expose multiple channels and those will bind to
> > multiple client drivers. So only the client drivers should manage the channels,
> > not the controller drivers themselves.
> Exactly.
>
> Great thanks for the proposal, Mani. Will change accordingly in next
> version.
>
And you can drop the RFC tag in the version.
- Mani
--
மணிவண்ணன் சதாசிவம்
next prev parent reply other threads:[~2024-02-02 12:16 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-27 16:20 [PATCH RFC v2 0/8] wifi: ath11k: hibernation support Kalle Valo
2023-11-27 16:20 ` Kalle Valo
2023-11-27 16:20 ` [PATCH RFC v2 1/8] bus: mhi: host: add mhi_power_down_no_destroy() Kalle Valo
2023-11-27 16:20 ` Kalle Valo
2023-11-30 5:42 ` Manivannan Sadhasivam
2023-12-01 1:08 ` Baochen Qiang
2023-12-05 12:29 ` Kalle Valo
2023-12-18 16:19 ` Jeff Johnson
2023-12-20 16:32 ` Manivannan Sadhasivam
2023-12-20 16:51 ` Manivannan Sadhasivam
2023-12-21 11:05 ` Baochen Qiang
2024-01-04 6:09 ` Manivannan Sadhasivam
2024-01-22 6:24 ` Manivannan Sadhasivam
2024-01-22 8:09 ` Baochen Qiang
2024-01-22 13:09 ` Manivannan Sadhasivam
2024-01-23 1:44 ` Baochen Qiang
2024-01-23 15:36 ` Manivannan Sadhasivam
2024-01-23 16:53 ` Jeff Johnson
2024-01-30 18:04 ` Manivannan Sadhasivam
2024-01-31 10:51 ` Baochen Qiang
2023-11-27 16:20 ` [PATCH RFC v2 2/8] bus: mhi: host: add new interfaces to handle MHI channels directly Kalle Valo
2023-11-27 16:20 ` Kalle Valo
2024-01-30 18:19 ` Manivannan Sadhasivam
2024-01-31 7:39 ` Baochen Qiang
2024-02-01 10:00 ` Manivannan Sadhasivam
2024-02-02 6:42 ` Baochen Qiang
2024-02-02 7:10 ` Manivannan Sadhasivam
2024-02-02 10:49 ` Baochen Qiang
2024-02-02 12:16 ` Manivannan Sadhasivam [this message]
2023-11-27 16:20 ` [PATCH RFC v2 3/8] wifi: ath11k: handle irq enable/disable in several code path Kalle Valo
2023-11-27 16:20 ` Kalle Valo
2023-11-27 16:20 ` [PATCH RFC v2 4/8] wifi: ath11k: remove MHI LOOPBACK channels Kalle Valo
2023-11-27 16:20 ` Kalle Valo
2023-11-28 1:13 ` Baochen Qiang
2023-11-28 1:13 ` Baochen Qiang
2023-11-27 16:20 ` [PATCH RFC v2 5/8] wifi: ath11k: do not dump SRNG statistics during resume Kalle Valo
2023-11-27 16:20 ` Kalle Valo
2023-11-27 16:20 ` [PATCH RFC v2 6/8] wifi: ath11k: fix warning on DMA ring capabilities event Kalle Valo
2023-11-27 16:20 ` Kalle Valo
2023-11-27 16:20 ` [PATCH RFC v2 7/8] wifi: ath11k: thermal: don't try to register multiple times Kalle Valo
2023-11-27 16:20 ` Kalle Valo
2023-11-27 16:20 ` [PATCH RFC v2 8/8] wifi: ath11k: support hibernation Kalle Valo
2023-11-27 16:20 ` Kalle Valo
2023-11-27 18:49 ` [PATCH RFC v2 0/8] wifi: ath11k: hibernation support Jeff Johnson
2023-11-27 18:49 ` Jeff Johnson
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=20240202121630.GC8020@thinkpad \
--to=manivannan.sadhasivam@linaro.org \
--cc=ath11k@lists.infradead.org \
--cc=kvalo@kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=mhi@lists.linux.dev \
--cc=quic_bqiang@quicinc.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 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.