Re: [PATCH 1/3] media: stkwebcam: Support for ASUS A6VM notebook added.
Hi Keiran, thanks for the review. On Mon, 26 Nov 2018 12:48:53 + Kieran Bingham wrote: > > I guess these strings match the strings produced by dmi-decode on your > laptop? > I didn't use dmidecode but I read the values from /sys/class/dmi/sys_vendor and /sys/class/dmi/product_name accordingly. Kind regards, Andreas
Re: [PATCH 2/3] media: stkwebcam: Bugfix for not correctly initialized camera
Hi Kieran, thanks for the review. On Mon, 26 Nov 2018 12:48:08 + Kieran Bingham wrote: > This one worries me a little... (but hopefully not too much) > As mentioned, I don't have any experience concerning video drivers;-). I found this patch more or less experimentally > > > Signed-off-by: Andreas Pape > > --- > > drivers/media/usb/stkwebcam/stk-webcam.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/media/usb/stkwebcam/stk-webcam.c > > b/drivers/media/usb/stkwebcam/stk-webcam.c > > index e61427e50525..c64928e36a5a 100644 > > --- a/drivers/media/usb/stkwebcam/stk-webcam.c > > +++ b/drivers/media/usb/stkwebcam/stk-webcam.c > > @@ -1155,6 +1155,8 @@ static int stk_vidioc_streamon(struct file *filp, > > if (dev->sio_bufs == NULL) > > return -EINVAL; > > dev->sequence = 0; > > + stk_initialise(dev); > > + stk_setup_format(dev); > > Glancing through the code base - this seems to imply to me that s_fmt > was not set/called (presumably by cheese) as stk_setup_format() is > called only by stk_vidioc_s_fmt_vid_cap() and stk_camera_resume(). > > Is this an issue? > > I presume that this means the camera will just operate in a default > configuration until cheese chooses something more specific. > Could be. I had a video but colours, sensitivity and possibly other things were crap or at least very "psychedelic". Therefore the idea came up that some kind of initialisation was missing here. > Actually - looking further this seems to be the case, as the mode is > simply stored in dev->vsettings.mode, and so this last setup stage will > just ensure the configuration of the hardware matches the driver. > > So it seems reasonable to me - but should it be set any earlier? > Perhaps not. > > > Are there any complaints when running v4l2-compliance on this device node? > Here is the output of v4l2-compliance: v4l2-compliance SHA : not available Driver Info: Driver name : stk Card type : stk Bus info : usb-:00:1d.7-5 Driver version: 4.15.18 Capabilities : 0x8521 Video Capture Read/Write Streaming Extended Pix Format Device Capabilities Device Caps : 0x0521 Video Capture Read/Write Streaming Extended Pix Format Compliance test for device /dev/video0 (not using libv4l2): Required ioctls: test VIDIOC_QUERYCAP: OK Allow for multiple opens: test second video open: OK test VIDIOC_QUERYCAP: OK test VIDIOC_G/S_PRIORITY: OK test for unlimited opens: OK Debug ioctls: test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported) test VIDIOC_LOG_STATUS: OK Input ioctls: test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported) test VIDIOC_G/S_FREQUENCY: OK (Not Supported) test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported) test VIDIOC_ENUMAUDIO: OK (Not Supported) test VIDIOC_G/S/ENUMINPUT: OK test VIDIOC_G/S_AUDIO: OK (Not Supported) Inputs: 1 Audio Inputs: 0 Tuners: 0 Output ioctls: test VIDIOC_G/S_MODULATOR: OK (Not Supported) test VIDIOC_G/S_FREQUENCY: OK (Not Supported) test VIDIOC_ENUMAUDOUT: OK (Not Supported) test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported) test VIDIOC_G/S_AUDOUT: OK (Not Supported) Outputs: 0 Audio Outputs: 0 Modulators: 0 Input/Output configuration ioctls: test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported) test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported) test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported) test VIDIOC_G/S_EDID: OK (Not Supported) Test input 0: Control ioctls: test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK test VIDIOC_QUERYCTRL: OK test VIDIOC_G/S_CTRL: OK test VIDIOC_G/S/TRY_EXT_CTRLS: OK test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) Standard Controls: 4 Private Controls: 0 Format ioctls: test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK test VIDIOC_G/S_PARM: OK test VIDIOC_G_FBUF: OK (Not Supported) test VIDIOC_G_FMT: OK warn: v4l2-test-formats.cpp(732): TRY_FMT cannot handle an invalid pixelformat. warn: v4l2-test-formats.cpp(733): This may or may not be a problem. For more information see: warn: v4l2-test-formats.cpp(734): http://www.mail-archive.com/linux-media@vger.kernel.org/msg56550.html test VIDIOC_TRY_FMT: OK warn
[PATCH 2/3] media: stkwebcam: Bugfix for not correctly initialized camera
stk_start_stream can only be called successfully if stk_initialise and stk_setup_format are called before. When using e.g. cheese it was observed that stk_initialise and stk_setup_format have not been called before which leads to no picture in that software whereas other tools like guvcview worked flawlessly. This patch solves the issue when using e.g. cheese. Signed-off-by: Andreas Pape --- drivers/media/usb/stkwebcam/stk-webcam.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/media/usb/stkwebcam/stk-webcam.c b/drivers/media/usb/stkwebcam/stk-webcam.c index e61427e50525..c64928e36a5a 100644 --- a/drivers/media/usb/stkwebcam/stk-webcam.c +++ b/drivers/media/usb/stkwebcam/stk-webcam.c @@ -1155,6 +1155,8 @@ static int stk_vidioc_streamon(struct file *filp, if (dev->sio_bufs == NULL) return -EINVAL; dev->sequence = 0; + stk_initialise(dev); + stk_setup_format(dev); return stk_start_stream(dev); } -- 2.17.1
[PATCH 1/3] media: stkwebcam: Support for ASUS A6VM notebook added.
The ASUS A6VM notebook has a built in stk11xx webcam which is mounted in a way that the video is vertically and horizontally flipped. Therefore this notebook is added to the special handling in the driver to automatically flip the video into the correct orientation. Signed-off-by: Andreas Pape --- drivers/media/usb/stkwebcam/stk-webcam.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/drivers/media/usb/stkwebcam/stk-webcam.c b/drivers/media/usb/stkwebcam/stk-webcam.c index e11d5d5b7c26..e61427e50525 100644 --- a/drivers/media/usb/stkwebcam/stk-webcam.c +++ b/drivers/media/usb/stkwebcam/stk-webcam.c @@ -116,6 +116,13 @@ static const struct dmi_system_id stk_upside_down_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "T12Rg-H") } }, + { + .ident = "ASUS A6VM", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "A6VM") + } + }, {} }; -- 2.17.1
[PATCH 0/3] Fix for webcam issues with ASUS A6VM
This set of patches makes the Syntek USB webcam integrated into Asus A6VM notebooks accessible again. Andreas Pape (3): media: stkwebcam: Support for ASUS A6VM notebook added. media: stkwebcam: Bugfix for not correctly initialized camera media: stkwebcam: Bugfix for wrong return values drivers/media/usb/stkwebcam/stk-webcam.c | 15 ++- 1 file changed, 14 insertions(+), 1 deletion(-) -- 2.17.1
[PATCH 3/3] media: stkwebcam: Bugfix for wrong return values
usb_control_msg returns in case of a successfully sent message the number of sent bytes as a positive number. Don't use this value as a return value for stk_camera_read_reg, as a non-zero return value is used as an error condition in some cases when stk_camera_read_reg is called. Signed-off-by: Andreas Pape --- drivers/media/usb/stkwebcam/stk-webcam.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/media/usb/stkwebcam/stk-webcam.c b/drivers/media/usb/stkwebcam/stk-webcam.c index c64928e36a5a..66a3665fc826 100644 --- a/drivers/media/usb/stkwebcam/stk-webcam.c +++ b/drivers/media/usb/stkwebcam/stk-webcam.c @@ -171,7 +171,11 @@ int stk_camera_read_reg(struct stk_camera *dev, u16 index, u8 *value) *value = *buf; kfree(buf); - return ret; + + if (ret < 0) + return ret; + else + return 0; } static int stk_start_stream(struct stk_camera *dev) -- 2.17.1
Bug in stkwebcam?
Hello, I recently updated my old 2006 Asus A6VM notebook with the latest 32bit Ubuntu 18.04 LTS (kernel 4.15.0) and found out that the driver for the webcam (Syntek USB2.0, USB ID 174f:a311) was not working. I only got error messages like "Sensor resetting failed" in dmesg when starting guvcview for example. Far from being an expert for video devices, I tried to debug this and figured out three patches to make the webcam work again on my old notebook (at least I get a video again ;-). I know the type of notebook and webcam is pretty old and the driver seems not to be actively maintained anymore although still being part of actual kernel versions. Is there still an interest in getting patches for such an old device? If yes, I could try to rebase my patches to the actual version of media_tree.git and post them to the mailing list. Kind regards, Andreas