RE: [char-misc-next 6/6] mei: bus: add client dma interface

From: Grumbach, Emmanuel
Date: Sun Feb 07 2021 - 14:06:32 EST


Hi Greg,

> On Sun, Feb 07, 2021 at 02:03:11PM +0000, Winkler, Tomas wrote:
> > >
> > > On Sat, Feb 06, 2021 at 03:04:34PM +0000, Winkler, Tomas wrote:
> > > > > On Sat, Feb 06, 2021 at 04:43:25PM +0200, Tomas Winkler wrote:
> > > > > > From: Alexander Usyskin <alexander.usyskin@xxxxxxxxx>
> > > > > >
> > > > > > Expose the client dma mapping via mei client bus interface.
> > > > > >
> > > > > > Signed-off-by: Alexander Usyskin <alexander.usyskin@xxxxxxxxx>
> > > > > > Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx>
> > > > > > ---
> > > > > > drivers/misc/mei/bus.c | 46
> > > > > ++++++++++++++++++++++++++++++++++++++
> > > > > > drivers/misc/mei/hw.h | 5 +++++
> > > > > > include/linux/mei_cl_bus.h | 3 +++
> > > > > > 3 files changed, 54 insertions(+)
> > > > > >
> > > > > > diff --git a/drivers/misc/mei/bus.c b/drivers/misc/mei/bus.c
> > > > > > index
> > > > > > 34fb5e541fe5..d430710a5fe5 100644
> > > > > > --- a/drivers/misc/mei/bus.c
> > > > > > +++ b/drivers/misc/mei/bus.c
> > > > > > @@ -636,6 +636,52 @@ static void mei_cl_bus_vtag_free(struct
> > > > > mei_cl_device *cldev)
> > > > > > kfree(cl_vtag);
> > > > > > }
> > > > > >
> > > > > > +void *mei_cldev_dma_map(struct mei_cl_device *cldev, u8
> > > > > > +buffer_id, size_t size) {
> > > > > > + struct mei_device *bus;
> > > > > > + struct mei_cl *cl;
> > > > > > + int ret;
> > > > > > +
> > > > > > + if (!cldev || !buffer_id || !size)
> > > > > > + return ERR_PTR(-EINVAL);
> > > > > > +
> > > > > > + if (!IS_ALIGNED(size, MEI_FW_PAGE_SIZE)) {
> > > > > > + dev_err(&cldev->dev, "Map size should be aligned to
> %lu\n",
> > > > > > + MEI_FW_PAGE_SIZE);
> > > > > > + return ERR_PTR(-EINVAL);
> > > > > > + }
> > > > > > +
> > > > > > + cl = cldev->cl;
> > > > > > + bus = cldev->bus;
> > > > > > +
> > > > > > + mutex_lock(&bus->device_lock);
> > > > > > + ret = mei_cl_dma_alloc_and_map(cl, NULL, buffer_id, size);
> > > > > > + mutex_unlock(&bus->device_lock);
> > > > > > + if (ret)
> > > > > > + return ERR_PTR(ret);
> > > > > > + return cl->dma.vaddr;
> > > > > > +}
> > > > > > +EXPORT_SYMBOL_GPL(mei_cldev_dma_map);
> > > > >
> > > > > Why are you exporting symbols without a user of them?
> > > > >
> > > > > That's a sure way to get them removed by someone right after
> > > > > this lands in the tree :)
> > > > >
> > > > > Please only add infrastructure for when you have a real user.
> > > > You are right, the user is coming from wifi tree. We need merge
> > > > before
> > > they do.
> > > > If you prefer we can merge that all from the wifi tree.
> > >
> > > That wasn't documented well at all in your changelog comment :(
> > Note taken.
> > > It can go through whatever tree needs it.
> > If possible please merge our changes already here, and let the wifi guys to
> finish their task in their tree, in their own time.
>
> I took some of these already, patches 1 and 6 I can't take as-is, sorry.

As Tomas said, 6 is needed by iwlwifi. I understand you want it to be routed through iwlwifi-next.git. I added Kalle so that he gets a heads up.
1 is not related to iwlwifi.