Re: video_device -> v4l2_devnode rename

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

 



Em 19-01-2011 09:59, Hans Verkuil escreveu:
>> Em 19-01-2011 05:39, Hans Verkuil escreveu:
>>> Hi Mauro,
>>>
>>> We want to rename video_device to v4l2_devnode. So let me know when I
>>> can
>>> finalize my patches and, most importantly, against which branch.
>>>
>>> My current tree:
>>>
>>> http://git.linuxtv.org/hverkuil/media_tree.git?a=shortlog;h=refs/heads/devnode2
>>>
>>> tracks for_2.6.38-rc1 and should apply cleanly at the moment.
>>
>> Even not being able to handle it for .38, I did a look on the proposed
>> changes. I'm not convinced about those renaming stuff.
>>
>> By looking on other subsystems, it seems to me that
>> video_device_register()
>> is a better name than any other name. Btw, by far, the use of _node for
>> the
>> device registration on Linux kernel is not usual at all:
>>
>> $ git grep -e "_register"  --and -e "(" --and -e "node" include |grep -v
>> "of_mdiobus_register("
>> include/linux/compaction.h:extern int compaction_register_node(struct node
>> *node);
>> include/linux/compaction.h:static inline int
>> compaction_register_node(struct node *node)
>> include/linux/swap.h:extern int scan_unevictable_register_node(struct node
>> *node);
>> include/linux/swap.h:static inline int
>> scan_unevictable_register_node(struct node *node)
>>
>> There are only 2 functions using it. On those, the "node" at the function
>> register name is due to "struct node", and they likely make sense.
>>
>> A seek for *register*device or *device*register patterns show a lot:
>>
>> $ git grep -e "_register_device"  --and -e "("  include|wc -l
>> 28
>>
>> $ git grep -e "_device_register"  --and -e "("  include|wc -l
>> 32
>>
>> Basically, what I'm trying to say is that, on all subsystems, the function
>> that creates
>> the devices is called *register*device or *device*register.
>>
>> Why should we adopt anything different than the kernel convention for
>> V4L2?
> 
> I'm sure we went through this before.

Maybe.

> 1) the name originates from the time that drivers had only one video node.
> It makes little sense anymore when drivers can create many video, radio,
> vbi and later v4l-subdev nodes. The key thing is that this driver
> registers a V4L2 node.

Each of those has its own struct device, so each of those are different
devices. As we've discussed previously, "subdev" is a bad name, as, on Linux,
everything that ultimately creates a /dev on userspace is a device.

> 2) struct v4l2_device and struct video_device look too similar. While
> v4l2_device represents the whole V4L2 hardware, the video_device
> represents the video/radio/vbi/... device node only.

So, maybe v4l2_device is not a good name for it, as it is a set of video devices.

> 3) (less important) all types/functions within the v4l2 framework now have
> the v4l2_ prefix, except this one. Aligning this will make everything more
> consistent and recognizable.
> 
> We're not like most other subsystems where often just a single device node
> is registered. We have much more complex hardware. So I think that
> 'v4l2_devnode' much more clearly identifies what it represents than
> 'video_device'.

There are other subsystems where drivers register several devices. For example, 
I have one 3G modem here that registers 4 devices.

Cheers,
Mauro
--
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