Re: [char-misc-next 6/6] mei: bus: add client dma interface
From: Greg Kroah-Hartman
Date: Sat Feb 06 2021 - 11:31:17 EST
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 :(
It can go through whatever tree needs it.
thanks,
greg k-h