Mailing List archive

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

[linux-dvb] Re: Kernel 2.5.68 and simple TV



Michael Troß wrote:
Am Son, 2003-04-27 um 11.28 schrieb boris mogwitz:


-tuxzap but he write error: /dev/dvb/adapter/fronted0 no such device.
This looks like a devfs-dvbdriver bug ... but you can create the nodes with mknod ... (works here -> 2.5.68-bk7 ... more or less -> irq problems)

Found the same problem yesterday with 2.5.68, devfs enabled, and
dvb-kernel CVS. There was a change in the devfs namespace allocation
(For reference:
http://groups.google.com/groups?hl=de&lr=&ie=UTF-8&oe=UTF-8&th=b907a4b7c00de563&rnum=1). I found the DVB device nodes in the /dev directory, and /dev/dvb was empty.

Try the attached patch to fix devfs name allocation to
/dev/dvb/adapter0.

Michael

BTW, the kernel driver already had this fixed. The problem arises when
executing dvb-kernel's "makelinks" script.
Your fix makes it impossible to build the driver for 2.4 kernels. I'd like to avoid #if LINUX_VERSION_CODE <= KERNEL_VERSION(X,Y,Z) in the main code, so I asked Christoph Hellwig to introduce a MacOS-X alike
devfs_make_node() function (see http://www.opendarwin.org/cgi-bin/cvsweb.cgi/src/xnu/bsd/miscfs/devfs/devfs.h?rev=1.1.1.2&content-type=text/x-cvsweb-markup for details - ) which might look on Linux like this:

extern devfs_handle_t devfs_create_devnode (unsigned int flags,
unsigned int major,
unsigned int minor,
umode_t mode,
void *ops,
void *info,
const char *fmt, ...);

Then we could avoid all this struggling with directory node pointers and all the device handling code could get much simpler.

Let's see what he is thinking about this idea.

Holger





------------------------------------------------------------------------

Index: linux/drivers/media/dvb/dvb-core/dvbdev.c
===================================================================
RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/dvb-core/dvbdev.c,v
retrieving revision 1.15
diff -u -r1.15 dvbdev.c
--- linux/drivers/media/dvb/dvb-core/dvbdev.c 24 Apr 2003 08:28:01 -0000 1.15
+++ linux/drivers/media/dvb/dvb-core/dvbdev.c 28 Apr 2003 11:35:25 -0000
@@ -273,7 +273,6 @@
int dvb_register_adapter(struct dvb_adapter **padap, const char *name)
{
- char dirname[10];
struct dvb_adapter *adap;
int num;
@@ -297,9 +296,8 @@
try_module_get(THIS_MODULE);
printk ("DVB: registering new adapter (%s).\n", name);
-
- snprintf(dirname, sizeof(dirname), "adapter%d", num);
- adap->devfs_handle = devfs_mk_dir(dvb_devfs_handle, dirname, NULL);
+
+ adap->devfs_handle = devfs_mk_dir("dvb/adapter%d",num);
adap->num = num;
adap->name = name;
@@ -328,7 +326,7 @@
static
int __init init_dvbdev(void)
{
- dvb_devfs_handle = devfs_mk_dir (NULL, "dvb", NULL);
+ dvb_devfs_handle = devfs_mk_dir ("dvb");
#ifndef CONFIG_DVB_DEVFS_ONLY
if(register_chrdev(DVB_MAJOR,"DVB", &dvb_device_fops)) {
printk("video_dev: unable to get major %d\n", DVB_MAJOR);


--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index