I had some troubles with a prof 7300 dvb s-2 card. I am running OpenSuse 11.2 with a recent hg copy of the v4l-dvb repository. It was detected as a Hauppauge WinTV instead of a prof 7300. After some runs with info_printk statements I found a problem in linux/drivers/media/video/cx88.c As far as I can understand the code I would say card[core->nr] will always be smaller than ARRAY_SIZE(cx88_boards). Therefore core->boardnr is never looked up from the cx88_subids array. After I removed the check with ARRAY_SIZE the correct card is detected and I can watch tv with both my prof 7300 cards. Can someone confirm if the patch I made is correct or explain what the purpose is of the ARRAY_SIZE check? For search references: I was getting this error in dmesg: cx88[1]/2: dvb_register failed (err = -22) cx88[1]/2: cx8802 probe failed, err = -22 Regards, Joep Admiraal
diff -r b76072d765c4 linux/drivers/media/video/cx88/cx88-cards.c --- a/linux/drivers/media/video/cx88/cx88-cards.c Tue Dec 29 18:48:04 2009 +0000 +++ b/linux/drivers/media/video/cx88/cx88-cards.c Sat Jan 16 16:44:36 2010 +0100 @@ -3436,8 +3436,8 @@ /* board config */ core->boardnr = UNSET; - if (card[core->nr] < ARRAY_SIZE(cx88_boards)) - core->boardnr = card[core->nr]; + //if (card[core->nr] < ARRAY_SIZE(cx88_boards)) + // core->boardnr = card[core->nr]; for (i = 0; UNSET == core->boardnr && i < ARRAY_SIZE(cx88_subids); i++) if (pci->subsystem_vendor == cx88_subids[i].subvendor && pci->subsystem_device == cx88_subids[i].subdevice)