Hi Salvatore,

52fbe173baa4df9d14bd733f42ee6b9ceab8299b is the first bad commit
commit 52fbe173baa4df9d14bd733f42ee6b9ceab8299b (HEAD)
Author: Ricardo Ribalda <[email protected]>
Date:   Wed Dec 18 21:39:09 2024 +0000

     media: uvcvideo: Invert default value for nodrop module param

     The module param `nodrop` defines what to do with frames that contain an
     error: drop them or sending them to userspace.

     The default in the rest of the media subsystem is to return buffers with
     an error to userspace with V4L2_BUF_FLAG_ERROR set in v4l2_buffer.flags.
     In UVC we drop buffers with errors by default.

     Change the default behaviour of uvcvideo to match the rest of the
     drivers and maybe get rid of the module parameter in the future.

     Suggested-by: Laurent Pinchart <[email protected]>
     Signed-off-by: Ricardo Ribalda <[email protected]>
     Reviewed-by: Laurent Pinchart <[email protected]>
     Reviewed-by: Hans de Goede <[email protected]>
     Link: 
https://lore.kernel.org/r/[email protected]
     Signed-off-by: Laurent Pinchart <[email protected]>
     Signed-off-by: Mauro Carvalho Chehab <[email protected]>

  drivers/media/usb/uvc/uvc_driver.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

I added Ricardo in Cc. Ricardo, see
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1121718 for context.

The bug does not always immediately manifest, so there is a small chance
that for some of the commits that I marked "good", artifacts would have
started appearing if I had waited a bit longer. But the commit seems
reasonably plausible to be able to cause the kind of error I am seeing.

Given that this is about a module parameter, I assume I could test this by
booting the latest kernel and setting the parameter back to its previous
value... but I don't know enough about how the kernel works to actually do
that.^^ Happy to try that if someone gives me some pointers.

You can create a modprobe.d file /etc/modprobe.d/uvcvideo.conf with

options uvcvideo nodrop=0

to pass 'nodrop=0' parameter when loading the uvcvideo module (then
unload and load the module).

Thanks, that seems to have worked! So at least for now this is a viable work-around...

But it already warns in dmesg when doing so with:

uvcvideo: [Deprecated]: nodrop parameter will be eventually removed.

... but only until the parameter gets removed, of course.

Kind regards,
Ralf


Regards,
Salvatore

Reply via email to