From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kay Sievers Date: Tue, 07 Aug 2007 22:58:43 +0000 Subject: Re: work-around for video4linux sysfs Message-Id: <1186527523.3468.16.camel@lov.localdomain> List-Id: References: <20070731195136.GW9881@outflux.net> In-Reply-To: <20070731195136.GW9881@outflux.net> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug@vger.kernel.org On Tue, 2007-08-07 at 12:36 -0700, Kees Cook wrote: > On Tue, Aug 07, 2007 at 11:24:34AM +0200, Kay Sievers wrote: > > > This is related > > > to how some v4l drivers deal with multiple output modes from the same > > > card[1] (e.g. MPEG2 encoder output, YUV output, audio only output, etc, > > > are associated with an offset minor number). It's really ugly. :( > > > > Then the kernel should provide a unique "function" string, which can be > > used to name the device. > > What is the best place for me to start learning how to plumb such a > thing into v4l? I haven't poked at sysfs from kernel space before, and > as I understand, the v4l driver development is rather fragmented, so I > guess I'm asking both a "technical howto" and a "political howto" for > getting it done. Look at drivers/media/video/videodev.c how the "name" attribute is created. There should probably be common "function" names added to the v4l core which are just referenced by the drivers, like the defines for the device type in include/media/v4l2-dev.h which are replaced by strings in drivers/media/video/videodev.c. > I agree, though, this is the only correct approach. > > > If we can have multiple, say "video3", "video4", "video5" at the same > > device, the kernel should export a unique string in sysfs/ or uevent > > env, for every of these devices based on the function, like: "yuv:, > > "enc", "audio", ... which we can append to the name: > > pci-0000:01:06.0-video-yuv -> ../../video0 > > pci-0000:01:07.0-video-enc -> ../../video1 > > > > Otherwise how is userspace expected to find the other nodes? It sounds > > pretty weird to limit the persistent nodes to the "first" device. > > Agreed; that was just a hack for the most common use-case I had > encountered with the v4l link collisions: for ivtv, MythTV always wants the > encoder devices, which happens to be the first one instantiated. Yeah, I see the problem, and it's time to solve it. Maybe you can try to add the stuff to the drivers you have access to the hardware, and we can come up with a working prototype, propose that to the v4l maintainer(s) and convert the other drivers step by step. Persistent names would just rely on that feature to be added to the driver for devices with multiple nodes of the same type. Btw, what does: grep . /sys/class/video4linux/*/* print on your box? If you have access to the device with the multiple nodes. Thanks, Kay ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel