Commit Graph

128787 Commits

Author SHA1 Message Date
Laurent Pinchart 3afedb9585 [media] uvcvideo: Don't skip erroneous payloads
Instead of skipping the payload completely, which would make the
resulting image corrupted anyway, store the payload normally and mark
the buffer as erroneous. If the no_drop module parameter is set to 1 the
buffer will then be passed to userspace, and tt will then be up to the
application to decide what to do with the buffer.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:14:31 -02:00
Laurent Pinchart 0c6a3b268e [media] uvcvideo: Make uvc_commit_video() static
The function is not used outside of its compilation unit. Make it
static.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:14:04 -02:00
Laurent Pinchart 4eb2697e0a [media] uvcvideo: Add support for LogiLink Wireless Webcam
The camera requires the PROBE_MINMAX quirk. Add a corresponding entry in
the device IDs list.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:13:52 -02:00
Laurent Pinchart b10c55d808 [media] uvcvideo: Remove duplicate definitions of UVC_STREAM_* macros
The macros are defined in both drivers/media/video/uvc/uvc_video.c and
include/linux/usb/video.h. Remove definitions from the former.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:13:40 -02:00
Laurent Pinchart 24c3aae0c7 [media] uvcvideo: Handle uvc_init_video() failure in uvc_video_enable()
Turn streaming off (by selecting alternate setting 0) and disable the
video buffers queue in the uvc_video_enable() error path.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:13:29 -02:00
Laurent Pinchart 6998b6fb4b [media] uvcvideo: Use videobuf2-vmalloc
Replace the current video buffers queue implementation with
videobuf2-vmalloc.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:13:06 -02:00
Laurent Pinchart 3d95e93257 [media] uvcvideo: Move fields from uvc_buffer::buf to uvc_buffer
Add mem, length and bytesused fields to the uvc_buffer structure and use
them instead of accessing the uvc_buffer::buf m.offset, length and
bytesused fields directly. This prepares the driver to the conversion to
videobuf2.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 11:12:05 -02:00
Thierry Reding 4be9c8fb58 [media] tm6000: Fix check for interrupt endpoint
Checking for &dev->int_in is useless because it returns the address of
the embedded struct tm6000_endpoint, which will always be positive and
therefore true.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 10:47:37 -02:00
Thierry Reding 875f0e3da1 [media] tm6000: Fix bad indentation
Function parameters on subsequent lines should never be aligned with the
function name but rather be indented.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 10:47:24 -02:00
Thierry Reding fcd44b9efb [media] tm6000: Fix fast USB access quirk
The original patch used the fast USB quirk to enable fast access to
registers in the tm6000_read_write_usb(). The applied patch moved the
check to the tm6000_reset(), probably due to some merge conflicts.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 10:46:58 -02:00
Guennadi Liakhovetski 1fc2b5f7fb [media] V4L: cosmetic clean up
Improve the use of the WARN_ON() macro and use a local variable, instead
of reduntantly dereferencing a pointer in v4l2-dev.c

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:47:21 -02:00
Jean-François Moine 885f3cad98 [media] gspca - zc3xx: Bad initialization of zc305/gc0303
Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:27:36 -02:00
Jean-François Moine b267b73d5a [media] gspca - topro: Lower the frame rate in 640x480 for the tp6800
The topro webcams don't support 30fps in 640x480 mode.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:27:08 -02:00
Jean-François Moine 41f09322e9 [media] gspca - sonixj: Change color control for sensor po2030n
Adjustment of the colors by the po2030n is finer than by the bridge controls.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:26:46 -02:00
Jean-François Moine b4b0107137 [media] gspca - sonixj: Bad sensor mode at start time
The 'open-drain' mode was not reset when starting the webcams.
This problem was introduced by commit 0e4d413af1 and
its exact effects are unknown.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:26:27 -02:00
Jean-François Moine 6121ca572f [media] gspca: Remove the useless variable 'nbalt'
As the alternate settings are now sorted in gspca main,
the variable 'nbalt' is no more useful.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:26:11 -02:00
Jean-François Moine a67648797a [media] gspca: Remove the useless variable 'reverse_alts'
The alternate settings are now sorted in gspca main, so the flag
'reverse_alts' is no more useful.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:25:27 -02:00
Malcolm Priestley 50815707ee [media] it913x: multiple devices on system. Copy ite_config to priv area
If there are two or more different it913x devices on the system they share the same
ite_config and over write its settings.

To over come this, the ite_config is copied to the priv area.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:24:38 -02:00
Malcolm Priestley 15157c506d [media] it913x add retry to USB bulk endpoints and IO
This a bus repeater for it913x devices. Commands usually fail because of other
activity on the USB bus.

Bulk failures that report -ETIMEDOUT or -EBUSY are repeated.

Enpoints that return actlen not equal len request -EAGAIN.

The retry is set at 10.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 09:12:21 -02:00
Malcolm Priestley 5e642c06b5 [media] it9135: add support for IT9135 9005 devices
Support add for IT9135 9005 devices

With this patch IT9135 devices now move to using
dvb-usb-it9135-01.fw firmware
IT9137 remain on previous firmware.

IT9135 devices seem more stable on this firmware.

If the user wishes to remain on it9137 firmware they can change
back using firmware=1 module option.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 08:55:29 -02:00
Malcolm Priestley b699029148 [media] dvb-usb/it913x: multi firmware loader
Multi firmware loader
 This uses scatter write firmware headers
 The firmware must start with 03 XX 00
 and be the extract firmware length.

 I have tried all available firmwares with this loader.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 08:55:27 -02:00
Malcolm Priestley c725ff6973 [media] it913x: support for NEC extended keys
Add support for NEC extended keys.

The default remote has now changed to RC_MAP_MSI_DIGIVOX_III

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 08:14:52 -02:00
Malcolm Priestley 990f49af3f [media] it913x: support for different tuner regs
There appears to be differences in the tuner registers
on earlier IT9135 devices.

Using the current IT9137 settings cause corruptions on
some channels

This patch is in preparation for multi firmware loading and
current unsupported types.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 08:13:27 -02:00
Dan Carpenter 773ddbd228 [media] saa7164: fix endian conversion in saa7164_bus_set()
The msg->command field is 32 bits, and we should fill it with a call
to cpu_to_le32().  The current code is broke on big endian systems.
On little endian systems it truncates the 32 bit value to 16 bits
which probably still works fine.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 08:07:41 -02:00
Malcolm Priestley ed942c5074 [media] it913x-fe: more user and debugging info
More debugging and user info from it913x-fe.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 08:03:29 -02:00
Malcolm Priestley 9c1133c7c8 [media] it913x: endpoint size changes
Previously endpoint had been aligned to packet size (128)

Some early it9135 devices appear to have problems with this.

This patch now aligns with mpeg TS size (188)

With the pid filter off max size is increased to the maxmium
size (348 * 188)

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-11 07:58:25 -02:00
Mauro Carvalho Chehab 48763e2c6e [media] drxk: Switch the delivery system on FE_SET_PROPERTY
The DRX-K doesn't change the delivery system at set_properties,
but do it at frontend init. This causes problems on programs like
w_scan that, by default, opens both frontends.

Instead, explicitly set the format when set_parameters callback is
called.

Tested-by: Eddi De Pieri <eddi@depieri.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-09 20:49:05 -02:00
Mauro Carvalho Chehab 0433cd28f3 [media] xc5000: Add support for 7MHz bandwidth for DVB-C/DVB-T
While xc5000 supports 7MHz bandwidth, the driver were lacking the code
implementing this feature, causing tuning issues with VHF chanels
used in Countries like Italy.

After this patch:

>>> tune to: 177500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE
0x0000 0x0d49: pmt_pid 0x0102 RAI -- Rai 1 (running)
0x0000 0x0d4a: pmt_pid 0x0101 RAI -- Rai 2 (running)
0x0000 0x0d4b: pmt_pid 0x0100 RAI -- Rai 3 TGR Veneto (running)
0x0000 0x0d53: pmt_pid 0x0118 RAI -- Rai News (running)
0x0000 0x0d54: pmt_pid 0x0119 Rai -- Rai 3 TGR Emilia Romagna (running)
0x0000 0x0d4c: pmt_pid 0x0103 Rai -- Rai Radio1 (running)
0x0000 0x0d4d: pmt_pid 0x0104 Rai -- Rai Radio2 (running)
0x0000 0x0d4e: pmt_pid 0x0105 Rai -- Rai Radio3 (running)
Network Name 'Rai'

Tested-by: Eddi De Pieri <eddi@depieri.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-09 08:01:01 -02:00
Mauro Carvalho Chehab 78bd3dc8da [media] xc5000,tda18271c2dd: Fix bandwidth calculus
While here, add a debug message, to easy detecting bugs on it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-08 17:04:38 -02:00
Mauro Carvalho Chehab 2bf936290b [media] xc5000: Remove the global mutex lock at xc5000 firmware init
As reported by Devin Heitmueller <dheitmueller@kernellabs.com>:

> It seems like a change such as this could significantly change the
> timing of tuner initialization if you have multiple xc5000 based
> products that might have a slow i2c bus.  Was that intentional?

After discussed with Eddi de Pierri <eddi@depieri.net>, it was pointed that
the change was not intentional, and it was just a trial while developing
the patches that add support for HVR-930C.

So, remove this hack.

Reported-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Acked by: Eddi de Pierri <eddi@depieri.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-12-07 07:59:14 -02:00
Mauro Carvalho Chehab 2a887d2770 [media] tm6000: fix OOPS at tm6000_ir_int_stop() and tm6000_ir_int_start()
[ 3755.608233] BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
[ 3755.616360] IP: [<ffffffffa03b80b7>] tm6000_ir_int_stop+0x10/0x1b [tm6000]

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 16:49:45 -02:00
Mauro Carvalho Chehab 6740a93288 [media] tm6000: automatically load alsa and dvb modules
All devices should support alsa module. Devices with DVB will
auto-load the dvb module. This way, tm6000-based devices should
now have hot plugin.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 16:49:37 -02:00
Mauro Carvalho Chehab 9f711a80c5 [media] tm6000: Use a 16 scancode bitmask for IR
This should allow using 24 or 32 bits NEC IR decoding tables with
those devices.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 14:58:20 -02:00
Mauro Carvalho Chehab 8afc539c4a [media] tm6000: Allow auto-detecting tm6000 devices
Now that the tm6000 driver is on a good shape, we can enable
device autodetection, based on the USB ID.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 14:54:19 -02:00
Mauro Carvalho Chehab 4a83b01150 [media] tm6000: rewrite IR support
The IR support were broken on my tests with HVR-900H. Also,
there were several issues on the current implementation.
This patch is a major rewrite of the IR support for this
	- Improve debug messages;
	- Don't do polling for interrrupt based IR;
	- Add proper support for RC-5 protocol;
	- Always provide 16 bits for NEC and RC-5;
	- Fix polling code;
	- Split polling functions from URB Interrupt ones;
	- Don't hardcode the XTAL reference for tm6000 IR;
	- If a URB submit fails, retries after 100ms;
	- etc.

Tested on Hauppauge HVR-900H, with RC-5 and NEC remotes.

Issues on IR handling, on this device:
	- Repeat events aren't detected (neither on NEC or RC-5);
	- NEC codes are always provided with 16 bits.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 14:54:11 -02:00
