diff mbox

[15/20] media: rcar_vin: Don't advertise support for USERPTR

Message ID 1432139980-12619-16-git-send-email-william.towle@codethink.co.uk (mailing list archive)
State New, archived
Headers show

Commit Message

William Towle May 20, 2015, 4:39 p.m. UTC
rcar_vin requires physically contiguous buffer, so shouldn't advertise
support for USERPTR.

Signed-off-by: Rob Taylor <rob.taylor@codethink.co.uk>
Reviewed-by: William Towle <william.towle@codethink.co.uk>
---
 drivers/media/platform/soc_camera/rcar_vin.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Rob Taylor May 21, 2015, 12:50 p.m. UTC | #1
On 21/05/15 07:03, Hans Verkuil wrote:
> On 05/20/2015 06:39 PM, William Towle wrote:
>> rcar_vin requires physically contiguous buffer, so shouldn't advertise
>> support for USERPTR.
>>
>> Signed-off-by: Rob Taylor <rob.taylor@codethink.co.uk>
>> Reviewed-by: William Towle <william.towle@codethink.co.uk>
>> ---
>>  drivers/media/platform/soc_camera/rcar_vin.c |    2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/platform/soc_camera/rcar_vin.c b/drivers/media/platform/soc_camera/rcar_vin.c
>> index 222002a..b530503 100644
>> --- a/drivers/media/platform/soc_camera/rcar_vin.c
>> +++ b/drivers/media/platform/soc_camera/rcar_vin.c
>> @@ -1824,7 +1824,7 @@ static int rcar_vin_init_videobuf2(struct vb2_queue *vq,
>>  	struct soc_camera_host *ici = to_soc_camera_host(icd->parent);
>>  
>>  	vq->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
>> -	vq->io_modes = VB2_MMAP | VB2_USERPTR;
>> +	vq->io_modes = VB2_MMAP;
> 
> NACK.
> 
> USERPTR can be used, but the user pointer must point to physically contig
> memory (and this is checked). There are cases where the system will carve out
> phys. contig. memory and userspace has pointers to that. I'm pretty sure some of
> this is used by systems where soc-camera is run.
> 
> Unfortunately, userspace has currently no way of knowing such userptr restrictions.
> That's a failing of the API. It's ugly as hell, but it is in use today and can't
> be dropped.

Ah, that is ugly - I assumed because there wasn't an interface to query
restrictions it would be necessary to drop support.

We can drop this patch for now. It seems rcar_vin doesn't pass
compliance with USERPTR, but we'll have to look into fixing that at a
later date.

Thanks,

Rob


> Regards,
> 
> 	Hans
> 
>>  	vq->drv_priv = icd;
>>  	vq->ops = &rcar_vin_vb2_ops;
>>  	vq->mem_ops = &vb2_dma_contig_memops;
>>
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/media/platform/soc_camera/rcar_vin.c b/drivers/media/platform/soc_camera/rcar_vin.c
index 222002a..b530503 100644
--- a/drivers/media/platform/soc_camera/rcar_vin.c
+++ b/drivers/media/platform/soc_camera/rcar_vin.c
@@ -1824,7 +1824,7 @@  static int rcar_vin_init_videobuf2(struct vb2_queue *vq,
 	struct soc_camera_host *ici = to_soc_camera_host(icd->parent);
 
 	vq->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-	vq->io_modes = VB2_MMAP | VB2_USERPTR;
+	vq->io_modes = VB2_MMAP;
 	vq->drv_priv = icd;
 	vq->ops = &rcar_vin_vb2_ops;
 	vq->mem_ops = &vb2_dma_contig_memops;