Re: [PATCH]V4L:some v4l drivers have error for video_register_device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Friday 05 June 2009 04:51:36 Figo.zhang wrote:
> On Thu, 2009-06-04 at 11:27 +0200, Hans Verkuil wrote:
> > > On Thu, 2009-06-04 at 11:18 +0200, Laurent Pinchart wrote:
> > >> Hi,
> > >>
> > >> On Thursday 04 June 2009 06:20:07 figo.zhang wrote:
> > >> > The function video_register_device() will call the
> > >> > video_register_device_index(). In this function, firtly it will do
> > >>
> > >> some
> > >>
> > >> > argments check , if failed,it will return a negative number such
> > >> > as -EINVAL, and then do cdev_alloc() and device_register(), if
> > >> > success
> > >>
> > >> return
> > >>
> > >> > zero. so video_register_device_index() canot return a a positive
> > >>
> > >> number.
> > >>
> > >> > for example, see the drivers/media/video/stk-webcam.c (line 1325):
> > >> >
> > >> > err = video_register_device(&dev->vdev, VFL_TYPE_GRABBER, -1);
> > >> > 	if (err)
> > >> > 		STK_ERROR("v4l registration failed\n");
> > >> > 	else
> > >> > 		STK_INFO("Syntek USB2.0 Camera is now controlling video device"
> > >> > 			" /dev/video%d\n", dev->vdev.num);
> > >> >
> > >> > in my opinion, it will be cleaner to do something like this:
> > >> >
> > >> > err = video_register_device(&dev->vdev, VFL_TYPE_GRABBER, -1);
> > >> > 	if (err != 0)
> > >> > 		STK_ERROR("v4l registration failed\n");
> > >> > 	else
> > >> > 		STK_INFO("Syntek USB2.0 Camera is now controlling video device"
> > >> > 			" /dev/video%d\n", dev->vdev.num);
> > >>
> > >> What's the difference ? (err != 0) and (err) are identical.
> > >>
> > >> Best regards,
> > >>
> > >> Laurent Pinchart
> > >
> > > yes, it is the same, but it is easy for reading.
> >
> > To be honest, I think '(err)' is easier to read. Unless there is some
> > new CodingStyle rule I'm not aware of I see no reason for applying
> > these changes.
> >
> > Regards,
> >
> >         Hans
>
> yes, but i found the the kernel code using the '(err != 0) or (err == 0)'
> is more popular,in v4l code for example:
>
> v4l1-compat.c  line 507
> v4l2-int-device.c  line 52
> arv.c   line 333
> arv.c   line 844,856
>
> videobuf-core.c  line 529,766,984,1002,1053
> videobuf-dma-sg.c  line 211,222,248,350,456,671,
>
> .....
>
> so i dont know which style is recommended for kernel code?

They are both equally valid. It simply doesn't matter, it is up to the 
programmer to use whatever he prefers.

But a quick grep over the v4l-dvb sources clearly shows a preference 
for '(err)':

grep '(err [!=]= 0)' -rsI .|wc -l
29

grep '(err)' -rsI .|wc -l
331

Regards,

	Hans

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux