Re: cx18: Testers needed: VBI for non-NTSC-M input signals
On Sunday 17 May 2009 04:06:04 Andy Walls wrote: Hi, Thanks to a loaner PVR-350 from Hans, I've been able to implement VBI support in the cx18 driver for non-NTSC video standards. If you've got a 625 line PAL, SECAM, etc, video source and can test VBI functions on a CX23418 based card, I'd like to hear how it works. The patches for testing are here: http://linuxtv.org/hg/~awalls/cx18-av-core http://linuxtv.org/hg/~awalls/cx18-av-core/archive/tip.tar.bz2 I've only been able to test with PAL with VPS in field 1 line 16 and WSS in field 1 line 23. I wasn't able to figure out how to get Teletext B out of the PVR-350, so I'd certainly like to hear if Teletext is working. You can't get teletext out of the PVR-350. Only WSS and VPS. It's a hardware limitation. I don't have access to my HVR1600 this week, I'll see if I can test it next Sunday. Regards, Hans Note: to implement Raw VBI for 625 line/50 Hz systems to extract line 23 (WSS), I had to blank one extra line in each field. This means that 625/50 systems will be missing 1 line from the top of each field (e.g. line 24 won't show). I thought that was better than having the fields move up or down around if the user turned VBI on or off. Regards, Andy -- Hans Verkuil - video4linux developer - sponsored by TANDBERG -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] [0905_14_1] Siano: smsusb - update supported USB IDs table
# HG changeset patch # User Uri Shkolnik u...@siano-ms.com # Date 1242550293 -10800 # Node ID 59a05f4cb2769279a460f171250d3a7d3a85b81f # Parent 12d6b7eaffa903f00c445d7102ded42610361ae6 [0905_14_1] Siano: smsusb - update supported USB IDs table From: Uri Shkolnik u...@siano-ms.com Update the list of supported USB devices, with IDs of new devices, and remove the obsolete defines Priority: normal Signed-off-by: Uri Shkolnik u...@siano-ms.com diff -r 12d6b7eaffa9 -r 59a05f4cb276 linux/drivers/media/dvb/siano/smsusb.c --- a/linux/drivers/media/dvb/siano/smsusb.cSun May 17 11:49:44 2009 +0300 +++ b/linux/drivers/media/dvb/siano/smsusb.cSun May 17 11:51:33 2009 +0300 @@ -489,7 +489,6 @@ static int smsusb_resume(struct usb_inte } struct usb_device_id smsusb_id_table[] = { -#ifdef CONFIG_DVB_SIANO_SMS1XXX_SMS_IDS { USB_DEVICE(0x187f, 0x0010), .driver_info = SMS1XXX_BOARD_SIANO_STELLAR }, { USB_DEVICE(0x187f, 0x0100), @@ -500,7 +499,6 @@ struct usb_device_id smsusb_id_table[] = .driver_info = SMS1XXX_BOARD_SIANO_NOVA_B }, { USB_DEVICE(0x187f, 0x0300), .driver_info = SMS1XXX_BOARD_SIANO_VEGA }, -#endif { USB_DEVICE(0x2040, 0x1700), .driver_info = SMS1XXX_BOARD_HAUPPAUGE_CATAMOUNT }, { USB_DEVICE(0x2040, 0x1800), @@ -531,8 +529,13 @@ struct usb_device_id smsusb_id_table[] = .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM }, { USB_DEVICE(0x2040, 0x5590), .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM }, - { } /* Terminating entry */ -}; + { USB_DEVICE(0x187f, 0x0202), + .driver_info = SMS1XXX_BOARD_SIANO_NICE }, + { USB_DEVICE(0x187f, 0x0301), + .driver_info = SMS1XXX_BOARD_SIANO_VENICE }, + { } /* Terminating entry */ + }; + MODULE_DEVICE_TABLE(usb, smsusb_id_table); static struct usb_driver smsusb_driver = { -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] [0905_23] Siano: gpio - use new implementation
# HG changeset patch # User Uri Shkolnik u...@siano-ms.com # Date 1242331325 -10800 # Node ID 415ca02f74b960c02ddfa7ee719cf87726d97490 # Parent 8b645aa2ab13f22b8d4dcd8e6353fce2c976cd34 [0905_23] Siano: gpio - use new implementation From: Uri Shkolnik u...@siano-ms.com Start using the corrected gpio implementation Priority: normal Signed-off-by: Uri Shkolnik u...@siano-ms.com diff -r 8b645aa2ab13 -r 415ca02f74b9 linux/drivers/media/dvb/siano/sms-cards.c --- a/linux/drivers/media/dvb/siano/sms-cards.c Thu May 14 22:28:38 2009 +0300 +++ b/linux/drivers/media/dvb/siano/sms-cards.c Thu May 14 23:02:05 2009 +0300 @@ -17,6 +17,7 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include smscoreapi.h #include sms-cards.h #include smsir.h @@ -155,6 +156,174 @@ struct sms_board *sms_get_board(int id) } EXPORT_SYMBOL_GPL(sms_get_board); +static inline void sms_gpio_assign_11xx_default_led_config( + struct smscore_gpio_config *pGpioConfig) { + pGpioConfig-Direction = SMS_GPIO_DIRECTION_OUTPUT; + pGpioConfig-InputCharacteristics = + SMS_GPIO_INPUTCHARACTERISTICS_NORMAL; + pGpioConfig-OutputDriving = SMS_GPIO_OUTPUTDRIVING_4mA; + pGpioConfig-OutputSlewRate = SMS_GPIO_OUTPUTSLEWRATE_0_45_V_NS; + pGpioConfig-PullUpDown = SMS_GPIO_PULLUPDOWN_NONE; +} + +int sms_board_event(struct smscore_device_t *coredev, + enum SMS_BOARD_EVENTS gevent) { + int board_id = smscore_get_board_id(coredev); + struct sms_board *board = sms_get_board(board_id); + struct smscore_gpio_config MyGpioConfig; + + sms_gpio_assign_11xx_default_led_config(MyGpioConfig); + + switch (gevent) { + case BOARD_EVENT_POWER_INIT: /* including hotplug */ + switch (board_id) { + case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM: + /* set I/O and turn off all LEDs */ + smscore_gpio_configure(coredev, + board-board_cfg.leds_power, + MyGpioConfig); + smscore_gpio_set_level(coredev, + board-board_cfg.leds_power, 0); + smscore_gpio_configure(coredev, board-board_cfg.led0, + MyGpioConfig); + smscore_gpio_set_level(coredev, + board-board_cfg.led0, 0); + smscore_gpio_configure(coredev, board-board_cfg.led1, + MyGpioConfig); + smscore_gpio_set_level(coredev, + board-board_cfg.led1, 0); + break; + case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2: + case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD: + /* set I/O and turn off LNA */ + smscore_gpio_configure(coredev, + board-board_cfg.foreign_lna0_ctrl, + MyGpioConfig); + smscore_gpio_set_level(coredev, + board-board_cfg.foreign_lna0_ctrl, + 0); + break; + } + break; /* BOARD_EVENT_BIND */ + + case BOARD_EVENT_POWER_SUSPEND: + switch (board_id) { + case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM: + smscore_gpio_set_level(coredev, + board-board_cfg.leds_power, 0); + smscore_gpio_set_level(coredev, + board-board_cfg.led0, 0); + smscore_gpio_set_level(coredev, + board-board_cfg.led1, 0); + break; + case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2: + case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD: + smscore_gpio_set_level(coredev, + board-board_cfg.foreign_lna0_ctrl, + 0); + break; + } + break; /* BOARD_EVENT_POWER_SUSPEND */ + + case BOARD_EVENT_POWER_RESUME: + switch (board_id) { + case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM: + smscore_gpio_set_level(coredev, + board-board_cfg.leds_power, 1); + smscore_gpio_set_level(coredev, + board-board_cfg.led0, 1); + smscore_gpio_set_level(coredev, + board-board_cfg.led1, 0); + break; + case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2: +
[PATCH] [0905_27] Siano: smscore - fix isdb-t firmware name
# HG changeset patch # User Uri Shkolnik u...@siano-ms.com # Date 1242332684 -10800 # Node ID 7e56c108996ef016c4b2117090e2577aea9ed56c # Parent 5ad3d2c3d7792ddf125386c43535e68b575305c3 [0905_27] Siano: smscore - fix isdb-t firmware name From: Uri Shkolnik u...@siano-ms.com Fix mistake with isdb-t firmware name Priority: normal Signed-off-by: Uri Shkolnik u...@siano-ms.com diff -r 5ad3d2c3d779 -r 7e56c108996e linux/drivers/media/dvb/siano/smscoreapi.c --- a/linux/drivers/media/dvb/siano/smscoreapi.cThu May 14 23:21:04 2009 +0300 +++ b/linux/drivers/media/dvb/siano/smscoreapi.cThu May 14 23:24:44 2009 +0300 @@ -813,7 +813,7 @@ static char *smscore_fw_lkup[][SMS_NUM_O /*BDA*/ {none, dvb_nova_12mhz.inp, dvb_nova_12mhz_b0.inp, none}, /*ISDBT*/ - {none, isdbt_nova_12mhz.inp, dvb_nova_12mhz.inp, none}, + {none, isdbt_nova_12mhz.inp, isdbt_nova_12mhz_b0.inp, none}, /*ISDBTBDA*/ {none, isdbt_nova_12mhz.inp, isdbt_nova_12mhz_b0.inp, none}, /*CMMB*/ -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] [0905_29] Siano: smscore - bug fix at get_device_mode
# HG changeset patch # User Uri Shkolnik u...@siano-ms.com # Date 1242332841 -10800 # Node ID 211989f20f803bc5a719c6fda4640888e379d6fc # Parent 7e56c108996ef016c4b2117090e2577aea9ed56c [0905_29] Siano: smscore - bug fix at get_device_mode From: Uri Shkolnik u...@siano-ms.com Fix bug that cause error log to echo also if success Priority: normal Signed-off-by: Uri Shkolnik u...@siano-ms.com diff -r 7e56c108996e -r 211989f20f80 linux/drivers/media/dvb/siano/smscoreapi.c --- a/linux/drivers/media/dvb/siano/smscoreapi.cThu May 14 23:24:44 2009 +0300 +++ b/linux/drivers/media/dvb/siano/smscoreapi.cThu May 14 23:27:21 2009 +0300 @@ -938,7 +938,7 @@ int smscore_set_device_mode(struct smsco coredev-device_flags = ~SMS_DEVICE_NOT_READY; } - if (rc != 0) + if (rc 0) sms_err(return error code %d., rc); return rc; } -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] [0905_30] Siano: smsusb - fix typo in module description
# HG changeset patch # User Uri Shkolnik u...@siano-ms.com # Date 1242562875 -10800 # Node ID 7d204069642b6608bb3b0d6a96d1de5848df2a16 # Parent 1c7b6db1a3399ffbb7f9b6758cae6572c24b51ef [0905_30] Siano: smsusb - fix typo in module description From: Uri Shkolnik u...@siano-ms.com Fix small typo in the module description Priority: normal Signed-off-by: Uri Shkolnik u...@siano-ms.com diff -r 1c7b6db1a339 -r 7d204069642b linux/drivers/media/dvb/siano/smsusb.c --- a/linux/drivers/media/dvb/siano/smsusb.cSun May 17 11:57:48 2009 +0300 +++ b/linux/drivers/media/dvb/siano/smsusb.cSun May 17 15:21:15 2009 +0300 @@ -569,6 +569,6 @@ module_init(smsusb_module_init); module_init(smsusb_module_init); module_exit(smsusb_module_exit); -MODULE_DESCRIPTION(Driver for the Siano SMS1XXX USB dongle); +MODULE_DESCRIPTION(Driver for the Siano SMS1xxx USB dongle); MODULE_AUTHOR(Siano Mobile Silicon, INC. (u...@siano-ms.com)); MODULE_LICENSE(GPL); -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] [0905_31] Siano: smsusb - change exit func debug msg
# HG changeset patch # User Uri Shkolnik u...@siano-ms.com # Date 1242563388 -10800 # Node ID c09c5b8b253e4a74b9a32ce8db30d35d143dedfa # Parent 7d204069642b6608bb3b0d6a96d1de5848df2a16 [0905_31] Siano: smsusb - change exit func debug msg From: Uri Shkolnik u...@siano-ms.com Change the debug message of the USB interface driver exit function. Priority: normal Signed-off-by: Uri Shkolnik u...@siano-ms.com diff -r 7d204069642b -r c09c5b8b253e linux/drivers/media/dvb/siano/smsusb.c --- a/linux/drivers/media/dvb/siano/smsusb.cSun May 17 15:21:15 2009 +0300 +++ b/linux/drivers/media/dvb/siano/smsusb.cSun May 17 15:29:48 2009 +0300 @@ -561,9 +561,9 @@ int smsusb_module_init(void) void smsusb_module_exit(void) { - sms_debug(); /* Regular USB Cleanup */ usb_deregister(smsusb_driver); + sms_info(end); } module_init(smsusb_module_init); -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH][libv4l] Support V4L2_CTRL_FLAG_NEXT_CTRL for fake controls
On 04/19/2009 12:45 AM, Adam Baker wrote: The fake controls added by libv4l to provide whitebalance on some cameras do not respect the V4L2_CTRL_FLAG_NEXT_CTRL and hence don't appear on control programs that try to use that flag if there are any driver controls that do support the flag. Add support for V4L2_CTRL_FLAG_NEXT_CTRL Signed-off-by: Adam Bakerli...@baker-net.org.uk Thanks, reviewed and tested looks fine, so it has been applied to my tree: http://linuxtv.org/hg/~hgoede/libv4l And will be in the next libv4l release. Regards, Hans -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Fixed (Was:Re: saa7134/2.6.26 regression, noisy output)
hermann pitton a écrit : Hi Anders, Am Freitag, den 15.05.2009, 11:18 +0200 schrieb Anders Eriksson: Success! I've tracked down the offending change. switch_addr takes on the wrong value and setting the LNA fails. Here's a i2c dump: saa7133[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff saa7133[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff saa7133[0]: i2c xfer: 20 ERROR: NO_DEVICE saa7133[0]: i2c xfer: 84 ERROR: NO_DEVICE saa7133[0]: i2c xfer: 86 ERROR: NO_DEVICE saa7133[0]: i2c xfer: 94 ERROR: NO_DEVICE saa7133[0]: i2c xfer: 96 saa7133[0]: i2c xfer: 96 00 saa7133[0]: i2c xfer: 97 =01 =01 =00 =11 =01 =04 =01 =85 saa7133[0]: i2c xfer: 96 1f saa7133[0]: i2c xfer: 97 =89 tda8290_probe: tda8290 detected @ 1-004b tuner' 1-004b: tda829x detected tuner' 1-004b: Setting mode_mask to 0x0e tuner' 1-004b: chip found @ 0x96 (saa7133[0]) tuner' 1-004b: tuner 0x4b: Tuner type absent tuner' i2c attach [addr=0x4b,client=(tuner unset)] tuner' 1-004b: Calling set_type_addr for type=54, addr=0xff, mode=0x04, config=0x01 tuner' 1-004b: set addr for type -1 tuner' 1-004b: defining GPIO callback saa7133[0]: i2c xfer: 96 1f saa7133[0]: i2c xfer: 97 =89 tda8290_probe: tda8290 detected @ 1-004b saa7133[0]: i2c xfer: 96 2f saa7133[0]: i2c xfer: 97 =00 saa7133[0]: i2c xfer: 96 21 c0 saa7133[0]: i2c xfer: c1 ERROR: NO_DEVICE saa7133[0]: i2c xfer: c3 =88 saa7133[0]: i2c xfer: c5 ERROR: NO_DEVICE saa7133[0]: i2c xfer: c7 ERROR: NO_DEVICE saa7133[0]: i2c xfer: 96 21 00 tda829x 1-004b: setting tuner address to 61 saa7133[0]: i2c xfer: 96 21 c0 saa7133[0]: i2c xfer: c3 =08 tda827x: tda827x_attach: tda827x: type set to Philips TDA827X saa7133[0]: i2c xfer: c3 =08 tda827x: tda827xa tuner found tda827x: tda827x_init: tda827x: tda827xa_sleep: saa7133[0]: i2c xfer: c2 30 90 saa7133[0]: i2c xfer: 96 21 00 tda829x 1-004b: type set to tda8290+75a saa7133[0]: i2c xfer: 96 21 c0 saa7133[0]: i2c xfer: c2 00 00 00 00 dc 05 8b 0c 04 20 ff 00 00 4b saa7133[0]: i2c xfer: 96 21 00 saa7133[0]: i2c xfer: 96 20 01 saa7133[0]: i2c xfer: 96 30 6f tuner' 1-004b: type set to tda8290+75a tuner' 1-004b: tv freq set to 400.00 tda829x 1-004b: setting tda829x to system xx tda829x 1-004b: tda827xa config is 0x01 saa7133[0]: i2c xfer: 96 01 00 saa7133[0]: i2c xfer: 96 02 00 saa7133[0]: i2c xfer: 96 00 00 saa7133[0]: i2c xfer: 96 01 90 saa7133[0]: i2c xfer: 96 28 14 saa7133[0]: i2c xfer: 96 0f 88 saa7133[0]: i2c xfer: 96 05 04 saa7133[0]: i2c xfer: 96 0d 47 saa7133[0]: i2c xfer: 96 21 c0 tda827x: setting tda827x to system xx tda827x: setting LNA to high gain saa7133[0]: i2c xfer: 96 22 00 ^ This address is c2 in all kernels = 5823b3a63c7661272ea7fef7635955e2a50d17eb saa7133[0]: i2c xfer: c2 00 32 f8 00 16 3b bb 1c 04 20 00 saa7133[0]: i2c xfer: c2 90 ff e0 00 99 saa7133[0]: i2c xfer: c2 a0 c0 saa7133[0]: i2c xfer: c2 30 10 saa7133[0]: i2c xfer: c3 =49 =a4 tda827x: AGC2 gain is: 10 ^ The gain reported on good kernels is 3 Looking at the source, the switch_addr to use in the later kernels is somehow autodetected. How that's done, I've yet to fully understand, but somehow it comes up with the wrong address. This patch (which obviously needs improvement) hardwires the address back to its original value, and works for 2.6.30-rc5. diff --git a/drivers/media/common/tuners/tda8290.c b/drivers/media/common/tuners/tda8290.c index 064d14c..498cc7b 100644 --- a/drivers/media/common/tuners/tda8290.c +++ b/drivers/media/common/tuners/tda8290.c @@ -635,7 +635,11 @@ static int tda829x_find_tuner(struct dvb_frontend *fe) dvb_attach(tda827x_attach, fe, priv-tda827x_addr, priv-i2c_props.adap, priv-cfg); + tuner_info(ANDERS: setting switch_addr. was 0x%02x, new 0x%02x\n,priv-cfg.switch_addr,priv-i2c_props.addr); priv-cfg.switch_addr = priv-i2c_props.addr; + priv-cfg.switch_addr = 0xc2 / 2; + tuner_info(ANDERS: new 0x%02x\n,priv-cfg.switch_addr); + } if (fe-ops.tuner_ops.init) fe-ops.tuner_ops.init(fe); Could you please help me out and shed some light on what the proper fix is for setting switch_addr? Thanks, /Anders thanks a lot for all your time and energy you did spend on this. I suggest we start collecting photographs of different LNA circuits on the wiki. For now, Tom offered his support already off list, I think we should start about the question, if that early Hauppauge HVR 1110 has such an LNA type one at all, since this caused to not look at it further, as it seemed to be without problems. Tom, I know you carefully worked on it, but can you reassure that this LNA config one is really needed on your device? Hello list, you are talking about tuner_config = 1 for the hvr 1110, right ? Changing this option doesn't affect the qualitie of
Re: Fixed (Was:Re: saa7134/2.6.26 regression, noisy output)
tomloh...@gmail.com said: Hello list, you are talking about tuner_config = 1 for the hvr 1110, right ? No. We're talking about the switch_addr variable. This variable is not changeable with module parameters. Changing this option doesn't affect the qualitie of the signal on tv see http://forum.ubuntu-fr.org/viewtopic.php?pid=1472261 it 's an old discussion in french. This option, as far as i remenber, was not provided by me ... anyway with tuner debug=1 and .tuner_config=1 , i have no line with AGC or LNA on dmesg You only get this output if you enable debugging. Here's what i have (gentoo): and...@tv /etc/modprobe.d $ grep '' saa7134 saa7134_alsa tda827x tda8290 tuner saa7134:options saa7134 disable_ir=1 alsa=1 core_debug=1 i2c_debug=1 saa7134:#options saa7134 alsa=1 saa7134_alsa:options saa7134_alsa debug=1 tda827x:options tda827x debug=1 tda8290:options tda8290 debug=1 tuner:options tuner debug=1 If you adjust your module options similarly, you'll get more info in dmesg. If you're ok with patching kernel source, could you try the patch I sent? I have somme glitchs with hvr1110 on dvb (not analogic tv) and many for one particular station call M6 (and i'm not the only one user, see previous post on ubuntu-fr.org, with short or long distance from tv relay) . Bug on 310i means potentially bug on hvr1110 as configuration on hvr 1110 was made from 310i I've never tried my 310i on digital (dvb-t), so I'm afraid I cannot help you there. I use it on analogue cable tv. -Anders -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: working on webcam driver
Thanks much for the feedback! Here's what happened: Because the vendor id (0c45) is listed by the gspca website but not the product (612a), I decided to try inserting the id into one of the drivers/media/video/gspca. When I actually grepped (had not grepped the tree itself yet), low and behold 612a is in sonixj. The module compiles and responds to the camera, although the results in gstreamer, et. al, are disappointing -- the camera is not really usable, I suspect from the output it is the kernel driver, but I am not sure. Since I didn't write this stuff, I think working alone it will be more trouble than it is worth to track the problem down, esp. if this is mostly a problem with an (obscure) inexpensive item that few linux users actually possess. So, I am going to cut my loses early on this project and cop out. I've learned a bunch about the kernel and in the process written some nifty little char drivers that are probably more useful to me than a webcam anyway. I think my time would be better spent on other things, eg, I might become useful in someone else's (more significant) linux kernel/driver project. I will have a look around. But thanks again! You were much nicer than mr Greg Kroah-Hartman ;) :0 Sincerely, Mark Eriksen (getting his feet wet) -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[cron job] v4l-dvb daily build 2.6.22 and up: ERRORS, 2.6.16-2.6.21: ERRORS
This message is generated daily by a cron job that builds v4l-dvb for the kernels and architectures in the list below. Results of the daily build of v4l-dvb: date:Sun May 17 19:00:06 CEST 2009 path:http://www.linuxtv.org/hg/v4l-dvb changeset: 11783:0018ed9bbca3 gcc version: gcc (GCC) 4.3.1 hardware:x86_64 host os: 2.6.26 linux-2.6.22.19-armv5: OK linux-2.6.23.12-armv5: OK linux-2.6.24.7-armv5: OK linux-2.6.25.11-armv5: OK linux-2.6.26-armv5: OK linux-2.6.27-armv5: OK linux-2.6.28-armv5: OK linux-2.6.29.1-armv5: OK linux-2.6.30-rc4-armv5: OK linux-2.6.27-armv5-ixp: WARNINGS linux-2.6.28-armv5-ixp: WARNINGS linux-2.6.29.1-armv5-ixp: WARNINGS linux-2.6.30-rc4-armv5-ixp: WARNINGS linux-2.6.28-armv5-omap2: WARNINGS linux-2.6.29.1-armv5-omap2: WARNINGS linux-2.6.30-rc4-armv5-omap2: WARNINGS linux-2.6.22.19-i686: ERRORS linux-2.6.23.12-i686: ERRORS linux-2.6.24.7-i686: ERRORS linux-2.6.25.11-i686: ERRORS linux-2.6.26-i686: WARNINGS linux-2.6.27-i686: WARNINGS linux-2.6.28-i686: WARNINGS linux-2.6.29.1-i686: WARNINGS linux-2.6.30-rc4-i686: WARNINGS linux-2.6.23.12-m32r: OK linux-2.6.24.7-m32r: OK linux-2.6.25.11-m32r: OK linux-2.6.26-m32r: OK linux-2.6.27-m32r: OK linux-2.6.28-m32r: OK linux-2.6.29.1-m32r: OK linux-2.6.30-rc4-m32r: OK linux-2.6.22.19-mips: ERRORS linux-2.6.26-mips: ERRORS linux-2.6.27-mips: ERRORS linux-2.6.28-mips: ERRORS linux-2.6.29.1-mips: ERRORS linux-2.6.30-rc4-mips: ERRORS linux-2.6.27-powerpc64: WARNINGS linux-2.6.28-powerpc64: WARNINGS linux-2.6.29.1-powerpc64: WARNINGS linux-2.6.30-rc4-powerpc64: WARNINGS linux-2.6.22.19-x86_64: ERRORS linux-2.6.23.12-x86_64: ERRORS linux-2.6.24.7-x86_64: ERRORS linux-2.6.25.11-x86_64: ERRORS linux-2.6.26-x86_64: OK linux-2.6.27-x86_64: OK linux-2.6.28-x86_64: OK linux-2.6.29.1-x86_64: OK linux-2.6.30-rc4-x86_64: WARNINGS sparse (linux-2.6.29.1): OK sparse (linux-2.6.30-rc4): OK linux-2.6.16.61-i686: ERRORS linux-2.6.17.14-i686: ERRORS linux-2.6.18.8-i686: ERRORS linux-2.6.19.5-i686: ERRORS linux-2.6.20.21-i686: ERRORS linux-2.6.21.7-i686: ERRORS linux-2.6.16.61-x86_64: ERRORS linux-2.6.17.14-x86_64: ERRORS linux-2.6.18.8-x86_64: ERRORS linux-2.6.19.5-x86_64: ERRORS linux-2.6.20.21-x86_64: ERRORS linux-2.6.21.7-x86_64: ERRORS Detailed results are available here: http://www.xs4all.nl/~hverkuil/logs/Sunday.log Full logs are available here: http://www.xs4all.nl/~hverkuil/logs/Sunday.tar.bz2 The V4L2 specification from this daily build is here: http://www.xs4all.nl/~hverkuil/spec/v4l2.html The DVB API specification from this daily build is here: http://www.xs4all.nl/~hverkuil/spec/dvbapi.pdf -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 0/8] ir-kbd-i2c conversion to the new i2c binding model (v3)
On Thu, 14 May 2009, Jean Delvare wrote: On Thu, 14 May 2009 21:25:02 +0200, Oldřich Jedlička wrote: On Wednesday 13 of May 2009 at 21:45:59, Jean Delvare wrote: Hi all, Here comes an update of my conversion of ir-kbd-i2c to the new i2c binding model. I've split it into 8 pieces for easier review. Firstly there is 1 preliminary patch: Hi Jean, works for me, as usual :-) I've used the all-in-one patch and the up-to-date v4l-dvb tree (compiled yesterday for completeness). Oldrich, thanks a lot for testing and reporting, this is very appreciated. Jean: I tried the all-in-one patch here on a PVR-USB2 24xxx model (slightly older v4l-dvb repo and 2.6.27.13 vanilla kernel) and it worked fine. I'll add an acked-by to the corresponding (trivial) pvrusb2 patch that you've posted. -Mike -- Mike Isely isely @ isely (dot) net PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8
Re: [PATCH 8/8] pvrusb2: Instantiate ir_video I2C device by default
On Wed, 13 May 2009, Jean Delvare wrote: Now that the ir-kbd-i2c driver has been converted to a new-style i2c driver, we can instantiate the ir_video I2C device by default. The pvr2_disable_ir_video is kept to disable the IR receiver, either because the user doesn't use it, or for debugging purpose. Signed-off-by: Jean Delvare kh...@linux-fr.org Cc: Mike Isely is...@pobox.com Acked-by: Mike Isely is...@pobox.com --- linux/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- v4l-dvb.orig/linux/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c 2009-05-13 18:05:54.0 +0200 +++ v4l-dvb/linux/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c 2009-05-13 18:06:32.0 +0200 @@ -43,7 +43,7 @@ static int ir_mode[PVR_NUM] = { [0 ... P module_param_array(ir_mode, int, NULL, 0444); MODULE_PARM_DESC(ir_mode,specify: 0=disable IR reception, 1=normal IR); -static int pvr2_disable_ir_video = 1; +static int pvr2_disable_ir_video; module_param_named(disable_autoload_ir_video, pvr2_disable_ir_video, int, S_IRUGO|S_IWUSR); MODULE_PARM_DESC(disable_autoload_ir_video, -- Mike Isely isely @ isely (dot) net PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8 -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: working on webcam driver
Hi Mark, just searching 0c45:612a gspca could save you lot of time. I suppose you were looking at the old gspca homepage, because it listed on Jean F. Moine site http://moinejf.free.fr/webcam.html ( it dont know even it that page if still updated ) About the gstreamer, what kind of troubles are you having?. It's the webcam streaming? Did you follow the steps using libv4lconvert?. I wrote that patch a year ago, so , if there's any problem let me know. If you need help, about the lib4vlconvert thing, look at deaglecito.blogspot.com Best Regards Costantino Leandro On Sun, May 17, 2009 at 12:08 PM, MK halfcountp...@intergate.com wrote: Thanks much for the feedback! Here's what happened: Because the vendor id (0c45) is listed by the gspca website but not the product (612a), I decided to try inserting the id into one of the drivers/media/video/gspca. When I actually grepped (had not grepped the tree itself yet), low and behold 612a is in sonixj. The module compiles and responds to the camera, although the results in gstreamer, et. al, are disappointing -- the camera is not really usable, I suspect from the output it is the kernel driver, but I am not sure. Since I didn't write this stuff, I think working alone it will be more trouble than it is worth to track the problem down, esp. if this is mostly a problem with an (obscure) inexpensive item that few linux users actually possess. So, I am going to cut my loses early on this project and cop out. I've learned a bunch about the kernel and in the process written some nifty little char drivers that are probably more useful to me than a webcam anyway. I think my time would be better spent on other things, eg, I might become useful in someone else's (more significant) linux kernel/driver project. I will have a look around. But thanks again! You were much nicer than mr Greg Kroah-Hartman ;) :0 Sincerely, Mark Eriksen (getting his feet wet) -- video4linux-list mailing list Unsubscribe mailto:video4linux-list-requ...@redhat.com?subject=unsubscribe https://www.redhat.com/mailman/listinfo/video4linux-list -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Fixed (Was:Re: saa7134/2.6.26 regression, noisy output)
Hi, Am Sonntag, den 17.05.2009, 15:52 +0200 schrieb tomloh...@gmail.com: hermann pitton a écrit : Hi Anders, Am Freitag, den 15.05.2009, 11:18 +0200 schrieb Anders Eriksson: Success! I've tracked down the offending change. switch_addr takes on the wrong value and setting the LNA fails. Here's a i2c dump: saa7133[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff saa7133[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff saa7133[0]: i2c xfer: 20 ERROR: NO_DEVICE saa7133[0]: i2c xfer: 84 ERROR: NO_DEVICE saa7133[0]: i2c xfer: 86 ERROR: NO_DEVICE saa7133[0]: i2c xfer: 94 ERROR: NO_DEVICE saa7133[0]: i2c xfer: 96 saa7133[0]: i2c xfer: 96 00 saa7133[0]: i2c xfer: 97 =01 =01 =00 =11 =01 =04 =01 =85 saa7133[0]: i2c xfer: 96 1f saa7133[0]: i2c xfer: 97 =89 tda8290_probe: tda8290 detected @ 1-004b tuner' 1-004b: tda829x detected tuner' 1-004b: Setting mode_mask to 0x0e tuner' 1-004b: chip found @ 0x96 (saa7133[0]) tuner' 1-004b: tuner 0x4b: Tuner type absent tuner' i2c attach [addr=0x4b,client=(tuner unset)] tuner' 1-004b: Calling set_type_addr for type=54, addr=0xff, mode=0x04, config=0x01 tuner' 1-004b: set addr for type -1 tuner' 1-004b: defining GPIO callback saa7133[0]: i2c xfer: 96 1f saa7133[0]: i2c xfer: 97 =89 tda8290_probe: tda8290 detected @ 1-004b saa7133[0]: i2c xfer: 96 2f saa7133[0]: i2c xfer: 97 =00 saa7133[0]: i2c xfer: 96 21 c0 saa7133[0]: i2c xfer: c1 ERROR: NO_DEVICE saa7133[0]: i2c xfer: c3 =88 saa7133[0]: i2c xfer: c5 ERROR: NO_DEVICE saa7133[0]: i2c xfer: c7 ERROR: NO_DEVICE saa7133[0]: i2c xfer: 96 21 00 tda829x 1-004b: setting tuner address to 61 saa7133[0]: i2c xfer: 96 21 c0 saa7133[0]: i2c xfer: c3 =08 tda827x: tda827x_attach: tda827x: type set to Philips TDA827X saa7133[0]: i2c xfer: c3 =08 tda827x: tda827xa tuner found tda827x: tda827x_init: tda827x: tda827xa_sleep: saa7133[0]: i2c xfer: c2 30 90 saa7133[0]: i2c xfer: 96 21 00 tda829x 1-004b: type set to tda8290+75a saa7133[0]: i2c xfer: 96 21 c0 saa7133[0]: i2c xfer: c2 00 00 00 00 dc 05 8b 0c 04 20 ff 00 00 4b saa7133[0]: i2c xfer: 96 21 00 saa7133[0]: i2c xfer: 96 20 01 saa7133[0]: i2c xfer: 96 30 6f tuner' 1-004b: type set to tda8290+75a tuner' 1-004b: tv freq set to 400.00 tda829x 1-004b: setting tda829x to system xx tda829x 1-004b: tda827xa config is 0x01 saa7133[0]: i2c xfer: 96 01 00 saa7133[0]: i2c xfer: 96 02 00 saa7133[0]: i2c xfer: 96 00 00 saa7133[0]: i2c xfer: 96 01 90 saa7133[0]: i2c xfer: 96 28 14 saa7133[0]: i2c xfer: 96 0f 88 saa7133[0]: i2c xfer: 96 05 04 saa7133[0]: i2c xfer: 96 0d 47 saa7133[0]: i2c xfer: 96 21 c0 tda827x: setting tda827x to system xx tda827x: setting LNA to high gain saa7133[0]: i2c xfer: 96 22 00 ^ This address is c2 in all kernels = 5823b3a63c7661272ea7fef7635955e2a50d17eb saa7133[0]: i2c xfer: c2 00 32 f8 00 16 3b bb 1c 04 20 00 saa7133[0]: i2c xfer: c2 90 ff e0 00 99 saa7133[0]: i2c xfer: c2 a0 c0 saa7133[0]: i2c xfer: c2 30 10 saa7133[0]: i2c xfer: c3 =49 =a4 tda827x: AGC2 gain is: 10 ^ The gain reported on good kernels is 3 Looking at the source, the switch_addr to use in the later kernels is somehow autodetected. How that's done, I've yet to fully understand, but somehow it comes up with the wrong address. This patch (which obviously needs improvement) hardwires the address back to its original value, and works for 2.6.30-rc5. diff --git a/drivers/media/common/tuners/tda8290.c b/drivers/media/common/tuners/tda8290.c index 064d14c..498cc7b 100644 --- a/drivers/media/common/tuners/tda8290.c +++ b/drivers/media/common/tuners/tda8290.c @@ -635,7 +635,11 @@ static int tda829x_find_tuner(struct dvb_frontend *fe) dvb_attach(tda827x_attach, fe, priv-tda827x_addr, priv-i2c_props.adap, priv-cfg); + tuner_info(ANDERS: setting switch_addr. was 0x%02x, new 0x%02x\n,priv-cfg.switch_addr,priv-i2c_props.addr); priv-cfg.switch_addr = priv-i2c_props.addr; + priv-cfg.switch_addr = 0xc2 / 2; + tuner_info(ANDERS: new 0x%02x\n,priv-cfg.switch_addr); + } if (fe-ops.tuner_ops.init) fe-ops.tuner_ops.init(fe); Could you please help me out and shed some light on what the proper fix is for setting switch_addr? Thanks, /Anders thanks a lot for all your time and energy you did spend on this. I suggest we start collecting photographs of different LNA circuits on the wiki. For now, Tom offered his support already off list, I think we should start about the question, if that early Hauppauge HVR 1110 has such an LNA type one at all, since this
[REVIEW v4] v4l2 loopback
In this patch revision fixed complains from checkpatch.pl spell check of comments done --- This patch introduces v4l2 loopback module From: Vasily Levin vas...@gmail.com This is v4l2 loopback driver which can be used to make available any userspace video as v4l2 device. Initially it was written to make videoeffects available to Skype, but in fact it have many more uses. Priority: normal Signed-off-by: Vasily Levin vas...@gmail.com diff -uprN v4l-dvb.orig/linux/drivers/media/video/Kconfig v4l- dvb.my/linux/drivers/media/video/Kconfig --- v4l-dvb.orig/linux/drivers/media/video/Kconfig 2009-05-17 22:39:41.0 +0300 +++ v4l-dvb.my/linux/drivers/media/video/Kconfig2009-05-17 22:41:22.0 +0300 @@ -497,6 +497,17 @@ config VIDEO_VIVI Say Y here if you want to test video apps or debug V4L devices. In doubt, say N. +config VIDEO_V4L2_LOOPBACK + tristate v4l2 loopback driver + depends on VIDEO_V4L2 VIDEO_DEV + help + Say Y if you want to use v4l2 loopback driver. + Looback driver allows its user to present any userspace + video as a v4l2 device that can be handy for testing purpose, + or for fixing bugs like upside down image, or for adding + nice effects to video chats + This driver can be compiled as a module, called v4l2loopback. + source drivers/media/video/bt8xx/Kconfig config VIDEO_PMS diff -uprN v4l-dvb.orig/linux/drivers/media/video/Makefile v4l- dvb.my/linux/drivers/media/video/Makefile --- v4l-dvb.orig/linux/drivers/media/video/Makefile 2009-05-17 22:39:41.0 +0300 +++ v4l-dvb.my/linux/drivers/media/video/Makefile 2009-05-17 22:41:22.0 +0300 @@ -134,6 +134,7 @@ obj-$(CONFIG_VIDEO_IVTV) += ivtv/ obj-$(CONFIG_VIDEO_CX18) += cx18/ obj-$(CONFIG_VIDEO_VIVI) += vivi.o +obj-$(CONFIG_VIDEO_V4L2_LOOPBACK) += v4l2loopback.o obj-$(CONFIG_VIDEO_CX23885) += cx23885/ obj-$(CONFIG_VIDEO_OMAP2) += omap2cam.o diff -uprN v4l-dvb.orig/linux/drivers/media/video/v4l2loopback.c v4l- dvb.my/linux/drivers/media/video/v4l2loopback.c --- v4l-dvb.orig/linux/drivers/media/video/v4l2loopback.c 1970-01-01 03:00:00.0 +0300 +++ v4l-dvb.my/linux/drivers/media/video/v4l2loopback.c 2009-05-17 23:41:07.0 +0300 @@ -0,0 +1,774 @@ +/* + * v4l2loopback.c -- video 4 linux loopback driver + * + * Copyright (C) 2005-2009 + * Vasily Levin (vas...@gmail.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + */ +#include linux/version.h +#include linux/vmalloc.h +#include linux/mm.h +#include linux/time.h +#include linux/module.h +#include linux/videodev2.h +#include media/v4l2-ioctl.h +#include media/v4l2-common.h + +#define YAVLD_STREAMING + +MODULE_DESCRIPTION(V4L2 loopback video device); +MODULE_VERSION(0.1.1); +MODULE_AUTHOR(Vasily Levin); +MODULE_LICENSE(GPL); + +/* module structures */ +/* TODO(vasaka) use typenames which are common to kernel, but first find out if + * it is needed */ +/* struct keeping state and settings of loopback device */ +struct v4l2_loopback_device { + struct video_device *vdev; + /* pixel and stream format */ + struct v4l2_pix_format pix_format; + struct v4l2_captureparm capture_param; + /* buffers stuff */ + u8 *image; /* pointer to actual buffers data */ + int buffers_number; /* should not be big, 4 is a good choice */ + struct v4l2_buffer *buffers;/* inner driver buffers */ + int write_position; /* number of last written frame + 1 */ + long buffer_size; + /* sync stuff */ + atomic_t open_count; + int ready_for_capture;/* set to true when at least one writer opened + * device and negotiated format */ + wait_queue_head_t read_event; +}; + +/* types of opener shows what opener wants to do with loopback */ +enum opener_type { + UNNEGOTIATED = 0, + READER = 1, + WRITER = 2, +}; + +/* struct keeping state and type of opener */ +struct v4l2_loopback_opener { + enum opener_type type; + int buffers_number; + int position; /* number of last processed frame + 1 or + * write_position - 1 if reader went out of sync */ + struct v4l2_buffer *buffers; +}; + +/* module parameters */ +static int debug = 1; +module_param(debug, int, 0); +MODULE_PARM_DESC(debug, if debug output is enabled, values are 0, 2 or 3); + +static int max_buffers_number = 4; +module_param(max_buffers_number, int, 0); +MODULE_PARM_DESC(max_buffers_number, how many buffers should be allocated); + +static int max_openers = 10; +module_param(max_openers, int, 0); +MODULE_PARM_DESC(max_openers, how many users can open loopback device); + +/* module constants */ +#define
[REVIEW v4.1] v4l2 loopback
In this patch revision fixed complains from checkpatch.pl spell check of comments done v4 was wrong one --- This patch introduces v4l2 loopback module From: Vasily Levin vas...@gmail.com This is v4l2 loopback driver which can be used to make available any userspace video as v4l2 device. Initially it was written to make videoeffects available to Skype, but in fact it have many more uses. Priority: normal Signed-off-by: Vasily Levin vas...@gmail.com diff -uprN v4l-dvb.orig/linux/drivers/media/video/Kconfig v4l-dvb.my/linux/drivers/media/video/Kconfig --- v4l-dvb.orig/linux/drivers/media/video/Kconfig 2009-05-17 22:39:41.0 +0300 +++ v4l-dvb.my/linux/drivers/media/video/Kconfig2009-05-17 22:41:22.0 +0300 @@ -497,6 +497,17 @@ config VIDEO_VIVI Say Y here if you want to test video apps or debug V4L devices. In doubt, say N. +config VIDEO_V4L2_LOOPBACK + tristate v4l2 loopback driver + depends on VIDEO_V4L2 VIDEO_DEV + help + Say Y if you want to use v4l2 loopback driver. + Looback driver allows its user to present any userspace + video as a v4l2 device that can be handy for testing purpose, + or for fixing bugs like upside down image, or for adding + nice effects to video chats + This driver can be compiled as a module, called v4l2loopback. + source drivers/media/video/bt8xx/Kconfig config VIDEO_PMS diff -uprN v4l-dvb.orig/linux/drivers/media/video/Makefile v4l-dvb.my/linux/drivers/media/video/Makefile --- v4l-dvb.orig/linux/drivers/media/video/Makefile 2009-05-17 22:39:41.0 +0300 +++ v4l-dvb.my/linux/drivers/media/video/Makefile 2009-05-17 22:41:22.0 +0300 @@ -134,6 +134,7 @@ obj-$(CONFIG_VIDEO_IVTV) += ivtv/ obj-$(CONFIG_VIDEO_CX18) += cx18/ obj-$(CONFIG_VIDEO_VIVI) += vivi.o +obj-$(CONFIG_VIDEO_V4L2_LOOPBACK) += v4l2loopback.o obj-$(CONFIG_VIDEO_CX23885) += cx23885/ obj-$(CONFIG_VIDEO_OMAP2) += omap2cam.o diff -uprN v4l-dvb.orig/linux/drivers/media/video/v4l2loopback.c v4l-dvb.my/linux/drivers/media/video/v4l2loopback.c --- v4l-dvb.orig/linux/drivers/media/video/v4l2loopback.c 1970-01-01 03:00:00.0 +0300 +++ v4l-dvb.my/linux/drivers/media/video/v4l2loopback.c 2009-05-17 23:41:07.0 +0300 @@ -0,0 +1,774 @@ +/* + * v4l2loopback.c -- video 4 linux loopback driver + * + * Copyright (C) 2005-2009 + * Vasily Levin (vas...@gmail.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + */ +#include linux/version.h +#include linux/vmalloc.h +#include linux/mm.h +#include linux/time.h +#include linux/module.h +#include linux/videodev2.h +#include media/v4l2-ioctl.h +#include media/v4l2-common.h + +#define YAVLD_STREAMING + +MODULE_DESCRIPTION(V4L2 loopback video device); +MODULE_VERSION(0.1.1); +MODULE_AUTHOR(Vasily Levin); +MODULE_LICENSE(GPL); + +/* module structures */ +/* TODO(vasaka) use typenames which are common to kernel, but first find out if + * it is needed */ +/* struct keeping state and settings of loopback device */ +struct v4l2_loopback_device { + struct video_device *vdev; + /* pixel and stream format */ + struct v4l2_pix_format pix_format; + struct v4l2_captureparm capture_param; + /* buffers stuff */ + u8 *image; /* pointer to actual buffers data */ + int buffers_number; /* should not be big, 4 is a good choice */ + struct v4l2_buffer *buffers;/* inner driver buffers */ + int write_position; /* number of last written frame + 1 */ + long buffer_size; + /* sync stuff */ + atomic_t open_count; + int ready_for_capture;/* set to true when at least one writer opened + * device and negotiated format */ + wait_queue_head_t read_event; +}; + +/* types of opener shows what opener wants to do with loopback */ +enum opener_type { + UNNEGOTIATED = 0, + READER = 1, + WRITER = 2, +}; + +/* struct keeping state and type of opener */ +struct v4l2_loopback_opener { + enum opener_type type; + int buffers_number; + int position; /* number of last processed frame + 1 or + * write_position - 1 if reader went out of sync */ + struct v4l2_buffer *buffers; +}; + +/* module parameters */ +static int debug = 1; +module_param(debug, int, 0); +MODULE_PARM_DESC(debug, if debug output is enabled, values are 0, 2 or 3); + +static int max_buffers_number = 4; +module_param(max_buffers_number, int, 0); +MODULE_PARM_DESC(max_buffers_number, how many buffers should be allocated); + +static int max_openers = 10; +module_param(max_openers, int, 0); +MODULE_PARM_DESC(max_openers, how many users can open loopback device); + +/* module
[PATCH]saa7134-video.c: poll method lose race condition
saa7134-video.c: poll method lose race condition Signed-off-by: Figo.zhang figo.zh...@kolorific.com --- drivers/media/video/saa7134/saa7134-video.c |9 ++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/media/video/saa7134/saa7134-video.c b/drivers/media/video/saa7134/saa7134-video.c index 493cad9..95733df 100644 --- a/drivers/media/video/saa7134/saa7134-video.c +++ b/drivers/media/video/saa7134/saa7134-video.c @@ -1423,11 +1423,13 @@ video_poll(struct file *file, struct poll_table_struct *wait) { struct saa7134_fh *fh = file-private_data; struct videobuf_buffer *buf = NULL; + unsigned int rc = 0; if (V4L2_BUF_TYPE_VBI_CAPTURE == fh-type) return videobuf_poll_stream(file, fh-vbi, wait); if (res_check(fh,RESOURCE_VIDEO)) { + mutex_lock(fh-cap.vb_lock); if (!list_empty(fh-cap.stream)) buf = list_entry(fh-cap.stream.next, struct videobuf_buffer, stream); } else { @@ -1446,13 +1448,14 @@ video_poll(struct file *file, struct poll_table_struct *wait) } if (!buf) - return POLLERR; + rc = POLLERR; poll_wait(file, buf-done, wait); if (buf-state == VIDEOBUF_DONE || buf-state == VIDEOBUF_ERROR) - return POLLIN|POLLRDNORM; - return 0; + rc = POLLIN|POLLRDNORM; + mutex_unlock(fh-cap.vb_lock); + return rc; err: mutex_unlock(fh-cap.vb_lock); -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH]media/video: minor have assigned value twice
The variable minor have assigned value twice, the first time is in the initial video_devicedata struct in those drivers,pls see saa7134-video.c,line 2503. Signed-off-by: Figo.zhang figo.zh...@kolorific.com --- drivers/media/video/bt8xx/bttv-driver.c|1 - drivers/media/video/cx23885/cx23885-417.c |1 - drivers/media/video/cx88/cx88-core.c |1 - drivers/media/video/saa7134/saa7134-core.c |1 - 4 files changed, 0 insertions(+), 4 deletions(-) diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c index 23b7499..539ae45 100644 --- a/drivers/media/video/bt8xx/bttv-driver.c +++ b/drivers/media/video/bt8xx/bttv-driver.c @@ -4166,7 +4166,6 @@ static struct video_device *vdev_init(struct bttv *btv, if (NULL == vfd) return NULL; *vfd = *template; - vfd-minor = -1; vfd-v4l2_dev = btv-c.v4l2_dev; vfd-release = video_device_release; vfd-debug = bttv_debug; diff --git a/drivers/media/video/cx23885/cx23885-417.c b/drivers/media/video/cx23885/cx23885-417.c index 6f5df90..2943bfd 100644 --- a/drivers/media/video/cx23885/cx23885-417.c +++ b/drivers/media/video/cx23885/cx23885-417.c @@ -1742,7 +1742,6 @@ static struct video_device *cx23885_video_dev_alloc( if (NULL == vfd) return NULL; *vfd = *template; - vfd-minor = -1; snprintf(vfd-name, sizeof(vfd-name), %s %s (%s), dev-name, type, cx23885_boards[tsport-dev-board].name); vfd-parent = pci-dev; diff --git a/drivers/media/video/cx88/cx88-core.c b/drivers/media/video/cx88/cx88-core.c index 0e149b2..b4049de 100644 --- a/drivers/media/video/cx88/cx88-core.c +++ b/drivers/media/video/cx88/cx88-core.c @@ -1010,7 +1010,6 @@ struct video_device *cx88_vdev_init(struct cx88_core *core, if (NULL == vfd) return NULL; *vfd = *template; - vfd-minor = -1; vfd-v4l2_dev = core-v4l2_dev; vfd-parent = pci-dev; vfd-release = video_device_release; diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c index 2def6fe..37b1452 100644 --- a/drivers/media/video/saa7134/saa7134-core.c +++ b/drivers/media/video/saa7134/saa7134-core.c @@ -775,7 +775,6 @@ static struct video_device *vdev_init(struct saa7134_dev *dev, if (NULL == vfd) return NULL; *vfd = *template; - vfd-minor = -1; vfd-v4l2_dev = dev-v4l2_dev; vfd-release = video_device_release; vfd-debug = video_debug; -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH]saa7134-video.c: poll method lose race condition
Am Montag, den 18.05.2009, 10:13 +0800 schrieb figo.zhang: saa7134-video.c: poll method lose race condition Signed-off-by: Figo.zhang figo.zh...@kolorific.com --- drivers/media/video/saa7134/saa7134-video.c |9 ++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/media/video/saa7134/saa7134-video.c b/drivers/media/video/saa7134/saa7134-video.c index 493cad9..95733df 100644 --- a/drivers/media/video/saa7134/saa7134-video.c +++ b/drivers/media/video/saa7134/saa7134-video.c @@ -1423,11 +1423,13 @@ video_poll(struct file *file, struct poll_table_struct *wait) { struct saa7134_fh *fh = file-private_data; struct videobuf_buffer *buf = NULL; + unsigned int rc = 0; if (V4L2_BUF_TYPE_VBI_CAPTURE == fh-type) return videobuf_poll_stream(file, fh-vbi, wait); if (res_check(fh,RESOURCE_VIDEO)) { + mutex_lock(fh-cap.vb_lock); if (!list_empty(fh-cap.stream)) buf = list_entry(fh-cap.stream.next, struct videobuf_buffer, stream); } else { @@ -1446,13 +1448,14 @@ video_poll(struct file *file, struct poll_table_struct *wait) } if (!buf) - return POLLERR; + rc = POLLERR; poll_wait(file, buf-done, wait); if (buf-state == VIDEOBUF_DONE || buf-state == VIDEOBUF_ERROR) - return POLLIN|POLLRDNORM; - return 0; + rc = POLLIN|POLLRDNORM; + mutex_unlock(fh-cap.vb_lock); + return rc; err: mutex_unlock(fh-cap.vb_lock); Can you please give some description on what your patch might do something? Or are you a robot? Then, please give us your serial number, production year, and when we can expect you are out of duty and replaced ;) Cheers, Hermann -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH]saa7134-video.c: poll method lose race condition
Am Montag, den 18.05.2009, 11:53 +0800 schrieb figo.zhang: On Mon, 2009-05-18 at 05:07 +0200, hermann pitton wrote: Am Montag, den 18.05.2009, 10:13 +0800 schrieb figo.zhang: saa7134-video.c: poll method lose race condition Signed-off-by: Figo.zhang figo.zh...@kolorific.com --- drivers/media/video/saa7134/saa7134-video.c |9 ++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/media/video/saa7134/saa7134-video.c b/drivers/media/video/saa7134/saa7134-video.c index 493cad9..95733df 100644 --- a/drivers/media/video/saa7134/saa7134-video.c +++ b/drivers/media/video/saa7134/saa7134-video.c @@ -1423,11 +1423,13 @@ video_poll(struct file *file, struct poll_table_struct *wait) { struct saa7134_fh *fh = file-private_data; struct videobuf_buffer *buf = NULL; + unsigned int rc = 0; if (V4L2_BUF_TYPE_VBI_CAPTURE == fh-type) return videobuf_poll_stream(file, fh-vbi, wait); if (res_check(fh,RESOURCE_VIDEO)) { + mutex_lock(fh-cap.vb_lock); if (!list_empty(fh-cap.stream)) buf = list_entry(fh-cap.stream.next, struct videobuf_buffer, stream); } else { @@ -1446,13 +1448,14 @@ video_poll(struct file *file, struct poll_table_struct *wait) } if (!buf) - return POLLERR; + rc = POLLERR; poll_wait(file, buf-done, wait); if (buf-state == VIDEOBUF_DONE || buf-state == VIDEOBUF_ERROR) - return POLLIN|POLLRDNORM; - return 0; + rc = POLLIN|POLLRDNORM; + mutex_unlock(fh-cap.vb_lock); + return rc; err: mutex_unlock(fh-cap.vb_lock); Can you please give some description on what your patch might do something? Or are you a robot? Then, please give us your serial number, production year, and when we can expect you are out of duty and replaced ;) Cheers, Hermann hi, I just using the saa7134 chip to do a video capture card. The saa7134 driver in linux kernel, i found that the poll method have lose race condition for RESOURCE_VIDEO. It have better to add a mutex lock. OK then, but better stay away from the core files. On what kernel this is? Give us some copy/paste dmesg output for your card with i2c_scan=1. Don't lose tuner stuff on this. Thanks, Hermann -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH]saa7134-video.c: poll method lose race condition
On Mon, 2009-05-18 at 05:49 +0200, hermann pitton wrote: Am Montag, den 18.05.2009, 11:53 +0800 schrieb figo.zhang: On Mon, 2009-05-18 at 05:07 +0200, hermann pitton wrote: Am Montag, den 18.05.2009, 10:13 +0800 schrieb figo.zhang: saa7134-video.c: poll method lose race condition Signed-off-by: Figo.zhang figo.zh...@kolorific.com --- drivers/media/video/saa7134/saa7134-video.c |9 ++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/media/video/saa7134/saa7134-video.c b/drivers/media/video/saa7134/saa7134-video.c index 493cad9..95733df 100644 --- a/drivers/media/video/saa7134/saa7134-video.c +++ b/drivers/media/video/saa7134/saa7134-video.c @@ -1423,11 +1423,13 @@ video_poll(struct file *file, struct poll_table_struct *wait) { struct saa7134_fh *fh = file-private_data; struct videobuf_buffer *buf = NULL; + unsigned int rc = 0; if (V4L2_BUF_TYPE_VBI_CAPTURE == fh-type) return videobuf_poll_stream(file, fh-vbi, wait); if (res_check(fh,RESOURCE_VIDEO)) { + mutex_lock(fh-cap.vb_lock); if (!list_empty(fh-cap.stream)) buf = list_entry(fh-cap.stream.next, struct videobuf_buffer, stream); } else { @@ -1446,13 +1448,14 @@ video_poll(struct file *file, struct poll_table_struct *wait) } if (!buf) - return POLLERR; + rc = POLLERR; poll_wait(file, buf-done, wait); if (buf-state == VIDEOBUF_DONE || buf-state == VIDEOBUF_ERROR) - return POLLIN|POLLRDNORM; - return 0; + rc = POLLIN|POLLRDNORM; + mutex_unlock(fh-cap.vb_lock); + return rc; err: mutex_unlock(fh-cap.vb_lock); Can you please give some description on what your patch might do something? Or are you a robot? Then, please give us your serial number, production year, and when we can expect you are out of duty and replaced ;) Cheers, Hermann hi, I just using the saa7134 chip to do a video capture card. The saa7134 driver in linux kernel, i found that the poll method have lose race condition for RESOURCE_VIDEO. It have better to add a mutex lock. OK then, but better stay away from the core files. On what kernel this is? Give us some copy/paste dmesg output for your card with i2c_scan=1. Don't lose tuner stuff on this. Thanks, Hermann hi, hermann pitton ,i am using the git-kernel, the card have some hardware problems now. -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH]saa7134-video.c: poll method lose race condition
[big snip] hi, hermann pitton ,i am using the git-kernel, the card have some hardware problems now. If it is a new card, 2.6.27 is for sure the last stable. We might get it all down, but 2.6.30 looked promising again. Seems there is some hungry black hole in between ;) Cheers, Hermann -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html