Hello Pankaj, On 12/16/2016 08:48 AM, Pankaj Dubey wrote: > From: Smitha T Murthy <smitha.t@xxxxxxxxxxx> > > commit 2548fee63d9e ("[media] media/platform: convert drivers to use the new > vb2_queue dev field") has missed to set dev pointer of vb2_queue which will be > used in reqbufs of mfc driver. Without this change following error is observed: > > --------------------------------------------------------------- > V4L2 Codec decoding example application > Kamil Debski <k.debski@xxxxxxxxxxx> > Copyright 2012 Samsung Electronics Co., Ltd. > > Opening MFC. > (mfc.c:mfc_open:58): MFC Info (/dev/video0): driver="s5p-mfc" \ > bus_info="platform:12c30000.mfc0" card="s5p-mfc-dec" fd=0x4[ > 42.339165] Remapping memory failed, error: -6 > > MFC Open Success. > (main.c:main:711): Successfully opened all necessary files and devices > (mfc.c:mfc_dec_setup_output:103): Setup MFC decoding OUTPUT buffer \ > size=4194304 (requested=4194304) > (mfc.c:mfc_dec_setup_output:120): Number of MFC OUTPUT buffers is 2 \ > (requested 2) > > [App] Out buf phy : 0x00000000, virt : 0xffffffff > Output Length is = 0x300000 > Error (mfc.c:mfc_dec_setup_output:145): Failed to MMAP MFC OUTPUT buffer > ------------------------------------------------------- > On which kernel version did you face this issue? > Signed-off-by: Smitha T Murthy <smitha.t@xxxxxxxxxxx> > [pankaj.dubey: debugging issue and formatting commit message] > Signed-off-by: Pankaj Dubey <pankaj.dubey@xxxxxxxxxxx> > --- > drivers/media/platform/s5p-mfc/s5p_mfc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc.c b/drivers/media/platform/s5p-mfc/s5p_mfc.c > index 0a5b8f5..6ea8246 100644 > --- a/drivers/media/platform/s5p-mfc/s5p_mfc.c > +++ b/drivers/media/platform/s5p-mfc/s5p_mfc.c > @@ -838,6 +838,7 @@ static int s5p_mfc_open(struct file *file) > q->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; > q->drv_priv = &ctx->fh; > q->lock = &dev->mfc_mutex; > + q->dev = &dev->plat_dev->dev; > if (vdev == dev->vfd_dec) { > q->io_modes = VB2_MMAP; > q->ops = get_dec_queue_ops(); > @@ -861,6 +862,7 @@ static int s5p_mfc_open(struct file *file) > q->io_modes = VB2_MMAP; > q->drv_priv = &ctx->fh; > q->lock = &dev->mfc_mutex; > + q->dev = &dev->plat_dev->dev; > if (vdev == dev->vfd_dec) { > q->io_modes = VB2_MMAP; > q->ops = get_dec_queue_ops(); > Please correct me if I'm wrong, but AFAIU this shouldn't be needed in the s5p-mfc driver since the videobuf2 core either uses the vb2_queue .dev field or the vb2_queue .alloc_devs. And the latter is set in the s5p_mfc_queue_setup() function, so the .dev field shouldn't be used. Best regards, -- Javier Martinez Canillas Open Source Group Samsung Research America