Date: Fri, 16 Aug 2013 18:00:08 +0100 From: Srinivas KANDAGATLA <srinivas.kandagatla@st.com> To: Hans Petter Selasky <hans.petter.selasky@bitfrost.no> Cc: "freebsd-multimedia@freebsd.org" <freebsd-multimedia@freebsd.org>, Juergen Lock <nox@jelal.kn-bremen.de>, Mauro Carvalho Chehab <mchehab@redhat.com> Subject: Re: New version of webcamd [3.11.0.1] ready for testing Message-ID: <520E5A98.9060004@st.com> In-Reply-To: <zarafa.520e5885.7648.5a3ce2f304daebfb@mail.lockless.no> References: <51A10BD5.1050107@bitfrost.no> <zarafa.520e5885.7648.5a3ce2f304daebfb@mail.lockless.no>
next in thread | previous in thread | raw e-mail | index | archive | help
+ adding Mauro Chehab On 16/08/13 17:51, Hans Petter Selasky wrote: > Hi Jurgen, > > I think this is something broken at the Linux side or I have sources out of sync. > You should just ignore the NULL function pointer, hence the technisat driver does not have these callbacks. I agree, I was under the impression that open/close are mandatory. Can you please send a patch to fix this to linux-media@vger.kernel.org. Thanks, srini > Change: > if (!rdev->users++) > rval = rdev->open(rdev); > Into: > if (!rdev->users++ && rdev->open != NULL) > rval = rdev->open(rdev); > > And the same for the: > > rdev->close > > case. > > CC'ed: Srinivas KANDAGATLA > > https://lkml.org/lkml/2013/7/22/93 > > --HPS > > > > -----Original message----- >> From:Juergen Lock <nox@jelal.kn-bremen.de <mailto:nox@jelal.kn-bremen.de> > >> Sent: Friday 16th August 2013 18:05 >> To: Hans Petter Selasky <hans.petter.selasky@bitfrost.no <mailto:hans.petter.selasky@bitfrost.no> > >> Cc: freebsd-multimedia@freebsd.org <mailto:freebsd-multimedia@freebsd.org> >> Subject: Re: New version of webcamd [3.11.0.1] ready for testing >> >> On Fri, Aug 16, 2013 at 02:23:06PM +0200, Hans Petter Selasky wrote: >>> Hi, >> Hi! >>> >>> There is a new version of webcamd available. Changes: >>> >>> - Update to the latest and greatest Linux V4L codebase (Linux 3.11). >>> >>> Please test and report back! >>> >>> svn --username anonsvn --password anonsvn \ >>> checkout svn://svn.turbocat.net/i4b/trunk/ports >>> >> Segfaults with technisat-usb2: >> >> Linux video capture interface: v2.00 >> lirc_dev: IR Remote Control driver registered, major 14 >> IR NEC protocol handler initialized >> IR RC5(x) protocol handler initialized >> IR RC6 protocol handler initialized >> IR JVC protocol handler initialized >> IR Sony protocol handler initialized >> IR RC5 (streamzap) protocol handler initialized >> IR SANYO protocol handler initialized >> IR LIRC bridge handler initialized >> b2c2-flexcop: B2C2 FlexcopII/II(b)/III digital TV receiver chip loaded successfully >> uvcvideo: Unable to create debugfs directory >> USB Video Class driver (1.1.1) >> cpia2: V4L-Driver for Vision CPiA2 based cameras v3.0.1 >> au0828 driver loaded >> pvrusb2: V4L in-tree version:Hauppauge WinTV-PVR-USB2 MPEG2 Encoder/Tuner >> pvrusb2: Debug mask is 31 (0x1f) >> USBVision USB Video Device Driver for Linux : 0.9.11 >> Em28xx: Initialized (Em28xx dvb Extension) extension >> virtual DVB server adapter driver, version 1.0-hps, (c) 2011 Hans Petter Selasky >> Attached to ugen5.2[0] >> technisat-usb2: set alternate setting >> technisat-usb2: firmware version: 17.63 >> dvb-usb: found a 'Technisat SkyStar USB HD (DVB-S/S2)' in warm state. >> dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. >> DVB: registering new adapter (Technisat SkyStar USB HD (DVB-S/S2)) >> dvb-usb: MAC address: 0x8014c3188M >> stv6110x_attach: Attaching STV6110x >> DBG: : dvb_register_frontend: >> INFO: : DVB: registering adapter 0 frontend 0 (Technisat SkyStar USB HD (DVB-S/S2))... >> DBG: : dvb_frontend_clear_cache: Clearing cache for delivery system 5 >> Registered IR keymap rc-technisat-usb2 >> rc0: IR-receiver inside an USB DVB receiver as webcamd >> DBG: rc0: lirc_dev: lirc_register_driver: sample_rate: 0 >> INFO: rc0: lirc_dev: driver ir-lirc-codec (technisat-usb2) registered at minor = 0 >> dvb-usb: schedule remote query interval to 100 msecs. >> dvb-usb: Technisat SkyStar USB HD (DVB-S/S2) successfully initialized and connected. >> Waiting for HAL USB device. >> Creating /dev/dvb/adapter0/demux0 >> Creating /dev/dvb/adapter0/dvr0 >> DBG: : dvb_frontend_open: >> DBG: : dvb_frontend_release: >> Creating /dev/dvb/adapter0/frontend0 >> DBG: rc0: lirc_dev (ir-lirc-codec (technisat-usb2)[0]): open called >> zsh: segmentation fault (core dumped) webcamd-31101x -d 5.2 -H >> # gdb $(which webcamd-31101x ) webcamd.core >> GNU gdb 6.1.1 [FreeBSD] >> Copyright 2004 Free Software Foundation, Inc. >> GDB is free software, covered by the GNU General Public License, and you are >> welcome to change it and/or distribute copies of it under certain conditions. >> Type "show copying" to see the conditions. >> There is absolutely no warranty for GDB. Type "show warranty" for details. >> This GDB was configured as "amd64-marcel-freebsd"... >> >> warning: core file may not match specified executable file. >> Core was generated by `webcamd'. >> Program terminated with signal 11, Segmentation fault. >> Reading symbols from /usr/local/lib/libdbus-1.so.3...done. >> Loaded symbols for /usr/local/lib/libdbus-1.so.3 >> Reading symbols from /usr/local/lib/libhal.so.1...done. >> Loaded symbols for /usr/local/lib/libhal.so.1 >> Reading symbols from /usr/lib/libusb.so.2...done. >> Loaded symbols for /usr/lib/libusb.so.2 >> Reading symbols from /usr/local/lib/libcuse4bsd.so.1...done. >> Loaded symbols for /usr/local/lib/libcuse4bsd.so.1 >> Reading symbols from /lib/libutil.so.8...done. >> Loaded symbols for /lib/libutil.so.8 >> Reading symbols from /lib/libthr.so.3...done. >> Loaded symbols for /lib/libthr.so.3 >> Reading symbols from /lib/libc.so.7...done. >> Loaded symbols for /lib/libc.so.7 >> Reading symbols from /libexec/ld-elf.so.1...done. >> Loaded symbols for /libexec/ld-elf.so.1 >> #0 0x0000000000000000 in ?? () >> [New Thread 8014087c0 (LWP 100307/webcamd)] >> [New Thread 801408980 (LWP 100306/webcamd)] >> [New Thread 801408b40 (LWP 100305/webcamd)] >> [New Thread 801408d00 (LWP 100304/webcamd)] >> [New Thread 801409080 (LWP 100303/webcamd)] >> [New Thread 801409240 (LWP 100302/webcamd)] >> [New Thread 801409400 (LWP 100301/webcamd)] >> [New Thread 8014095c0 (LWP 100299/webcamd)] >> [New Thread 801409940 (LWP 100298/webcamd)] >> [New Thread 801409b00 (LWP 100289/webcamd)] >> [New Thread 801409cc0 (LWP 100288/webcamd)] >> [New Thread 801409e80 (LWP 100287/webcamd)] >> [New Thread 80140a3c0 (LWP 100274/webcamd)] >> [New Thread 80140a740 (LWP 100265/webcamd)] >> [New Thread 80140aac0 (LWP 100260/webcamd)] >> [New Thread 80140ac80 (LWP 100229/webcamd)] >> [New Thread 80140ae40 (LWP 100159/webcamd)] >> [New Thread 80144f1c0 (LWP 100146/webcamd)] >> [New Thread 8014041c0 (LWP 100541/initial thread)] >> (gdb) bt >> #0 0x0000000000000000 in ?? () >> #1 0x00000000005abcca in rc_open (rdev=0x8015aea00) >> at media_tree/drivers/media/rc/rc-main.c:711 >> #2 0x00000000005ae488 in lirc_dev_fop_open (inode=0x801499508, >> file=0x801499520) at media_tree/drivers/media/rc/lirc_dev.c:472 >> #3 0x000000000070e8db in linux_open (f_v4b=288, fflags=0) >> at kernel/linux_file.c:57 >> #4 0x0000000000715a21 in v4b_create (unit=-1) at webcamd.c:353 >> #5 0x0000000000716636 in main (argc=4, argv=0x7fffffffe2b8) at webcamd.c:719 >> (gdb) fr 1 >> #1 0x00000000005abcca in rc_open (rdev=0x8015aea00) >> at media_tree/drivers/media/rc/rc-main.c:711 >> 711 rval = rdev->open(rdev); >> (gdb) p rdev >> $1 = (struct rc_dev *) 0x8015aea00 >> (gdb) p *rdev >> $2 = {dev = {minor = 0, busnum = 0, kobj = {parent = 0x0}, refcount = { >> refcount = {counter = 1}}, release = 0, driver = 0x0, >> parent = 0x8014be000, type = 0x954700, platform_data = 0x0, >> driver_data = 0x8015aea00, fops = 0x0, cdev = 0x0, class = 0x9545a0, >> driver_static = {name = 0x0, owner = 0x0, pm = 0x0}, devt = 0, >> name = "rc0", '\0' <repeats 60 times>, bus_name = '\0' <repeats 31 times>, >> bus_id = '\0' <repeats 31 times>}, >> input_name = 0x77e958 "IR-receiver inside an USB DVB receiver", >> input_phys = 0x8014c42a8 "usb-/dev/usb-/dev/usb/ir0", input_id = { >> bustype = 3, vendor = 5367, product = 1280, version = 1}, >> driver_name = 0x787852 "technisat-usb2", >> map_name = 0x787840 "rc-technisat-usb2", rc_map = {scan = 0x80148ae00, >> size = 64, len = 33, alloc = 512, rc_type = RC_TYPE_RC5, >> name = 0x770887 "rc-technisat-usb2", lock = <incomplete type>}, lock = { >> sem = {value = 0, owner = 0x8014041c0}}, devno = 0, raw = 0x80148ac00, >> input_dev = 0x8015b9400, driver_type = RC_DRIVER_IR_RAW, idle = false, >> allowed_protos = 262143, enabled_protocols = 18446744073709551615, >> users = 1, scanmask = 0, priv = 0x8014c2000, keylock = <incomplete type>, >> keypressed = false, keyup_jiffies = 0, timer_keyup = {entry = { >> tqe_next = 0x0, tqe_prev = 0x0}, function = 0x5ab930 <ir_timer_keyup>, >> expires = 0, data = 34382473728}, last_keycode = 0, last_scancode = 0, >> last_toggle = 0 '\0', timeout = 0, min_timeout = 0, max_timeout = 0, >> rx_resolution = 0, tx_resolution = 0, change_protocol = 0, open = 0, >> ---Type <return> to continue, or q <return> to quit--- >> close = 0, s_tx_mask = 0, s_tx_carrier = 0, s_tx_duty_cycle = 0, >> s_rx_carrier_range = 0, tx_ir = 0, s_idle = 0, s_learning_mode = 0, >> s_carrier_report = 0} >> (gdb) p rdev->open >> $3 = (int (*)(struct rc_dev *)) 0 >> (gdb) q >> >> Thanx, >> Juergen >> >> PS: pctv452e (TT-S2 3600) and dual dib0700 seem to work so far. >> > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?520E5A98.9060004>