Hi Greg,
Here is the small series of MHI patches for v5.16 with summary below:
1. MHI got a dedicated mailing list in subspace server. Hence, updated the
MAINTAINERS entry adding it as the primary list.
2. A leftover patch from 5.15 PR that adds a dedicated flag to the MHI client
transfer APIs for inbound buffer allocation by the MHI stack. This is required
for some downlink channels like QRTR that depends on pre-allocated buffers.
Since the patch modifies the MHI client drivers under "net/", Ack has been
collected from the netdev maintainer.
3. Fixed up the coccicheck warning by using sysfs_emit instead of snprintf.
Please consider merging!
Thanks,
Mani
Loic Poulain (1):
bus: mhi: Add inbound buffers allocation flag
Manivannan Sadhasivam (1):
MAINTAINERS: Update the entry for MHI bus
Qing Wang (1):
bus: mhi: replace snprintf in show functions with sysfs_emit
MAINTAINERS | 3 ++-
drivers/bus/mhi/core/init.c | 2 +-
drivers/bus/mhi/core/internal.h | 2 +-
drivers/bus/mhi/core/main.c | 9 ++++++---
drivers/net/mhi_net.c | 2 +-
drivers/net/wwan/mhi_wwan_ctrl.c | 2 +-
include/linux/mhi.h | 7 ++++++-
net/qrtr/mhi.c | 2 +-
8 files changed, 19 insertions(+), 10 deletions(-)
--
2.25.1
From: Loic Poulain <[email protected]>
Currently, the MHI controller driver defines which channels should
have their inbound buffers allocated and queued. But ideally, this is
something that should be decided by the MHI device driver instead,
which actually deals with that buffers.
Add a flag parameter to mhi_prepare_for_transfer allowing to specify
if buffers have to be allocated and queued by the MHI stack.
Keep auto_queue flag for now, but should be removed at some point.
Signed-off-by: Loic Poulain <[email protected]>
Tested-by: Bhaumik Bhatt <[email protected]>
Reviewed-by: Bhaumik Bhatt <[email protected]>
Reviewed-by: Hemant Kumar <[email protected]>
Reviewed-by: Manivannan Sadhasivam <[email protected]>
Acked-by: Jakub Kicinski <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Manivannan Sadhasivam <[email protected]>
---
drivers/bus/mhi/core/internal.h | 2 +-
drivers/bus/mhi/core/main.c | 9 ++++++---
drivers/net/mhi_net.c | 2 +-
drivers/net/wwan/mhi_wwan_ctrl.c | 2 +-
include/linux/mhi.h | 7 ++++++-
net/qrtr/mhi.c | 2 +-
6 files changed, 16 insertions(+), 8 deletions(-)
diff --git a/drivers/bus/mhi/core/internal.h b/drivers/bus/mhi/core/internal.h
index 3a732afaf73e..721739c5e0d5 100644
--- a/drivers/bus/mhi/core/internal.h
+++ b/drivers/bus/mhi/core/internal.h
@@ -682,7 +682,7 @@ void mhi_rddm_prepare(struct mhi_controller *mhi_cntrl,
struct image_info *img_info);
void mhi_fw_load_handler(struct mhi_controller *mhi_cntrl);
int mhi_prepare_channel(struct mhi_controller *mhi_cntrl,
- struct mhi_chan *mhi_chan);
+ struct mhi_chan *mhi_chan, unsigned int flags);
int mhi_init_chan_ctxt(struct mhi_controller *mhi_cntrl,
struct mhi_chan *mhi_chan);
void mhi_deinit_chan_ctxt(struct mhi_controller *mhi_cntrl,
diff --git a/drivers/bus/mhi/core/main.c b/drivers/bus/mhi/core/main.c
index b15c5bc37dd4..c01ec2fef02c 100644
--- a/drivers/bus/mhi/core/main.c
+++ b/drivers/bus/mhi/core/main.c
@@ -1430,7 +1430,7 @@ static void mhi_unprepare_channel(struct mhi_controller *mhi_cntrl,
}
int mhi_prepare_channel(struct mhi_controller *mhi_cntrl,
- struct mhi_chan *mhi_chan)
+ struct mhi_chan *mhi_chan, unsigned int flags)
{
int ret = 0;
struct device *dev = &mhi_chan->mhi_dev->dev;
@@ -1455,6 +1455,9 @@ int mhi_prepare_channel(struct mhi_controller *mhi_cntrl,
if (ret)
goto error_pm_state;
+ if (mhi_chan->dir == DMA_FROM_DEVICE)
+ mhi_chan->pre_alloc = !!(flags & MHI_CH_INBOUND_ALLOC_BUFS);
+
/* Pre-allocate buffer for xfer ring */
if (mhi_chan->pre_alloc) {
int nr_el = get_nr_avail_ring_elements(mhi_cntrl,
@@ -1610,7 +1613,7 @@ void mhi_reset_chan(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan)
}
/* Move channel to start state */
-int mhi_prepare_for_transfer(struct mhi_device *mhi_dev)
+int mhi_prepare_for_transfer(struct mhi_device *mhi_dev, unsigned int flags)
{
int ret, dir;
struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl;
@@ -1621,7 +1624,7 @@ int mhi_prepare_for_transfer(struct mhi_device *mhi_dev)
if (!mhi_chan)
continue;
- ret = mhi_prepare_channel(mhi_cntrl, mhi_chan);
+ ret = mhi_prepare_channel(mhi_cntrl, mhi_chan, flags);
if (ret)
goto error_open_chan;
}
diff --git a/drivers/net/mhi_net.c b/drivers/net/mhi_net.c
index d127eb6e9257..975f7f9bdf4c 100644
--- a/drivers/net/mhi_net.c
+++ b/drivers/net/mhi_net.c
@@ -319,7 +319,7 @@ static int mhi_net_newlink(struct mhi_device *mhi_dev, struct net_device *ndev)
u64_stats_init(&mhi_netdev->stats.tx_syncp);
/* Start MHI channels */
- err = mhi_prepare_for_transfer(mhi_dev);
+ err = mhi_prepare_for_transfer(mhi_dev, 0);
if (err)
goto out_err;
diff --git a/drivers/net/wwan/mhi_wwan_ctrl.c b/drivers/net/wwan/mhi_wwan_ctrl.c
index e4d0f696687f..d0a98f34c54d 100644
--- a/drivers/net/wwan/mhi_wwan_ctrl.c
+++ b/drivers/net/wwan/mhi_wwan_ctrl.c
@@ -110,7 +110,7 @@ static int mhi_wwan_ctrl_start(struct wwan_port *port)
int ret;
/* Start mhi device's channel(s) */
- ret = mhi_prepare_for_transfer(mhiwwan->mhi_dev);
+ ret = mhi_prepare_for_transfer(mhiwwan->mhi_dev, 0);
if (ret)
return ret;
diff --git a/include/linux/mhi.h b/include/linux/mhi.h
index 723985879035..56e7934f8b23 100644
--- a/include/linux/mhi.h
+++ b/include/linux/mhi.h
@@ -723,8 +723,13 @@ void mhi_device_put(struct mhi_device *mhi_dev);
* host and device execution environments match and
* channels are in a DISABLED state.
* @mhi_dev: Device associated with the channels
+ * @flags: MHI channel flags
*/
-int mhi_prepare_for_transfer(struct mhi_device *mhi_dev);
+int mhi_prepare_for_transfer(struct mhi_device *mhi_dev,
+ unsigned int flags);
+
+/* Automatically allocate and queue inbound buffers */
+#define MHI_CH_INBOUND_ALLOC_BUFS BIT(0)
/**
* mhi_unprepare_from_transfer - Reset UL and DL channels for data transfer.
diff --git a/net/qrtr/mhi.c b/net/qrtr/mhi.c
index fa611678af05..29b4fa3b72ab 100644
--- a/net/qrtr/mhi.c
+++ b/net/qrtr/mhi.c
@@ -79,7 +79,7 @@ static int qcom_mhi_qrtr_probe(struct mhi_device *mhi_dev,
int rc;
/* start channels */
- rc = mhi_prepare_for_transfer(mhi_dev);
+ rc = mhi_prepare_for_transfer(mhi_dev, MHI_CH_INBOUND_ALLOC_BUFS);
if (rc)
return rc;
--
2.25.1
Since Hemant is not carrying out any maintainership duties let's make
him as a dedicated reviewer. Also add the new mailing lists dedicated
for MHI in subspace mailing list server.
Signed-off-by: Manivannan Sadhasivam <[email protected]>
---
MAINTAINERS | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index eeb4c70b3d5b..8ae357d746c1 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -12191,7 +12191,8 @@ F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
MHI BUS
M: Manivannan Sadhasivam <[email protected]>
-M: Hemant Kumar <[email protected]>
+R: Hemant Kumar <[email protected]>
+L: [email protected]
L: [email protected]
S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/mani/mhi.git
--
2.25.1
On Sat, Oct 16, 2021 at 12:27:32PM +0530, Manivannan Sadhasivam wrote:
> Since Hemant is not carrying out any maintainership duties let's make
> him as a dedicated reviewer. Also add the new mailing lists dedicated
> for MHI in subspace mailing list server.
>
> Signed-off-by: Manivannan Sadhasivam <[email protected]>
> ---
> MAINTAINERS | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index eeb4c70b3d5b..8ae357d746c1 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -12191,7 +12191,8 @@ F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
>
> MHI BUS
> M: Manivannan Sadhasivam <[email protected]>
> -M: Hemant Kumar <[email protected]>
> +R: Hemant Kumar <[email protected]>
> +L: [email protected]
Can I get an acked-by from Hemant about this change please?
thanks,
greg k-h
On 10/15/2021 11:57 PM, Manivannan Sadhasivam wrote:
> Since Hemant is not carrying out any maintainership duties let's make
> him as a dedicated reviewer. Also add the new mailing lists dedicated
> for MHI in subspace mailing list server.
>
> Signed-off-by: Manivannan Sadhasivam <[email protected]>
Reviewed-by: Hemant Kumar <[email protected]>
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora
Forum, a Linux Foundation Collaborative Project
On Mon, Oct 18, 2021 at 09:19:16PM -0700, Hemant Kumar wrote:
>
>
> On 10/15/2021 11:57 PM, Manivannan Sadhasivam wrote:
> > Since Hemant is not carrying out any maintainership duties let's make
> > him as a dedicated reviewer. Also add the new mailing lists dedicated
> > for MHI in subspace mailing list server.
> >
> > Signed-off-by: Manivannan Sadhasivam <[email protected]>
>
> Reviewed-by: Hemant Kumar <[email protected]>
Great, Manivannan, can you resend just this patch with this reviewed-by
so that I can apply it?
thanks,
greg k-h
On Tue, Oct 19, 2021 at 02:24:30PM +0200, Greg KH wrote:
> On Mon, Oct 18, 2021 at 09:19:16PM -0700, Hemant Kumar wrote:
> >
> >
> > On 10/15/2021 11:57 PM, Manivannan Sadhasivam wrote:
> > > Since Hemant is not carrying out any maintainership duties let's make
> > > him as a dedicated reviewer. Also add the new mailing lists dedicated
> > > for MHI in subspace mailing list server.
> > >
> > > Signed-off-by: Manivannan Sadhasivam <[email protected]>
> >
> > Reviewed-by: Hemant Kumar <[email protected]>
>
> Great, Manivannan, can you resend just this patch with this reviewed-by
> so that I can apply it?
>
Sure, will do. I thought I could also send the modified version of patch 2 of
this series but we ran out of time :/
Thanks,
Mani
> thanks,
>
> greg k-h