Mauro Carvalho Chehab f9fa905bde [media] tm6000: add IR support for HVR-900H
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 14:43:45 -02:00
Mauro Carvalho Chehab 884b0515dc [media] tuner-xc2028: Better report signal strength
Fix lock bit to better indicate signal strength, from 4096 to
65535.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 14:43:36 -02:00
Mauro Carvalho Chehab 15a295ec31 [media] tm6000: Fix IR register names
IR registers 0xd9 to 0xdf were badly named, making harder to
check what's the register accessed at the RC code. Fix the
name convention.

No functional changes on this patch.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-30 14:43:06 -02:00
Mauro Carvalho Chehab 36d36b884c [media] tm6000: Warning cleanup
drivers/media/video/tm6000/tm6000-video.c: In function ‘tm6000_release’:
drivers/media/video/tm6000/tm6000-video.c:1608:7: warning: unused variable ‘err’ [-Wunused-variable]

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-28 21:58:54 -02:00
Stefan Ringel edcfdd919a [media] tm6000: bugfix data check
beholder use a map with 3 bytes, but many rc maps have 2 bytes, so I add a workaround for beholder rc.

Signed-off-by: Stefan Ringel <linuxtv@stefanringel.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-28 21:31:09 -02:00
Stefan Ringel de2a20baff [media] tm6000: bugfix at bulk transfer
Signed-off-by: Stefan Ringel <linuxtv@stefanringel.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-28 21:30:41 -02:00
Stefan Ringel 8159c184cf [media] tm6000: bugfix at interrupt reset
Signed-off-by: Stefan Ringel <linuxtv@stefanringel.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-28 21:30:28 -02:00
Stefan Ringel c00ecc97bc [media] tm6000: bugfix at tm6000_set_reg_mask() register setting
Signed-off-by: Stefan Ringel <linuxtv@stefanringel.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-28 21:30:09 -02:00
Stefan Ringel 078a68c11f [media] tm6000: remove experimental depends
Signed-off-by: Stefan Ringel <linuxtv@stefanringel.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-28 21:29:32 -02:00
Mauro Carvalho Chehab 32f6f3ac54 [media] tm6000: Fix tm6010 audio standard selection
A V4L2 standards mask may contain several standards. A more restricted
mask with just one standard is used when user needs to bind to an specific
standard that can't be auto-detect among a more generic mask.

So, Improve the autodetection logic to detect the correct audio standard
most of the time.

Based on a patch made by Dmitri Belimov <d.belimov@gmail.com>.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-28 21:22:46 -02:00
Mauro Carvalho Chehab 75f064f220 [media] tm6000: Add a few missing bits to alsa
There are some properties found on em28xx, but not on tm6000. Add
them, in order to be more consistent.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-28 21:12:52 -02:00
Janusz Krzysztofik d95d7b91b4 [media] V4L: omap1_camera: fix missing <linux/module.h> include
Otherwise compilation breaks with:

...

after apparently no longer included recursively from other header files.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-26 13:45:38 -02:00
Dan Carpenter 87d466e503 [media] staging/media: lirc_imon: add a __user annotation
This silences the following Sparse warnings:
lirc_imon.c:404:32: warning: incorrect type in argument 1 (different address spaces)
lirc_imon.c:404:32:    expected void const [noderef] <asn:1>*<noident>
lirc_imon.c:404:32:    got char const *buf
lirc_imon.c:117:28: warning: incorrect type in initializer (incompatible argument 2 (different address spaces))
lirc_imon.c:117:28:    expected long ( *write )( ... )
lirc_imon.c:117:28:    got long ( static [toplevel] *<noident> )( ... )

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-26 08:48:03 -02:00
Dan Carpenter 75c1ca364d [media] radio: NUL terminate a user string
We pass this to fm_tx_set_radio_text() which expects a NUL terminated
string.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-25 15:46:59 -02:00
Pete 7e5219d18e [media] go7007: Fix 2250 urb type
commit a846d8fce9e8be30046be3c512982bd0345e7015

The 2250 board uses bulk endpoint for interrupt handling,
and should use a bulk urb instead of an int urb.

Signed-off-by: Pete Eberlein <pete@sensoray.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-11-24 21:09:25 -02:00