RE: [PATCH 4/5] misc: vop: set VIRTIO_F_ACCESS_PLATFORM for nocoherent platform

From: Sherry Sun
Date: Sun Sep 27 2020 - 03:20:16 EST


Hi Greg,

> -----Original Message-----
> From: Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx>
> Sent: 2020年9月25日 20:17
> To: Sherry Sun <sherry.sun@xxxxxxx>
> Cc: sudeep.dutt@xxxxxxxxx; ashutosh.dixit@xxxxxxxxx; arnd@xxxxxxxx;
> wang.yi59@xxxxxxxxxx; huang.zijiang@xxxxxxxxxx;
> rikard.falkeborn@xxxxxxxxx; lee.jones@xxxxxxxxxx; mst@xxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>
> Subject: Re: [PATCH 4/5] misc: vop: set VIRTIO_F_ACCESS_PLATFORM for
> nocoherent platform
>
> On Fri, Sep 25, 2020 at 03:26:29PM +0800, Sherry Sun wrote:
> > Set VIRTIO_F_ACCESS_PLATFORM feature for nocoherent platform, since it
> > needs the DMA API for virtio.
> >
> > Signed-off-by: Sherry Sun <sherry.sun@xxxxxxx>
> > Signed-off-by: Joakim Zhang <qiangqing.zhang@xxxxxxx>
> > ---
> > drivers/misc/mic/vop/vop_main.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/misc/mic/vop/vop_main.c
> > b/drivers/misc/mic/vop/vop_main.c index d3645122c983..d609f0dc6124
> > 100644
> > --- a/drivers/misc/mic/vop/vop_main.c
> > +++ b/drivers/misc/mic/vop/vop_main.c
> > @@ -125,6 +125,9 @@ static void vop_transport_features(struct
> virtio_device *vdev)
> > * creates virtio rings on preallocated memory.
> > */
> > __virtio_clear_bit(vdev, VIRTIO_F_RING_PACKED);
> > +
> > + if (!dev_is_dma_coherent(vdev->dev.parent))
> > + __virtio_set_bit(vdev, VIRTIO_F_ACCESS_PLATFORM);
>
> Why look at the parent and not the device itself?

That's a good question, here use vdev->dev.parent to get the vop device instead of virtio device, which can keep consistent with other dev_is_dma_coherent check.

Thanks
Sherry