aboutsummaryrefslogtreecommitdiff
path: root/drivers/media/usb
AgeCommit message (Collapse)AuthorFilesLines
2015-09-03[media] cx231xx: Use wake_up_interruptible() instead of ↵Steven Rostedt1-2/+2
wake_up_interruptible_nr() While looking at use cases of the wake queues in order to add support for simple wait queues, I noticed that there was only a single user of wake_up_interruptible_nr(), and that use was doing a single task wake up. Have that user use the proper wake_up_interruptible() instead, and perhaps we can even remove the function wake_up_interruptible_nr(). Signed-off-by: Steven Rostedt <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] Technisat SkyStar USB HD,(DVB-S/S2) too much URBs for arm devicesChristian Löpke1-1/+1
Using 8 URBs results in a consecutive buffer allocation of too much memory for some arm devices. As we use isochronuous transfers the number of URBs can be reduced without risking data-loss. Signed-off-by: Christian Loepke <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] Drop owner assignment from i2c_driverKrzysztof Kozlowski1-1/+0
i2c_driver does not need to set an owner because i2c_register_driver() will set it. Signed-off-by: Krzysztof Kozlowski <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] pctv452e: Replace memset with eth_zero_addrVaishali Thakkar1-1/+1
Use eth_zero_addr to assign the zero address to the given address array instead of memset when second argument is address of zero. Note that the 6 in the third argument of memset appears to represent an ethernet address size (ETH_ALEN). The Coccinelle semantic patch that makes this change is as follows: // <smpl> @eth_zero_addr@ expression e; @@ -memset(e,0x00,6); +eth_zero_addr(e); // </smpl> Signed-off-by: Vaishali Thakkar <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] usb/airspy: removing unneeded gotoManinder Singh1-3/+0
This patch removes unneded goto, reported by coccinelle. Signed-off-by: Maninder Singh <[email protected]> Reviewed-by: Akhilesh Kumar <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] em28xx: remove unused a8293 SEC configAntti Palosaari1-4/+0
Devices that were using a8293 SEC are converted to I2C platform data thus that old config structure is left unused. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] usbvision: move init code to probe()Hans Verkuil2-4/+4
These things are only initialized if you start streaming video, but they are also used in the disconnect function. So just init them always during probe time. Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] usbvision: fix standards for S-Video/Composite inputsHans Verkuil1-3/+3
The standards supported by S-Video and Composite inputs are not limited by PAL, so make it more generic. Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] usbvision: fix DMA from stack warningsHans Verkuil2-9/+11
In various places the stack was used to provide buffers for USB data, but this should be allocated memory. Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] usbvision: fix locking errorHans Verkuil1-1/+1
If remove_pending is non-zero, then the v4l2_lock is never unlocked. Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] usbvision: set field and colorspaceHans Verkuil1-0/+2
Set the colorspace and field in vidioc_try_fmt_vid_cap(). Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] usbvision: frequency fixesHans Verkuil2-17/+30
- setup initial radio and tv frequencies. - set/get the correct frequency (radio vs tv). - disable tuner/freq ioctls if there is no tuner. - fix some tuner index checks. Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] usbvision: the radio device node has wrong capsHans Verkuil1-5/+12
The radio device node had the same caps as the video node. Fix this. Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] usbvision: remove g/s_audio and for radio remove enum/g/s_inputHans Verkuil1-29/+0
The g/s_audio ioctls didn't do anything, so remove them all for both video and radio nodes and remove V4L2_CAP_AUDIO. The enum/g/s_input ioctls are invalid for radio nodes, so remove them from the radio ioctl_ops. Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] usbvision: return valid error in usbvision_register_video()Hans Verkuil1-1/+3
Don't return -1, return a proper error code. Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] usbvision: convert to the control frameworkHans Verkuil2-43/+28
Convert this driver to the control framework and struct v4l2_fh (needed for handling control events). Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-08-11[media] usbvision: remove power_on_at_open and timed power offHans Verkuil3-116/+9
This causes lots of problems and is *very* slow as well. One of the main problems is that this prohibits the use of the control framework since subdevs will be unloaded on power off which is not allowed as long as they are used by a usb device. Apparently the reason for doing this is to turn off a noisy tuner. My hardware has no problem with that, and I wonder whether the hardware with that noisy tuner wasn't just functioning improperly as I have never heard of noisy tuners. Contact me if you have one of those devices and I can take a look whether the tuner can't be powered off if necessary by letting the tuner subdevice go into standby mode. Unloading the tuner module is just evil and is not the right approach. Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-07-17[media] stk1160: Add frame scaling supportEzequiel Garcia2-28/+207
This commit implements frame decimation for stk1160, which allows to support format changes instead of a static frame size. The stk1160 supports independent row and column decimation, in two different modes: * set a number of rows/columns units to skip for each unit sent. * set a number of rows/columns units to send for each unit skipped. This effectively allows to achieve different frame scaling ratios. The unit number can be set to either two row/columns sent/skipped, or four row/columns sent/skipped. Since the video format (UYVY) has 4-bytes, using a unit number of two row/columns results in frame color 'shifting', so set to four row/columns sent/skipped. Signed-off-by: Michael Stegemann <[email protected]> Signed-off-by: Dale Hamel <[email protected]> Signed-off-by: Ezequiel Garcia <[email protected]> Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-07-17[media] stk1160: Reduce driver verbosityEzequiel Garcia3-13/+9
These messages are not really informational, and just makes the driver's output too verbose. This commit changes some messages to a debug level, removes a really useless "driver loaded" message and finally undefines the DEBUG macro. Signed-off-by: Ezequiel Garcia <[email protected]> Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-07-17[media] ttusb-dec: use swap() in swap_bytes()Fabian Frederick1-7/+2
Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-07-06[media] lmedm04: NEC scancode cleanupDavid Härdeman1-10/+11
This changes the keymap back to the state before commit 616a4b83 and changes the driver to use full NEC32 scancodes following the instructions provided by Malcolm Priestley <[email protected]>. Signed-off-by: David Härdeman <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-07-06[media] gscpa_m5602: use msecs_to_jiffies for conversionsNicholas Mc Guire1-1/+1
API compliance scanning with coccinelle flagged: ./drivers/media/usb/gspca/m5602/m5602_s5k83a.c:180:9-25: WARNING: timeout (100) seems HZ dependent Numeric constants passed to schedule_timeout() make the effective timeout HZ dependent which makes little sense in a polling loop for the cameras rotation state. Fixed up by converting the constant to jiffies with msecs_to_jiffies() Signed-off-by: Nicholas Mc Guire <[email protected]> Signed-off-by: Hans de Goede <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-07-06[media] gspca: sn9c2028: remove an unneeded conditionDan Carpenter1-1/+1
We already know status is negative because of the earlier check so there is no need to check again. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: Hans de Goede <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-07-06[media] stk1160: fix sequence handlingHans Verkuil3-5/+4
Fix the sequence counter: we're counting frames, not fields. Also remove the unused 'field' field. That would only be needed if this driver would support V4L2_FIELD_ALTERNATE. Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-24[media] lmedm04: fix the range for relative measurementsMauro Carvalho Chehab1-11/+8
Relative measurements are typically between 0 and 0xffff. However, for some tuners (TUNER_S7395 and TUNER_S0194), the range were from 0 to 0xff00, with means that 100% is never archived. Also, TUNER_RS2000 uses a more complex math. So, create a macro that does the conversion using bit operations and use it for all conversions. The code is also easier to read with is a bonus. While here, remove a bogus comment. Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-24[media] lmedm04: use u32 instead of u64 for relative statsMauro Carvalho Chehab1-3/+3
Cleanup this sparse warning: drivers/media/usb/dvb-usb-v2/lmedm04.c:302 lme2510_update_stats() warn: should '((255 - st->signal_sn - 161) * 3) << 8' be a 64 bit type? Both c_tmp and s_tmp actually stores a u16 stat. Using a u64 data there is a waste, specially on u32 archs, as 64 ints there are more expensive. So, change the types to u32 and do the typecast only when storing the result. Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-10[media] au0828: move dev->boards atribuition to happen earlierRafael Lourenço de Lima Chehab2-2/+2
The attribution of dev->boards occured too late, which would couse an OOPS in media controller registration. Signed-off-by: Rafael Lourenço de Lima Chehab <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-10[media] lmedm04: implement dvb v5 statisticsMalcolm Priestley1-27/+77
Indroduce function lme2510_update_stats to update statistics directly from usb interrupt. Provide signal and snr wrap rounds for dvb v3 functions. Block and post bit are not available. When i2c_talk_onoff is on no statistics are available, with possible future hand over to the relevant frontend/tuner. Signed-off-by: Malcolm Priestley <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-10[media] lmedm04: Enable dont_poll for TS2020 tunerMalcolm Priestley1-0/+1
Following a change made to TS2020 tuner in patches ts2020: Provide DVBv5 API signal strength ts2020: Allow stats polling to be suppressed Polling on the driver must be suppressed because the demuxer is stopped by I2C messages. Signed-off-by: Malcolm Priestley <[email protected]> Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-10[media] TS2020: Calculate tuner gain correctlyDavid Howells1-0/+2
The TS2020 and TS2022 tuners take an input from the demodulator indicating the AGC setting on that component that is then used to influence the tuner's own gain. This should be taken into account when calculating the gain and signal strength. Further, the existing TS2020 driver miscalculates the signal strength as the result of its calculations can exceed the storage capacity of the 16-bit word used to return it to userspace. To this end: (1) Add a callback function (->get_agc_pwm()) in the ts2020_config struct that the tuner can call to get the AGC PWM value from the demodulator. (2) Modify the TS2020 driver to calculate the gain according to Montage's specification with the adjustment that we produce a negative value and scale it to 0.001dB units (which is what the DVBv5 API will require): (a) Callback to the demodulator to retrieve the AGC PWM value and then turn that into Vagc for incorporation in the calculations. If the callback is unset, assume a Vagc of 0. (b) Calculate the tuner gain from a combination of Vagc and the tuner's RF gain and baseband gain settings. (3) Turn this into a percentage signal strength as per Montage's specification for return to userspace with the DVBv3 API. (4) Provide a function in the M88DS3103 demodulator driver that can be used to get the AGC PWM value on behalf of the tuner. (5) The ts2020_config.get_agc_pwm function should be set by the code that stitches together the drivers for each card. For the DVBSky cards that use the M88DS3103 with the TS2020 or the TS2022, set the get_agc_pwm function to point to m88ds3103_get_agc_pwm. I have tested this with a DVBSky S952 card which has an M88DS3103 and a TS2022. Thanks to Montage for providing access to information about the workings of these parts. Signed-off-by: David Howells <[email protected]> Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-10[media] em28xx: PCTV 461e use I2C client for demod and SECAntti Palosaari1-53/+83
Use I2C client binding for demod and SEC. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-09[media] cx231xx: Add support for Terratec GrabbyTommi Rantala2-0/+29
Add support for the Terratec Grabby with USB ID 0ccd:00a6. Signed-off-by: Tommi Rantala <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-09[media] usb drivers: use BUG_ON() instead of if () BUGMauro Carvalho Chehab5-10/+5
Some USB drivers have a logic at the VB buffer handling like: if (in_interrupt()) BUG(); Use, instead: BUG_ON(in_interrupt()); Btw, this logic looks weird on my eyes. We should convert them to use VB2, in order to avoid those crappy things. Signed-off-by: Mauro Carvalho Chehab <[email protected]> Acked-by: Lad, Prabhakar <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-09[media] dvb: Get rid of typedev usage for enumsMauro Carvalho Chehab20-57/+76
The DVB API was originally defined using typedefs. This is against Kernel CodingStyle, and there's no good usage here. While we can't remove its usage on userspace, we can avoid its usage in Kernelspace. So, let's do it. This patch was generated by this shell script: for j in $(grep typedef include/uapi/linux/dvb/frontend.h |cut -d' ' -f 3); do for i in $(find drivers/media -name '*.[ch]' -type f) $(find drivers/staging/media -name '*.[ch]' -type f); do sed "s,${j}_t,enum $j," <$i >a && mv a $i; done; done While here, make CodingStyle fixes on the affected lines. Signed-off-by: Mauro Carvalho Chehab <[email protected]> Acked-by: Stefan Richter <[email protected]> # for drivers/media/firewire/*
2015-06-09[media] cx231xx: fix compiler warningHans Verkuil1-10/+18
Fix this compiler warning by allocating a structure to read the eeprom instead of doing it on the stack and worse: the eeprom array is static, so that can cause problems if there are multiple cx231xx instances. cx231xx-cards.c: In function 'cx231xx_card_setup': cx231xx-cards.c:1110:1: warning: the frame size of 2064 bytes is larger than 2048 bytes [-Wframe-larger-than=] } ^ I did consider removing the code altogether since the result is actually not used at the moment, but I decided against it since it is used in other drivers and someone might want to start using it in this driver as well. And then it is useful that the code is already there. Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-06[media] stk1160: add DMABUF supportHans Verkuil1-1/+2
Implement DMABUF exporting and importing. Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-06[media] em28xx: bind PCTV 460e using I2C clientAntti Palosaari1-17/+51
Load PCTV 460e tda10071 demod and a8293 SEC using I2C client bindings. Remove old unused tda10071 config struct. We are using I2C platform data now. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-06[media] em28xx: add support for DVB SEC I2C clientAntti Palosaari1-1/+9
Add support for DVB SEC (satellite equipment controller) I2C client. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-05[media] usbvision: cleanup the codeMauro Carvalho Chehab1-3/+14
There's a dead code on usbvision that makes it harder to read and produces a smatch warning about bad identation. Improve the code readability and add a FIXME to warn about the current hack there. Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-05[media] tm6000: remove needless checkMauro Carvalho Chehab1-1/+1
Smatch reports a warning: drivers/media/usb/tm6000/tm6000-video.c:646 tm6000_prepare_isoc() error: we previously assumed 'dev->urb_buffer' could be null (see line 624) This is not really a problem, but it actually shows that the check if urb_buffer is NULL is being done twice: at the if and at tm6000_alloc_urb_buffers(). We don't need to do it twice. So, remove the extra check. The code become cleaner, and, as a collateral effect, smatch becomes happy. Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-06-05[media] em28xx: remove dead codeMauro Carvalho Chehab1-1/+0
As reported by smatch: drivers/media/usb/em28xx/em28xx-video.c:842 get_ressource() info: ignoring unreachable code. Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-05-30[media] uvcvideo: Remove unneeded device disconnected flagLaurent Pinchart3-10/+0
The UVC_DEV_DISCONNECTED flag is set when the USB device is disconnected, and checked in the open() handler to refuse opening a device that has been disconnected. This is inherently racy, but the race condition is taken care of in the V4L2 core, which also fails open() calls when the V4L2 device node has been unregistered. As the uvcvideo USB disconnect handler unregisters all its video device nodes, the UVC_DEV_DISCONNECTED flag doesn't serve any purpose anymore and can be removed. Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-05-30[media] uvcvideo: Fix incorrect bandwidth with Chicony device 04f2:b50bLaurent Pinchart1-0/+8
The "TOSHIBA Web Camera - 5M" Chicony device (04f2:b50b) seems to compute the bandwidth on 16 bits and erroneously sign-extend it to 32 bits, resulting in a huge bandwidth value. Detect and fix that condition by setting the 16 MSBs to 0 when they're all equal to 1. Reported-by: Hans de Goede <[email protected]> Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-05-30[media] uvcvideo: Implement DMABUF exporter roleLaurent Pinchart3-0/+27
Now that videobuf2-vmalloc supports exporting buffers, add support for the DMABUF exporter role by plugging in the videobuf2 ioctl helper. Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-05-30[media] af9035: add USB ID 07ca:0337 AVerMedia HD Volar (A867)Antti Palosaari1-0/+2
It is AF9035 + MxL5007T. Driver reports: prechip_version=00 chip_version=03 chip_type=3802 Not sure if that USB ID is reserved only for HP brand or if it is common, but the stick I have is branded as HP part no. 580715-001 rmn A867. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-05-30[media] gspca: sn9c2028: Add gain and autogain controls Genius Videocam Live v2Vasily Khoruzhick2-3/+137
Autogain algorithm is very simple, if average luminance is low - increase gain, if it's high - decrease gain. Gain granularity is low enough for this algo to stabilize quickly. Signed-off-by: Vasily Khoruzhick <[email protected]> Signed-off-by: Hans de Goede <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-05-30[media] gspca: sn9c2028: Add support for Genius Videocam Live v2Vasily Khoruzhick1-1/+118
This cam seems to return different values on long commands, so make status check in sn9c2028_long_command() more tolerant. Anyway, read value isn't used anywhere later. Signed-off-by: Vasily Khoruzhick <[email protected]> Signed-off-by: Hans de Goede <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-05-18[media] rtl28xxu: load SDR module for fc2580 based devicesAntti Palosaari1-0/+2
Load rtl2832_sdr driver for devices having fc2580 tuner. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-05-18[media] rtl28xxu: set correct FC2580 tuner for RTL2832 demodAntti Palosaari1-2/+6
rtl2832 demod driver has support for FC2580 tuner config, no need to abuse FC0012 settings anymore. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2015-05-18[media] rtl28xxu: bind tua9001 using I2C bindingAntti Palosaari1-8/+19
Change tua9001 driver from media binding to I2C client binding. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>