From: <eng...@t-...> - 2003-12-24 03:51:34
|
Hello, your driver (qce-ga 0.40d) doesn't compile anymore on kernel 2.6.0. But I think you know yourself. I rewrote some parts of the source and tried to compile it on my own. After a few hours, it compiles now. I included the sysfs interface (instead of the procfs), i rewrote the fileoperations and so on. But there is an error, I can't find. When I register an usb device via usb_register, it calls the probe function with all specified items of the id_table, right? And in quickcam_probe there is that line printk(... interface->bInterfaceClass ) and this bInterfaceClass (and SubClass) are checked short time later, if both are 0xff When I loaded the modul on 2.4.23, it said: usb.c: registered new driver quickcam USB Quickcam Class ff SubClass ff idVendor 46d idProduct 850 So both are 0xff. And later it said: USB Quickcam Class 1 SubClass 1 idVendor 46d idProduct 850 USB Quickcam Class 1 SubClass 2 idVendor 46d idProduct 850 USB Quickcam Class 1 SubClass 2 idVendor 46d idProduct 850 2.6.0: The interface->bInterfaceClass chaned to id->bInterfaceClass. id is the second parameter of quickcam_probe in 2.6.0 and from type struct usb_device_id *. When I load the module now, it sais: USB Quickcam Class 0 SubClass 0 idVendor 46d idProduct 850 USB Quickcam Class 0 SubClass 0 idVendor 46d idProduct 850 USB Quickcam Class 0 SubClass 0 idVendor 46d idProduct 850 drivers/usb/core/usb.c: registered new driver quickcam Note, that the usbcore tells the registration after the probe and in 2.4.X-times it did before. And the first line "USB Quickcam Class ff SubClass ..." doesn't appear. So, the driver fails the check, if class and subclass are 0xff and can't be loaded. If I comment this check out, it loads three drivers, but segfaults, if I try to access the camera. Anyway, the usbcore misses the registration... If you want to, I can send you my patch (I included the source in the kernel tree itself) I hope it helps you. Markus |