Just reply to this thread with patches attached that need to go in this weekend.
Deadline for receiving these patches is Friday evening/Saturday morning UTC.
-JoJo
Change Driver version from 0.0.0 to 0.1.0
(better is we can make it 2008.09.xx, or xx.09.2008)
Do we have to remove this now ?
microdia-sysfs.c
-JoJo
Please find attached the latest patch set going in this weekend for testing.
627b is working OK with this changeset.
Summary of changes is attached below
Neekhil
commit d433b8b9cda850af433abd0199c082ef9da09826
Author: Neekhil <Nickel...@Gmail.com>
Date: Fri Sep 5 21:49:48 2008 +0030
Changes driver version to 2008.09
Changes the driver version to 2008.09
Signed-off-by: Neekhil <Nickel...@Gmail.com>
commit 86f859f57f447daa9ac82bffb6605e808eb2101d
Author: Neekhil <Nickel...@Gmail.com>
Date: Fri Sep 5 20:40:01 2008 +0030
Removes Support for sysfs debugging
Removes Support for sysfs debugging
- webcam functionality is not affected
- sysfs debugging is replaced by Debugfs
Signed-off-by: Neekhil <Nickel...@Gmail.com>
commit 574b763d5207c9d2b1df8ea98c6eca641f812fe4
Author: Neekhil <Nickel...@Gmail.com>
Date: Fri Sep 5 20:10:41 2008 +0030
Fixing checkpatch issues in microdia.h
Fixing some warning & errors reported by Checkpatch in microdia.h
Checkpatch seems to be broken over the following code
unsigned int streaming:1,
frozen:1,
drop_incomplete:1;
It complains
ERROR: spaces required around that ':' (ctx:VxV)
#253: FILE: microdia.h:253:
+ frozen:1,
^
ERROR: spaces required around that ':' (ctx:VxV)
#254: FILE: microdia.h:254:
+ drop_incomplete:1;
Leaving this for further review
Signed-off-by: Neekhil <Nickel...@Gmail.com>
commit 0e12b43f21e9f1320e8fa165bdd26915b81aadfe
Author: Neekhil <Nickel...@Gmail.com>
Date: Fri Sep 5 10:14:38 2008 +0030
Fixes warning about unnecessary NULL check before calling kfree()
Fixes warning about unnecessary NULL check before calling kfree()
- Removed warning WARNING: kfree(NULL) is safe this check is
probably not required
Signed-off-by: Neekhil <Nickel...@Gmail.com>
commit fd836b0db2b3d6c5372a380c7aeb4c027fc7629c
Author: Neekhil <Nickel...@Gmail.com>
Date: Fri Sep 5 10:01:43 2008 +0030
Removing extern from webcam specific functions declarations
Removing extern from webcam specific functions declarations
- Eg. extern int microdia_6240_initialize(struct usb_microdia *dev);
- Checkpatch no longer warns about extern functions defined in *.c
Signed-off-by: Neekhil <Nickel...@Gmail.com>
commit 05dce0d621704d4ef34558ba364bd11873faf83c
Author: Neekhil <Nickel...@Gmail.com>
Date: Fri Sep 5 09:55:27 2008 +0030
Fixes all errors reported by Checkpatch
Fixes all errors reported by Checkpatch
Signed-off-by: Neekhil <Nickel...@Gmail.com>
commit 042fa378ae93d983ad3b4e854937b03613635807
Author: Neekhil <Nickel...@Gmail.com>
Date: Fri Sep 5 09:48:12 2008 +0030
Fixing Checkpatch errors
Fixed all Checkpatch errors !
Signed-off-by: Neekhil <Nickel...@Gmail.com>
commit 9d70c739bd0d532c8bf9d5e6dbdc0d429c32ebde
Author: GWater <grew...@googlemail.com>
Date: Wed Sep 3 14:21:43 2008 +0200
Remove function usb_microdia_control_write_multi
Function is never used.
Cases where such a function might be necessary are rare and
can be expressed with other existing functions.
Signed-off-by: GWater <grew...@googlemail.com>
It is correct that certain debugging features have been moved into
"microdia-debugfs.c". But the ones remaining in "microdia-sysfs.c" where
left there on purpose because they provide *other* necessary interfaces.
Just take a look at the doxygen comments on both files - you'll find
their purpose really is quite different.
NO-GO! for patch 0007.
GWater
Are you two playing a game ?
Grewater rips out a function (patch 0001..)
Neekhil rips out a whole filesystem interface(patch 0007...)
Hey this looks like fun, can I rip out the usb interface, pretty please ;-)
Don't worry, we'll all, together reconsider the usecase for both sysfs
& debugfs before removing anything.
What can we do for the more pressing issues, namely scaling in the
bridge breaking skype etc.
1. Revisit decoder functions, document them in pages section.
2. (need more ideas ?)
Also inviting ideas for tackling low FPS issue that some of the
webcam(like mine) face.
-JoJo
GWater
0001 one implements manual exposure for the soi968 (and actually most
other ov96xx) sensor. Since no one asked for it this is only linked to 624e.
0002 adds sn9c20x_set_exposure. Two things are new: minimal exposure
value is now 0x0505. I hope this fixes the freezing issues. Also the
default value for exposure was set from 20 to 2 percent. This should
only affect sn9c20x_set_exposure because all other cams which have
sensor specific exposure functions do also have an auto-exposure feature
which is turned on by default.
sn9c20x_set_exposure will be the default exposure controller for all
cams which don't have their own sensor specific functions. This is how
we handled it with all other functions - so why not with exposure in the
same way?
GWater
We need your help in testing these patches, so
if your webcam has a SN9C201/SN9C202 bridge controller go ahead and
read this email and test out the fresh source code
if you don't remember whether its SN9C20x bridge, check here
https://groups.google.com/group/microdia/web/list-of-known-microdia-webcams?version=118
I have attached 10 patches that we have received so far,
So you guys can start testing your webcam with these patches.
It'll take you around ~1 hour to read instructions, run your tests &
report/email us the result(webcam's working fine ? etc)
The initial guides are here
https://groups.google.com/group/microdia/web/using-git-with-microdia?version=37
https://groups.google.com/group/microdia/web/testing-microdia-driver-draft?version=55
One you download the driver source code from git, you need to apply
these attached patches
Example:-
To apply all patches, copy these *.patch files into the driver source
directory & execute
$ git am ./*.patch
To apply just 1 patch
$ git am ./0008-Changes-driver-version-to-2008.09.patch
To apply patch 1 to patch 5
$ git am ./000[1-5]*.patch
In case you made a mistake and want to revert to the original source
code (without these patches) execute
$ git reset --hard origin/HEAD
To see which patches are applied to source code(via git am command) execute
$ git log --color
To compile/install the driver follow the links to guides provided above.
To test the video streaming from your webcam model use only Mplayer
(known issues with Skype etc ! )
mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0
-fps 20 -vo x11
In order to adjust brightness/color etc use the following utility
Universal control panel for v4l2 devices get your binary packages here,
http://www.debian-multimedia.org/dists/stable/main/binary-i386/package/v4l2ucp.php
or here,
http://www.debian-multimedia.org/dists/stable/main/binary-amd64/package/v4l2ucp.php
launch it by executing the following command
$ v4l2ucp
This is a GUI to adjust the picture quality.
Lastly, after all that,
IF your webcam is working fine with all these, we would like to know !
(write a simple email, tell us USB-id of your webcam, output of $ uname -a)
ELSE we would like you to tell us which patch is making your webcam misbehave.
also an output of $dmesg & mplayer log will help as well.
To enable error debugging info in the driver execute
# insmod microdia.ko log_level=4
We are all eagerly awaiting your emails
-JoJo
GWater
GWater
So folks should write
0c45:624e, Linux v2.6.24 working fine
-JoJo
GWater
...here, there are two screenshot too.
--
Arch Linux Developer (voidnull)
AUR & Pacman Italian Translations
Works fine for me
0c45:624f
and a custom kernel named test but all-day-use
Linux RunningPenguin 2.6.24.2test #2 SMP Thu Feb 14 18:19:24 CET 2008
x86_64 GNU/Linux
BTW there is an older pb with flip_detect : it's not detected live e.g.
you must reload mplayer to make it take effect...
Wonderful work !
0c45:62b3,
If webcam is streaming then microfone does not work?
(this was the issue reported with SN9C202 if I remember correctly)
I suppose thats still the problem...
2 ISO endpoints 1 for video 1 for audio,
microdia driver seems to be reserving all usb bandwidth for video ISO EP
audio driver is unable receive from the audio ISO EP.
-JoJo
Hi Jonathan
tell us more about this issue a bit...
-JoJo
If you run mplayer and then rotate the cam, no flip detection. But if
you quit mplayer (cam rotated) and re-run it, then it is flipped.
Then if you rotate the cam _without_ mplayer running you must launch
mplayer TWO times to have the flip.
I said older because these patches aren't guilty since the current head
has this behavior two (I tested the driver for a while not... and read
only mails).
Only small issue. The image is very good and fluently.
Johndescs
I have tested the patches.
logs :
microdia: Microdia USB 2.0 Webcam - 0C45:627B plugged-in.
microdia: Microdia USB 2.0 Webcam is now controlling video device /dev/video1
usbcore: registered new interface driver usb_microdia_driver
microdia: v2008.09 : Microdia USB 2.0 Webcam Driver
mplayer does not work : all green picture.
gqcam : very bad picture. see the attached picture.
So, this is negative.
--
Alain rpnpif
GWater
Here is the detail from mplayer :
$ mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video1 -fps
20 -vo x11
MPlayer 1.0-1.rc1.11.5plf2007.1-4.1.2 (C) 2000-2006 MPlayer Team
CPU: AMD Athlon(tm) XP 1600+ (Family: 6, Model: 6, Stepping: 2)
CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
Compiled with runtime CPU detection.
98 audio & 216 video codecs
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
Playing tv://.
TV file format detected.
Selected driver: v4l2
name: Video 4 Linux 2 input
author: Martin Olschewski <olsch...@zpr.uni-koeln.de>
comment: first try, more to come ;-)
Selected device: Microdia USB 2.0 Webcam Driver
Capabilites: video capture read/write streaming
supported norms:
inputs: 0 = Webcam;v4l2: ioctl get input failed: Invalid argument
Current input: 1
Current format: YUV420
v4l2: ioctl set format failed: Invalid argument
v4l2: ioctl enum norm failed: Invalid argument
Error: Cannot set norm!
Selected input hasn't got a tuner!
v4l2: ioctl set mute failed: Invalid argument
v4l2: ioctl query control failed: Invalid argument
v4l2: ioctl query control failed: Invalid argument
==========================================================================
Opening video decoder: [raw] RAW Uncompressed Video
VDec: vo config request - 640 x 480 (preferred colorspace: Planar I420)
VDec: using Planar I420 as output csp (no 0)
Movie-Aspect is undefined - no prescaling applied.
VO: [x11] 640x480 => 640x480 Planar I420 [zoom]
SwScaler: using unscaled yuv420p -> rgb32 special converter
Selected video codec: [rawi420] vfm: raw (RAW I420)
==========================================================================
Audio: no sound
FPS forced to be 20.000 (ftime: 0.050).
Starting playback...
v4l2: ioctl dequeue buffer failed: Invalid argument, idx = 0
v4l2: ioctl query buffer failed: Invalid argument, idx = 0
Exception en point flottant.0% 0 0
(End of issue)
The leds light on during running mplayer.
Attached the green image.
--
Alain rpnpif
If I run gqcam first, the image is bad (see a previous message).
If I run mplayer first, The image from mplayer is green (see my just previous
message), but if now I run gqcam, the image is good ! But too dark.
Is mplayer makes a good init of the webcam but it cannot display the image ?
But gqcam does not make a good init but a good display ?
Attached an image from gqcam.
--
Alain rpnpif
then launch mplayer (same command as before), forget gqcam etc
I suspect a "register write" is failing,
try unplugging & repluggin the webcam, then run mplayer again
I hope this bug you are reporting is with USB 2.0 ?
-JoJo
mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video1 -fps
20 -vo x11
got logs :
usbcore: registered new interface driver usb_microdia_driver
usb 3-5: new high speed USB device using ehci_hcd and address 2
usb 3-5: configuration #1 chosen from 1 choice
microdia: isoc_init() submit_urb 198 failed with error -45
microdia: isoc_init() submit_urb 199 failed with error -45
microdia: Iso frame 0 of USB has error -18
microdia: Iso frame 1 of USB has error -18
microdia: Iso frame 2 of USB has error -18
microdia: Iso frame 3 of USB has error -18
microdia: Iso frame 4 of USB has error -18
microdia: Iso frame 5 of USB has error -18
microdia: Iso frame 6 of USB has error -18
microdia: Iso frame 7 of USB has error -18
microdia: Iso frame 8 of USB has error -18
microdia: Iso frame 9 of USB has error -18
microdia: Iso frame 0 of USB has error -18
microdia: Iso frame 1 of USB has error -18
microdia: Iso frame 2 of USB has error -18
microdia: Iso frame 3 of USB has error -18
microdia: Iso frame 4 of USB has error -18
microdia: Iso frame 5 of USB has error -18
microdia: Iso frame 6 of USB has error -18
microdia: Iso frame 7 of USB has error -18
microdia: Iso frame 8 of USB has error -18
microdia: Iso frame 9 of USB has error -18
microdia: Error (-45) re-submitting urb in microdia_isoc_handler.
microdia: Iso frame 0 of USB has error -18
microdia: Iso frame 1 of USB has error -18
microdia: Iso frame 2 of USB has error -18
microdia: Iso frame 3 of USB has error -18
microdia: Iso frame 4 of USB has error -18
microdia: Iso frame 5 of USB has error -18
microdia: Iso frame 6 of USB has error -18
microdia: Iso frame 7 of USB has error -18
microdia: Iso frame 8 of USB has error -18
microdia: Iso frame 9 of USB has error -18
microdia: Error (-45) re-submitting urb in microdia_isoc_handler.
microdia: [E] Invalid buffer type (1) and/or memory (0).
--
Alain rpnpif
Disconnecting the webcam generates this logs :
usb 3-5: USB disconnect, address 2
=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.21.5-1mdv #1
-------------------------------------------------------
khubd/1059 is trying to acquire lock:
(videodev_lock){--..}, at: [<c02c4615>] mutex_lock+0x8/0xa
but task is already holding lock:
(open_lock#2){--..}, at: [<c02c4615>] mutex_lock+0x8/0xa
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #1 (open_lock#2){--..}:
[<c01327fc>] __lock_acquire+0x999/0xb25
[<c0132d41>] lock_acquire+0x56/0x6f
[<c02c44a9>] __mutex_lock_slowpath+0xdc/0x240
[<c02c4615>] mutex_lock+0x8/0xa
[<f9058035>] v4l_microdia_open+0x11/0x47 [microdia]
[<f8c28898>] video_open+0xa7/0xf6 [videodev]
[<c0165f76>] chrdev_open+0xf5/0x125
[<c016274e>] __dentry_open+0xb8/0x169
[<c0162880>] nameidata_to_filp+0x27/0x37
[<c01628c8>] do_filp_open+0x38/0x40
[<c0162915>] do_sys_open+0x45/0xca
[<c01629d2>] sys_open+0x1c/0x1e
[<c0103c64>] sysenter_past_esp+0x5d/0x99
[<ffffffff>] 0xffffffff
-> #0 (videodev_lock){--..}:
[<c01326dd>] __lock_acquire+0x87a/0xb25
[<c0132d41>] lock_acquire+0x56/0x6f
[<c02c44a9>] __mutex_lock_slowpath+0xdc/0x240
[<c02c4615>] mutex_lock+0x8/0xa
[<f8c250b3>] video_unregister_device+0x13/0x50 [videodev]
[<f9057cd9>] v4l_microdia_unregister_video_device+0x3a/0x41 [microdia]
[<f905707f>] usb_microdia_delete+0x27/0x31 [microdia]
[<c01c4cf5>] kref_put+0x62/0x70
[<f9057049>] usb_microdia_disconnect+0x49/0x58 [microdia]
[<f8bbf80a>] usb_unbind_interface+0x47/0x8a [usbcore]
[<c0229f2a>] __device_release_driver+0x74/0x90
[<c022a341>] device_release_driver+0x20/0x36
[<c0229986>] bus_remove_device+0x73/0x82
[<c022807f>] device_del+0x14b/0x1af
[<f8bbd328>] usb_disable_device+0x5f/0xbc [usbcore]
[<f8bb9f5a>] usb_disconnect+0x85/0x112 [usbcore]
[<f8bbaca0>] hub_thread+0x34f/0xa36 [usbcore]
[<c0128b19>] kthread+0xa3/0xce
[<c0104ef7>] kernel_thread_helper+0x7/0x10
[<ffffffff>] 0xffffffff
other info that might help us debug this:
1 lock held by khubd/1059:
#0: (open_lock#2){--..}, at: [<c02c4615>] mutex_lock+0x8/0xa
stack backtrace:
[<c010524c>] show_trace_log_lvl+0x1a/0x2f
[<c01057cc>] show_trace+0x12/0x14
[<c0105850>] dump_stack+0x16/0x18
[<c0130fc5>] print_circular_bug_tail+0x5f/0x68
[<c01326dd>] __lock_acquire+0x87a/0xb25
[<c0132d41>] lock_acquire+0x56/0x6f
[<c02c44a9>] __mutex_lock_slowpath+0xdc/0x240
[<c02c4615>] mutex_lock+0x8/0xa
[<f8c250b3>] video_unregister_device+0x13/0x50 [videodev]
[<f9057cd9>] v4l_microdia_unregister_video_device+0x3a/0x41 [microdia]
[<f905707f>] usb_microdia_delete+0x27/0x31 [microdia]
[<c01c4cf5>] kref_put+0x62/0x70
[<f9057049>] usb_microdia_disconnect+0x49/0x58 [microdia]
[<f8bbf80a>] usb_unbind_interface+0x47/0x8a [usbcore]
[<c0229f2a>] __device_release_driver+0x74/0x90
[<c022a341>] device_release_driver+0x20/0x36
[<c0229986>] bus_remove_device+0x73/0x82
[<c022807f>] device_del+0x14b/0x1af
[<f8bbd328>] usb_disable_device+0x5f/0xbc [usbcore]
[<f8bb9f5a>] usb_disconnect+0x85/0x112 [usbcore]
[<f8bbaca0>] hub_thread+0x34f/0xa36 [usbcore]
[<c0128b19>] kthread+0xa3/0xce
[<c0104ef7>] kernel_thread_helper+0x7/0x10
=======================
Regards.
--
Alain rpnpif
Please close this thread, no more replies,
I have pushed 10 out of 11 patches to repo.or.cz, leaving out sysfs patch
Neekhil