openwrt/staging/blogic.git
11 years ago[media] smiapp: re-use clamp_t instead of min(..., max(...))
Andy Shevchenko [Sat, 10 Aug 2013 17:49:45 +0000 (14:49 -0300)]
[media] smiapp: re-use clamp_t instead of min(..., max(...))

clamp_t does the job to put a variable into the given range.
clamp_t -> clamp as agreed with Andy.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] mt9v032: Use the common clock framework
Laurent Pinchart [Fri, 5 Jul 2013 10:16:02 +0000 (07:16 -0300)]
[media] mt9v032: Use the common clock framework

Configure the device external clock using the common clock framework
instead of a board code callback function.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] introduce gspca-stk1135: Syntek STK1135 driver
Ondrej Zary [Tue, 20 Aug 2013 13:03:59 +0000 (10:03 -0300)]
[media] introduce gspca-stk1135: Syntek STK1135 driver

Hello,
this is a new gspca driver for Syntek STK1135 webcams. The code is completely
new, but register values are based on Syntekdriver (stk11xx) by Nicolas VIVIEN
(http://syntekdriver.sourceforge.net).
Only one webcam type is supported now - vendor 0x174f, device 0x6a31.
It's Asus F5RL laptop flippable webcam with MT9M112.
The camera works better than in Windows - initializes much faster and
provides more resolutions (the sensor can do almost any resolution - just
add it to the stk1135_modes[] - could this feature be somehow used by
applications to avoid SW scaling?).
Autoflip works too - when the camera is flipped around, the image is flipped
automatically.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] gspca-ov534: don't call sd_start() from sd_init()
Antonio Ospite [Thu, 15 Aug 2013 10:29:32 +0000 (07:29 -0300)]
[media] gspca-ov534: don't call sd_start() from sd_init()

sd_start() operates on device controls but after the conversion to the
v4l2 control framework in commits 62bba5d and 1bd7d6a controls are
initialized in sd_init_controls() which is called _after_ sd_init():
The change fixes a NULL pointer dereference for Hercules Blog Webcam;
the problem is observable since 3.6:
  gspca_main: v2.14.0 registered
  gspca_main: ov534-2.14.0 probing 06f8:3002
  BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
  IP: [<ffffffffa03c1b01>] v4l2_ctrl_g_ctrl+0x11/0x60 [videodev]
  PGD 0
  Oops: 0000 [#1] SMP
  Modules linked in: gspca_ov534(+) gspca_main videodev rfcomm bnep ppdev bluetooth binfmt_misc snd_hda_codec_hdmi snd_hda_codec_realtek stir4200 irda crc_ccitt usblp snd_hda_intel snd_hda_codec snd_hwdep snd_pcm hid_generic snd_page_alloc snd_seq_midi snd_seq_midi_event usbhid snd_rawmidi snd_seq snd_seq_device snd_timer hid i915 snd psmouse drm_kms_helper serio_raw mei_me drm mei soundcore video i2c_algo_bit lpc_ich mac_hid coretemp lp parport firewire_ohci firewire_core crc_itu_t ahci libahci alx mdio r8169 mii [last unloaded: parport_pc]
  CPU: 3 PID: 4352 Comm: modprobe Not tainted 3.11.0-031100rc2-generic #201307211535
  Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./Z77-DS3H, BIOS F9 09/19/2012
  task: ffff8801c20f9770 ti: ffff8801ceaa0000 task.ti: ffff8801ceaa0000
  RIP: 0010:[<ffffffffa03c1b01>]  [<ffffffffa03c1b01>] v4l2_ctrl_g_ctrl+0x11/0x60 [videodev]
  RSP: 0018:ffff8801ceaa1af8  EFLAGS: 00010292
  RAX: 0000000000000001 RBX: 0000000000000000 RCX: 000000000001988b
  RDX: 000000000001988a RSI: ffffffffa032745a RDI: 0000000000000000
  RBP: ffff8801ceaa1b28 R08: 0000000000017380 R09: ffffea0008419d80
  R10: ffffffff81538f5a R11: 0000000000000002 R12: ffffffffa03273dc
  R13: ffffffffa03273dc R14: 0000000000000000 R15: ffffffffa03270a0
  FS:  00007f72d564a740(0000) GS:ffff88021f380000(0000) knlGS:0000000000000000
  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
  CR2: 0000000000000050 CR3: 00000001bd1f0000 CR4: 00000000001407e0
  Stack:
   ffff8801ceaa1b28 ffffffffa0325cff ffff8801000001f4 ffff8801ceb44000
   ffffffffa03273dc ffff8801ceb44000 ffff8801ceaa1b58 ffffffffa032688e
   ffff8801ceb44000 ffffffffa03274f0 ffffffffa03274f0 ffff8801ceb44380
  Call Trace:
   [<ffffffffa0325cff>] ? sccb_w_array+0x3f/0x80 [gspca_ov534]
   [<ffffffffa032688e>] sd_start+0xce/0x2b0 [gspca_ov534]
   [<ffffffffa0326bf9>] sd_init+0x189/0x1e8 [gspca_ov534]
   [<ffffffffa02a0c95>] gspca_dev_probe2+0x285/0x410 [gspca_main]
   [<ffffffffa02a0e58>] gspca_dev_probe+0x38/0x60 [gspca_main]
   [<ffffffffa0325081>] sd_probe+0x21/0x30 [gspca_ov534]
   [<ffffffff8153c960>] usb_probe_interface+0x1c0/0x2f0
   [<ffffffff8148758c>] really_probe+0x6c/0x330
   [<ffffffff814879d7>] driver_probe_device+0x47/0xa0
   [<ffffffff81487adb>] __driver_attach+0xab/0xb0
   [<ffffffff81487a30>] ? driver_probe_device+0xa0/0xa0
   [<ffffffff814857be>] bus_for_each_dev+0x5e/0x90
   [<ffffffff8148714e>] driver_attach+0x1e/0x20
   [<ffffffff81486bdc>] bus_add_driver+0x10c/0x290
   [<ffffffff8148805d>] driver_register+0x7d/0x160
   [<ffffffff8153b590>] usb_register_driver+0xa0/0x160
   [<ffffffffa0067000>] ? 0xffffffffa0066fff
   [<ffffffffa006701e>] sd_driver_init+0x1e/0x1000 [gspca_ov534]
   [<ffffffff8100212a>] do_one_initcall+0xfa/0x1b0
   [<ffffffff810578c3>] ? set_memory_nx+0x43/0x50
   [<ffffffff81712e8d>] do_init_module+0x80/0x1d1
   [<ffffffff810d2079>] load_module+0x4c9/0x5f0
   [<ffffffff810cf7b0>] ? add_kallsyms+0x210/0x210
   [<ffffffff810d2254>] SyS_init_module+0xb4/0x100
   [<ffffffff817333ef>] tracesys+0xe1/0xe6
  Code: a0 09 00 00 48 c7 c7 30 c3 3c a0 e8 7a 38 ca e0 eb cf 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 48 89 e5 53 48 89 fb 48 83 ec 28 <8b> 47 50 83 e8 05 83 f8 02 77 09 80 b8 20 8c 3c a0 00 74 1d 48
  RIP  [<ffffffffa03c1b01>] v4l2_ctrl_g_ctrl+0x11/0x60 [videodev]
   RSP <ffff8801ceaa1af8>
  CR2: 0000000000000050
  ---[ end trace 6786f15abfd2ac90 ]---
Original bug report from:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1173723/

Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
Tested-by: Yaroslav Zakharuk <slavikz@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] gspca: fix dev_open() error path
Alexey Khoroshilov [Mon, 5 Aug 2013 20:16:37 +0000 (17:16 -0300)]
[media] gspca: fix dev_open() error path

If v4l2_fh_open() fails in dev_open(), gspca_dev->module left locked.
The patch adds module_put(gspca_dev->module) on this path.
Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] radio-si470x-usb: Remove software version check
Hans de Goede [Tue, 20 Aug 2013 12:18:24 +0000 (09:18 -0300)]
[media] radio-si470x-usb: Remove software version check

We've an user reporting a device with a software version of 0, which works
fine. Once we lower the version check to accept version 0 it becomes a nop,
so remove it completely.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: few improvements for RF tuner
Antti Palosaari [Sat, 17 Aug 2013 22:30:18 +0000 (19:30 -0300)]
[media] msi3101: few improvements for RF tuner

* Fix AM_MODE. Now it could work at least in theory, cannot test.
* Use greatest common divisor algo to divide PLL fractional parts.
* Fix IF frequency mode.
* + some very minor "style" issues

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: change stream format 384
Antti Palosaari [Sun, 11 Aug 2013 22:07:02 +0000 (19:07 -0300)]
[media] msi3101: change stream format 384

After feeding different signal levels using RF generator and looking
GNU Radio FFT sink I made decision to change bit shift 3 to bit shift
2 as there was very (too) huge visible leap in FFT sink GUI. Now it
looks more natural.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: implement stream format 504
Antti Palosaari [Thu, 8 Aug 2013 18:39:33 +0000 (15:39 -0300)]
[media] msi3101: implement stream format 504

That stream format carries 504 x I+Q samples per 1024 USB frame.
Sample resolution is 8-bit signed. Default it when sampling rate
is 9Msps or over.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: a lot of small cleanups
Antti Palosaari [Wed, 7 Aug 2013 18:06:29 +0000 (15:06 -0300)]
[media] msi3101: a lot of small cleanups

Add comments, remove useless code and so. House cleaning party.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: changes for tuner PLL freq limits
Antti Palosaari [Wed, 7 Aug 2013 16:20:29 +0000 (13:20 -0300)]
[media] msi3101: changes for tuner PLL freq limits

I made some tuner freq limit tests against RF signal generator.
Adjust some PLL limits according to these test results.
Here are the results, taken from two different devices.
Ranges are measured RF limits + calculated VCO limits.
Mirics MSi3101 SDR Dongle:
VHF_MODE  52 - 132  1664 - 4224
B3_MODE  103 - 263  1648 - 4208
B45_MODE 413 - 960  1652 - 3840
Hauppauge WinTV 133559 LF:
VHF_MODE  49 - 130  1568 - 4160
B3_MODE   98 - 259  1568 - 4144
B45_MODE 391 - 960  1564 - 3840

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: add stream format 336 I+Q pairs per frame
Antti Palosaari [Wed, 7 Aug 2013 14:27:21 +0000 (11:27 -0300)]
[media] msi3101: add stream format 336 I+Q pairs per frame

That one seem to have 12-bit resolution. Use it for streams that
has sampling rate 6 <= rate (Msps) < 8, between 6 and 8Msps.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: fix overflow in freq setting
Antti Palosaari [Wed, 7 Aug 2013 03:02:40 +0000 (00:02 -0300)]
[media] msi3101: fix overflow in freq setting

Higher frequencies were not possible to set correctly as that value
overflows.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: init bits 23:20 on PLL register
Antti Palosaari [Tue, 6 Aug 2013 00:33:31 +0000 (21:33 -0300)]
[media] msi3101: init bits 23:20 on PLL register

It is not sure what is meaning of that number, but it is better
to try do as Windows driver. It seems to have small effect for
signal when looking FM FFT.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: add support for stream format "252" I+Q per frame
Antti Palosaari [Mon, 5 Aug 2013 23:43:36 +0000 (20:43 -0300)]
[media] msi3101: add support for stream format "252" I+Q per frame

That one seems to have 14-bit ADC resolution, wow!
It is now used when sampling rate is below 6 Msps.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: improve tuner synth calc step size
Antti Palosaari [Sat, 3 Aug 2013 00:49:49 +0000 (21:49 -0300)]
[media] msi3101: improve tuner synth calc step size

Allow stepless synthesizer configuration. With that change we lose
precision a little bit, as it is now between +-500Hz from the target.
It could be better but on that case calculation algorithm goes more
complex and atm there is more important things to do.
Two approach to improve which comes to my mind are:
1) select and use biggest suitable step
2) use greatest common divisor algo to find divisor for thresh & frac
when possible to avoid rounding errors, which is root of cause of
current +-500Hz inaccuracy.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: correct ADC sampling rate calc a little bit
Antti Palosaari [Thu, 1 Aug 2013 00:48:51 +0000 (21:48 -0300)]
[media] msi3101: correct ADC sampling rate calc a little bit

No need to compare numbers, we could just store that fractional
value MSB directly.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: add debug dump for unknown stream data
Antti Palosaari [Wed, 31 Jul 2013 22:58:12 +0000 (19:58 -0300)]
[media] msi3101: add debug dump for unknown stream data

Dump all unknown 'garbage' data - maybe we will discover someday if there
is something rational...
Also fix comment in USB frame description.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: add 2040:d300 Hauppauge WinTV 133559 LF
Antti Palosaari [Wed, 17 Jul 2013 18:05:27 +0000 (15:05 -0300)]
[media] msi3101: add 2040:d300 Hauppauge WinTV 133559 LF

It is based Mirics MSi3101 reference design and will just work
without any changes.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: fix stream re-start halt
Antti Palosaari [Thu, 11 Jul 2013 15:19:32 +0000 (12:19 -0300)]
[media] msi3101: fix stream re-start halt

Restarting stream fails quite often. Small delay is between urb killing
and stream stop command - likely to give harware some time to process
killed urbs.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: enhance sampling results
Antti Palosaari [Thu, 11 Jul 2013 00:59:58 +0000 (21:59 -0300)]
[media] msi3101: enhance sampling results

It looks like there is some extra data carried to enhance sampling
results. When you tune to some some weak/empty channel those bits
are always zeroes. When you tune to some channel where is very
strong signals those bits are all zeroes.
Examining those 32-bits reveals shortly there is 16 pieces of 2-bit
numbers. Number seen are 0, 1 and 3 - for some reason 2 is not used.
I used that number to shift bits given amount to left, "increasing"
sampling resolution by 3-bits. It may be wrong, but after some testing
it still provides better signal.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: add sampling mode control
Antti Palosaari [Tue, 9 Jul 2013 19:19:15 +0000 (16:19 -0300)]
[media] msi3101: add sampling mode control

Whilst Quadrature Sampling is most common sampling technique used in
radio technology there is others too. Add control user could select
sampling mode. We currently support only quadrature sampling.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: fix sampling rate calculation
Antti Palosaari [Tue, 9 Jul 2013 05:44:56 +0000 (02:44 -0300)]
[media] msi3101: fix sampling rate calculation

These calculations seem to give 100% correct results. Calculation
formulas could be still a little bit wrong as I have no knowledge
what kind of dividers, multipliers and VCO limits there really is.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] msi3101: sample is correct term for sample
Antti Palosaari [Tue, 9 Jul 2013 01:31:47 +0000 (22:31 -0300)]
[media] msi3101: sample is correct term for sample

Just fix wrong term name. No functional changes.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] Mirics MSi3101 SDR Dongle driver
Antti Palosaari [Fri, 5 Jul 2013 03:24:08 +0000 (00:24 -0300)]
[media] Mirics MSi3101 SDR Dongle driver

It is first Kernel software defined radio receiver driver.
That device is sold as a digital television solution.
MSi3101 is reference design which consists of two chips:
1) MSi2500 USB ADC
2) MSi001 RF-tuner
Driver is put to staging as API is not ready.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years agov4l2-common: warning fix (W=1): add a missed function prototype
Mauro Carvalho Chehab [Sun, 18 Aug 2013 13:17:38 +0000 (10:17 -0300)]
v4l2-common: warning fix (W=1): add a missed function prototype

changeset d1e9b7c12 added a new ancilliary function to API, but forgot
to add it to the corresponding header file.

drivers/media/v4l2-core/v4l2-ctrls.c:568:18: warning: no previous prototype for 'v4l2_ctrl_get_int_menu' [-Wmissing-prototypes]
 const s64 const *v4l2_ctrl_get_int_menu(u32 id, u32 *len)

Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years agosh_mobile_ceu_camera: Fix a compilation warning
Mauro Carvalho Chehab [Sun, 18 Aug 2013 12:36:03 +0000 (09:36 -0300)]
sh_mobile_ceu_camera: Fix a compilation warning

drivers/media/platform/soc_camera/sh_mobile_ceu_camera.c: In function 'sh_mobile_ceu_clock_start':
drivers/media/platform/soc_camera/sh_mobile_ceu_camera.c:613:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]

Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] exynos-gsc: fix s2r functionality
Prathyush K [Wed, 7 Aug 2013 11:53:04 +0000 (08:53 -0300)]
[media] exynos-gsc: fix s2r functionality

When gsc is in runtime suspended state, there is no need to call
m2m_suspend during suspend and similarly, there is no need to call
m2m_resume during resume if already in runtime suspended state. This
patch adds the necessary conditions to achieve this.

Signed-off-by: Prathyush K <prathyush.k@samsung.com>
Signed-off-by: Arun Mankuzhi <arun.m@samsung.com>
Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] exynos4-is: Staticize local symbol
Sachin Kamat [Fri, 2 Aug 2013 05:32:12 +0000 (02:32 -0300)]
[media] exynos4-is: Staticize local symbol

__fimc_is_hw_update_param is used only in this file. Make it static.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] exynos4-is: Fix potential NULL pointer dereference
Sachin Kamat [Fri, 2 Aug 2013 07:58:25 +0000 (04:58 -0300)]
[media] exynos4-is: Fix potential NULL pointer dereference

dev->of_node could be NULL. Hence check for the same and return before
dereferencing it in the subsequent error message.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] V4L: s5c73m3: Add format propagation for TRY formats
Andrzej Hajda [Wed, 24 Jul 2013 13:57:32 +0000 (10:57 -0300)]
[media] V4L: s5c73m3: Add format propagation for TRY formats

Resolution set on ISP pad of S5C73M3-OIF subdev should be
propagated to source pad for TRY and ACTIVE formats.
The patch adds missing propagation for TRY format.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] v4l2-async: Use proper list head for iteration over registered subdevs
Sylwester Nawrocki [Wed, 31 Jul 2013 16:10:18 +0000 (13:10 -0300)]
[media] v4l2-async: Use proper list head for iteration over registered subdevs

This fixes regression introduced in commit b426b3a660c85faf6e1ca1c92c6d
[media] V4L: Merge struct v4l2_async_subdev_list with struct v4l2_subdev

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] V4L2: mt9m111: switch to asynchronous subdevice probing
Guennadi Liakhovetski [Tue, 30 Jul 2013 07:35:18 +0000 (04:35 -0300)]
[media] V4L2: mt9m111: switch to asynchronous subdevice probing

Convert the mt9m111 driver to asynchronous subdevice probing. Synchronous
probing is also still possible.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] V4L2: mt9t031: don't Oops if asynchronous probing is attempted
Guennadi Liakhovetski [Tue, 30 Jul 2013 06:34:06 +0000 (03:34 -0300)]
[media] V4L2: mt9t031: don't Oops if asynchronous probing is attempted

The mt9t031 driver hasn't yet been updated to support asynchronous
subdevice probing. If such a probing is attempted, the driver is allowed
to fail, but it shouldn't Oops. This patch fixes such a potential NULL
pointer dereference.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] V4L2: mx3_camera: add support for asynchronous subdevice registration
Guennadi Liakhovetski [Tue, 30 Jul 2013 05:59:49 +0000 (02:59 -0300)]
[media] V4L2: mx3_camera: add support for asynchronous subdevice registration

The soc-camera core does all the work on supporting asynchronous
subdevice probing, host drivers only have to pass a subdevice list to
soc-camera. Typically this list is provided by the platform.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] V4L2: mx3_camera: print V4L2_MBUS_FMT_* codes in hexadecimal format
Guennadi Liakhovetski [Tue, 30 Jul 2013 05:53:15 +0000 (02:53 -0300)]
[media] V4L2: mx3_camera: print V4L2_MBUS_FMT_* codes in hexadecimal format

V4L2_MBUS_FMT_* codes are defined in v4l2-mediabus.h as hexadecimal
constants. Print them in the same form for easier recognition.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] V4L2: mx3_camera: convert to managed resource allocation
Guennadi Liakhovetski [Mon, 29 Jul 2013 15:18:04 +0000 (12:18 -0300)]
[media] V4L2: mx3_camera: convert to managed resource allocation

Use devm_* resource allocators to simplify the driver's probe and clean up
paths.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] V4L2: soc-camera: fix requesting regulators in synchronous case
Guennadi Liakhovetski [Tue, 30 Jul 2013 11:01:55 +0000 (08:01 -0300)]
[media] V4L2: soc-camera: fix requesting regulators in synchronous case

With synchronous subdevice probing regulators should be requested by the
soc-camera core in soc_camera_pdrv_probe(). Subdevice drivers, supporting
asynchronous probing, call soc_camera_power_init() to request regulators.
Erroneously, the same regulator array is used in the latter case as in
the former, which leads to a failure. This patch fixes it by preventing
the second regulator request from being executed.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] soc_camera: fix compiler warning
Hans Verkuil [Thu, 25 Jul 2013 12:40:34 +0000 (09:40 -0300)]
[media] soc_camera: fix compiler warning

media_build/v4l/soc_camera.c: In function 'soc_camera_host_register':
media_build/v4l/soc_camera.c:1513:10: warning: 'sasd' may be used uninitialized in this function [-Wmaybe-uninitialized]
  snprintf(clk_name, sizeof(clk_name), "%d-%04x",
          ^
media_build/v4l/soc_camera.c:1464:34: note: 'sasd' was declared here
  struct soc_camera_async_subdev *sasd;
                                  ^
By changing the type of 'i' to unsigned and changing a condition we finally
convince the compiler that sasd is really initialized.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] V4L2: soc_camera: Renesas R-Car VIN driver
Vladimir Barinov [Thu, 25 Jul 2013 20:23:10 +0000 (17:23 -0300)]
[media] V4L2: soc_camera: Renesas R-Car VIN driver

Add Renesas R-Car VIN (Video In) V4L2 driver.
Based on the patch by Phil Edworthy <phil.edworthy@renesas.com>.
[Sergei: removed deprecated IRQF_DISABLED flag, reordered/renamed 'enum chip_id'
values, reordered rcar_vin_id_table[] entries,  removed senseless parens from
to_buf_list() macro, used ALIGN() macro in rcar_vin_setup(), added {} to the
*if* statement  and used 'bool' values instead of 0/1 where necessary, removed
unused macros, done some reformatting and clarified some comments.]

Signed-off-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] v4l: async: Make it safe to unregister unregistered notifier
Laurent Pinchart [Wed, 3 Jul 2013 10:49:06 +0000 (07:49 -0300)]
[media] v4l: async: Make it safe to unregister unregistered notifier

Calling v4l2_async_notifier_unregister() on a notifier that hasn't been
registered leads to a crash. To simplify drivers, make it safe to
unregister a notifier that has not been registered.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] v4l: Fix colorspace conversion error in sample code
Laurent Pinchart [Wed, 19 Jun 2013 00:41:59 +0000 (21:41 -0300)]
[media] v4l: Fix colorspace conversion error in sample code

The sample code erroneously scales the y1, pb and pr variables from the
[0.0 .. 1.0] and [-0.5 .. 0.5] ranges to [0 .. 255] and [-128 .. 127].
Fix it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] v4l: of: Drop acquired reference to node when getting next endpoint
Laurent Pinchart [Wed, 3 Jul 2013 02:05:51 +0000 (23:05 -0300)]
[media] v4l: of: Drop acquired reference to node when getting next endpoint

The of_get_child_by_name() function takes a reference to the node it
returns. Make sure to drop it when looking for the ports node in
v4l2_of_get_next_endpoint().

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] v4l: of: Use of_get_child_by_name()
Laurent Pinchart [Wed, 3 Jul 2013 02:04:25 +0000 (23:04 -0300)]
[media] v4l: of: Use of_get_child_by_name()

Replace a manual loop through child nodes with a call to
of_get_child_by_name().

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] videobuf2-core: Verify planes lengths for output buffers
Laurent Pinchart [Tue, 10 Jul 2012 13:41:40 +0000 (10:41 -0300)]
[media] videobuf2-core: Verify planes lengths for output buffers

For output buffers application provide to the kernel the number of bytes
they stored in each plane of the buffer. Verify that the value is
smaller than or equal to the plane length.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Pawel Osciak <pawel@osciak.com>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] saa7115: make multi-line comments compliant with CodingStyle
Mauro Carvalho Chehab [Sun, 18 Aug 2013 11:35:36 +0000 (08:35 -0300)]
[media] saa7115: make multi-line comments compliant with CodingStyle

changeset 2ccf12a did a crappy job when added multi-line comment lines,
violating CodingStyle.

Change the comments added there to fulfill CodingStyle, and document
the platform_data using Documentation/kernel-doc-nano-HOWTO.txt.

Cc: Jon Arne Jørgensen <jonarne@jonarne.no>
Cc: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] saa7115: Implement i2c_board_info.platform_data
Jon Arne Jørgensen [Sat, 3 Aug 2013 12:19:37 +0000 (09:19 -0300)]
[media] saa7115: Implement i2c_board_info.platform_data

This patch implements i2c_board_info.platform_data, and some options to
override the default initialization table for the GM7113C and SAA7113
chips.

Signed-off-by: Jon Arne Jørgensen <jonarne@jonarne.no>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] saa7115: Do not load saa7115_init_misc for gm7113c
Jon Arne Jørgensen [Sat, 3 Aug 2013 12:19:36 +0000 (09:19 -0300)]
[media] saa7115: Do not load saa7115_init_misc for gm7113c

Most of the registers changed in saa7115_init_misc table are out of range
for the gm7113c chip.
The only register that's within range, don't need to be changed here.

Signed-off-by: Jon Arne Jørgensen <jonarne@jonarne.no>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] saa7115: Fix saa711x_set_v4lstd for gm7113c
Jon Arne Jørgensen [Sat, 3 Aug 2013 12:19:35 +0000 (09:19 -0300)]
[media] saa7115: Fix saa711x_set_v4lstd for gm7113c

saa711x_set_v4lstd would toggle several bits that should not be touched
when changing std. This patch fixes this.

Signed-off-by: Jon Arne Jørgensen <jonarne@jonarne.no>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] ths8200/ad9389b: use new dv_timings helpers
Hans Verkuil [Mon, 29 Jul 2013 11:41:01 +0000 (08:41 -0300)]
[media] ths8200/ad9389b: use new dv_timings helpers

Simplify the code by using the new dv_timings helpers.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] v4l2: use new V4L2_DV_BT_BLANKING/FRAME defines
Hans Verkuil [Mon, 29 Jul 2013 11:41:00 +0000 (08:41 -0300)]
[media] v4l2: use new V4L2_DV_BT_BLANKING/FRAME defines

Use the new blanking and frame size defines. This also fixed a bug in
these drivers: they assumed that the height for interlaced formats was
the field height, however height is the frame height. So the height
for a field is actually bt->height / 2.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] v4l2: use new V4L2_DV_BT_BLANKING/FRAME defines
Hans Verkuil [Mon, 29 Jul 2013 11:40:59 +0000 (08:40 -0300)]
[media] v4l2: use new V4L2_DV_BT_BLANKING/FRAME defines

Use the new defines to calculate the full blanking and frame sizes.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Scott Jiang <scott.jiang.linux@gmail.com>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] videodev2.h: defines to calculate blanking and frame sizes
Hans Verkuil [Mon, 29 Jul 2013 11:40:58 +0000 (08:40 -0300)]
[media] videodev2.h: defines to calculate blanking and frame sizes

It is very common to have to calculate the total width and height of the
blanking and the full frame, so add a few defines that deal with that.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] DocBook/media/v4l: il_* fields always 0 for progressive formats
Hans Verkuil [Mon, 29 Jul 2013 11:40:57 +0000 (08:40 -0300)]
[media] DocBook/media/v4l: il_* fields always 0 for progressive formats

Clarify that the il_vfrontporch, il_vsync and il_vbackporch fields must
always be 0 for progressive formats.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] v4l2: move dv-timings related code to v4l2-dv-timings.c
Hans Verkuil [Mon, 29 Jul 2013 11:40:56 +0000 (08:40 -0300)]
[media] v4l2: move dv-timings related code to v4l2-dv-timings.c

v4l2-common.c contained a bunch of dv-timings related functions.
Move that to the new v4l2-dv-timings.c which is a more appropriate
place for them.
There aren't many drivers that do HDTV, so it is a good idea to separate
common code related to that into a module of its own.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] v4l2-dv-timings: add new helper module
Hans Verkuil [Mon, 29 Jul 2013 11:40:55 +0000 (08:40 -0300)]
[media] v4l2-dv-timings: add new helper module

This module makes it easy to filter valid timings from the full list of
CEA and DMT timings based on the timings capabilities.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] v4l2-dv-timings.h: remove duplicate V4L2_DV_BT_DMT_1366X768P60
Hans Verkuil [Mon, 29 Jul 2013 11:40:54 +0000 (08:40 -0300)]
[media] v4l2-dv-timings.h: remove duplicate V4L2_DV_BT_DMT_1366X768P60

This particular DMT timing definition was duplicated in the header.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] tea575x: Move from sound to media
Ondrej Zary [Sun, 28 Jul 2013 19:01:44 +0000 (16:01 -0300)]
[media] tea575x: Move from sound to media

Move tea575x from sound/i2c/other to drivers/media/radio
Includes Kconfig changes by Hans Verkuil.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Acked-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] tea575x: Move header from sound to media
Ondrej Zary [Sun, 28 Jul 2013 19:01:43 +0000 (16:01 -0300)]
[media] tea575x: Move header from sound to media

Move include/sound/tea575x-tuner.h to include/media/tea575x.h and update files that include it.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Acked-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] dvb_usb_v2: get rid of deferred probe
Antti Palosaari [Tue, 30 Jul 2013 20:22:25 +0000 (17:22 -0300)]
[media] dvb_usb_v2: get rid of deferred probe

Deferred probe was added in order to avoid udev vs. Kernel firmware
download problems. It is not needed anymore.
https://bugzilla.redhat.com/show_bug.cgi?id=827538

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] lme2510: do not use bInterfaceNumber from dvb_usb_v2
Antti Palosaari [Tue, 30 Jul 2013 19:33:16 +0000 (16:33 -0300)]
[media] lme2510: do not use bInterfaceNumber from dvb_usb_v2

No need to access bInterfaceNumber via dvb_usb_v2 internals as driver
has it already.
That patch is prepare for dvb_usb_v2 deferred probe hack removal. It was
added due to udev firmware loading problems, but things are fixed after
that and it is not needed anymore.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] e4000: change remaining pr_warn to dev_warn
Antti Palosaari [Fri, 26 Jul 2013 09:57:51 +0000 (06:57 -0300)]
[media] e4000: change remaining pr_warn to dev_warn

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] e4000: make checkpatch.pl happy
Antti Palosaari [Wed, 24 Jul 2013 21:38:29 +0000 (18:38 -0300)]
[media] e4000: make checkpatch.pl happy

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] e4000: use swap() macro
Antti Palosaari [Wed, 24 Jul 2013 21:33:51 +0000 (18:33 -0300)]
[media] e4000: use swap() macro

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] e4000: implement DC offset correction
Antti Palosaari [Wed, 24 Jul 2013 05:04:12 +0000 (02:04 -0300)]
[media] e4000: implement DC offset correction

I did some tests against modulator (television signal generator) and this
seems to improve sensitivity a little bit on channel I used. Used device
was able to receive transmission just as weak signal as with Windows XP.
Thanks to Jacek for donating his non-working device. I cannot ask he to
test anymore...

Reported-by: Jacek Konieczny <jajcus@jajcus.net>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] vsp1: Use the maximum number of entities defined in platform data
Katsuya Matsubara [Fri, 26 Jul 2013 09:32:12 +0000 (06:32 -0300)]
[media] vsp1: Use the maximum number of entities defined in platform data

The VSP1 driver allows to define the maximum number of each module
such as RPF, WPF, and UDS in a platform data definition.
This suppresses operations for nonexistent or unused modules.

Signed-off-by: Katsuya Matsubara <matsu@igel.co.jp>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Sakari Ailus <sakari.ailus@iki.fi>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] vsp1: Fix lack of the sink entity registration for enabled links
Katsuya Matsubara [Fri, 26 Jul 2013 09:32:11 +0000 (06:32 -0300)]
[media] vsp1: Fix lack of the sink entity registration for enabled links

Each source entity maintains a pointer to the counterpart sink
entity while an enabled link connects them. It should be managed by
the setup_link callback in the media controller framework at runtime.
However, enabled links which connect RPFs and WPFs that have an
equivalent index number are created during initialization.
This registers the pointer to a sink entity from the source entity
when an enabled link is created.

Signed-off-by: Katsuya Matsubara <matsu@igel.co.jp>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Sakari Ailus <sakari.ailus@iki.fi>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] v4l: Renesas R-Car VSP1 driver
Laurent Pinchart [Tue, 4 Jun 2013 14:22:30 +0000 (11:22 -0300)]
[media] v4l: Renesas R-Car VSP1 driver

The VSP1 is a video processing engine that includes a blender, scalers,
filters and statistics computation. Configurable data path routing logic
allows ordering the internal blocks in a flexible way.
Due to the configurable nature of the pipeline the driver implements the
media controller API and doesn't use the V4L2 mem-to-mem framework, even
though the device usually operates in memory to memory mode.
Only the read pixel formatters, up/down scalers, write pixel formatters
and LCDC interface are supported at this stage.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Sakari Ailus <sakari.ailus@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] v4l: Add V4L2_PIX_FMT_NV16M and V4L2_PIX_FMT_NV61M formats
Laurent Pinchart [Wed, 26 Jun 2013 12:46:42 +0000 (09:46 -0300)]
[media] v4l: Add V4L2_PIX_FMT_NV16M and V4L2_PIX_FMT_NV61M formats

NV16M and NV61M are planar YCbCr 4:2:2 and YCrCb 4:2:2 formats with a
luma plane followed by an interleaved chroma plane. The planes are not
required to be contiguous in memory, and the formats can only be used
with the multi-planar formats API.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Reviewed-by: Sakari Ailus <sakari.ailus@iki.fi>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] v4l: Add media format codes for ARGB8888 and AYUV8888 on 32-bit busses
Laurent Pinchart [Wed, 5 Jun 2013 07:19:53 +0000 (04:19 -0300)]
[media] v4l: Add media format codes for ARGB8888 and AYUV8888 on 32-bit busses

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] v4l: Fix V4L2_MBUS_FMT_YUV10_1X30 media bus pixel code value
Laurent Pinchart [Fri, 5 Jul 2013 13:44:15 +0000 (10:44 -0300)]
[media] v4l: Fix V4L2_MBUS_FMT_YUV10_1X30 media bus pixel code value

The V4L2_MBUS_FMT_YUV10_1X30 code is documented as being equal to
0x2014, while the v4l2-mediabus.h header defines it as 0x2016. Fix the
documentation.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Sakari Ailus <sakari.ailus@iki.fi>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] media: vb2: Take queue or device lock in mmap-related vb2 ioctl handlers
Laurent Pinchart [Fri, 2 Aug 2013 16:55:21 +0000 (13:55 -0300)]
[media] media: vb2: Take queue or device lock in mmap-related vb2 ioctl handlers

The vb2_fop_mmap() and vb2_fop_get_unmapped_area() functions are plug-in
implementation of the mmap() and get_unmapped_area() file operations
that calls vb2_mmap() and vb2_get_unmapped_area() on the queue
associated with the video device. Neither the
vb2_fop_mmap/vb2_fop_get_unmapped_area nor the
v4l2_mmap/vb2_get_unmapped_area functions in the V4L2 core take any
lock, leading to race conditions between mmap/get_unmapped_area and
other buffer-related ioctls such as VIDIOC_REQBUFS.
Fix it by taking the queue or device lock around the vb2_mmap() and
vb2_get_unmapped_area() calls.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] media: vb2: Clarify queue_setup() and buf_prepare() usage documentation
Laurent Pinchart [Fri, 2 Aug 2013 00:44:38 +0000 (21:44 -0300)]
[media] media: vb2: Clarify queue_setup() and buf_prepare() usage documentation

Explain how the two operations must handle formats and validate buffer
sizes when used with VIDIOC_CREATE_BUFS.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] Documentation: media: Clarify the VIDIOC_CREATE_BUFS format requirements
Laurent Pinchart [Fri, 2 Aug 2013 00:34:52 +0000 (21:34 -0300)]
[media] Documentation: media: Clarify the VIDIOC_CREATE_BUFS format requirements

The VIDIOC_CREATE_BUFS ioctl takes a format argument that must contain a
valid format supported by the driver. Clarify the documentation.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] media: Add support for circular graph traversal
Laurent Pinchart [Fri, 7 Jun 2013 15:45:11 +0000 (12:45 -0300)]
[media] media: Add support for circular graph traversal

The graph traversal API (media_entity_graph_walk_*) doesn't support
cyclic graphs and will fail to correctly walk a graph when circular
links exist. Support circular graph traversal by checking whether an
entity has already been visited before pushing it to the stack.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Sakari Ailus <sakari.ailus@iki.fi>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] s5p-mfc: Add support for VP8 encoder
Arun Kumar K [Tue, 9 Jul 2013 04:24:42 +0000 (01:24 -0300)]
[media] s5p-mfc: Add support for VP8 encoder

MFC v7 supports VP8 encoding and this patch adds support
for it in the driver.

Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] V4L: Add VP8 encoder controls
Arun Kumar K [Tue, 9 Jul 2013 04:24:41 +0000 (01:24 -0300)]
[media] V4L: Add VP8 encoder controls

This patch adds new V4L controls for VP8 encoding.

Signed-off-by: Kiran AVND <avnd.kiran@samsung.com>
Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] V4L: Add support for integer menu controls with standard menu items
Sylwester Nawrocki [Tue, 9 Jul 2013 04:24:40 +0000 (01:24 -0300)]
[media] V4L: Add support for integer menu controls with standard menu items

The patch modifies the helper function v4l2_ctrl_new_std_menu
to accept integer menu controls with standard menu items.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] s5p-mfc: Update driver for v7 firmware
Arun Kumar K [Tue, 9 Jul 2013 04:24:39 +0000 (01:24 -0300)]
[media] s5p-mfc: Update driver for v7 firmware

Firmware version v7 is mostly similar to v6 in terms
of hardware specific controls and commands. So the hardware
specific opr_v6 and cmd_v6 are re-used for v7 also. This patch
updates the v6 files to handle v7 version also.

Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] s5p-mfc: Core support for MFC v7
Arun Kumar K [Tue, 9 Jul 2013 04:24:38 +0000 (01:24 -0300)]
[media] s5p-mfc: Core support for MFC v7

Adds variant data and core support for the MFC v7 firmware

Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] s5p-mfc: Add register definition file for MFC v7
Arun Kumar K [Tue, 9 Jul 2013 04:24:37 +0000 (01:24 -0300)]
[media] s5p-mfc: Add register definition file for MFC v7

The patch adds the register definition file for new firmware
version v7 for MFC. New firmware supports VP8 encoding along with
many other features.

Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] s5p-mfc: Rename IS_MFCV6 macro
Arun Kumar K [Tue, 9 Jul 2013 04:24:36 +0000 (01:24 -0300)]
[media] s5p-mfc: Rename IS_MFCV6 macro

The MFC v6 specific code holds good for MFC v7 also as
the v7 version is a superset of v6 and the HW interface
remains more or less similar. This patch renames the macro
IS_MFCV6() to IS_MFCV6_PLUS() so that it can be used
for v7 also.

Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] s5p-mfc: Update v6 encoder buffer sizes
Arun Kumar K [Tue, 9 Jul 2013 04:24:35 +0000 (01:24 -0300)]
[media] s5p-mfc: Update v6 encoder buffer sizes

The patch updates few encoder buffer sizes for MFC v6.5
as per the udpdated user manual. The same buffer sizes
holds good for v7 firmware also.

Signed-off-by: Kiran AVND <avnd.kiran@samsung.com>
Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] stk1160: Build as a module if SND is m and audio support is selected
Mauro Carvalho Chehab [Sat, 27 Jul 2013 18:29:36 +0000 (15:29 -0300)]
[media] stk1160: Build as a module if SND is m and audio support is selected

As reported by Randy Dunlap:
When CONFIG_SND=m and CONFIG_SND_AC97_CODEC=m and
CONFIG_VIDEO_STK1160=y
CONFIG_VIDEO_STK1160_AC97=y
drivers/built-in.o: In function `stk1160_ac97_register':
(.text+0x122706): undefined reference to `snd_card_create'
drivers/built-in.o: In function `stk1160_ac97_register':
(.text+0x1227b2): undefined reference to `snd_ac97_bus'
drivers/built-in.o: In function `stk1160_ac97_register':
(.text+0x1227cd): undefined reference to `snd_card_free'
drivers/built-in.o: In function `stk1160_ac97_register':
(.text+0x12281b): undefined reference to `snd_ac97_mixer'
drivers/built-in.o: In function `stk1160_ac97_register':
(.text+0x122832): undefined reference to `snd_card_register'
drivers/built-in.o: In function `stk1160_ac97_unregister':
(.text+0x12285e): undefined reference to `snd_card_free'

Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Acked-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] cx23885-video: fix two warnings
Mauro Carvalho Chehab [Thu, 1 Aug 2013 17:30:30 +0000 (14:30 -0300)]
[media] cx23885-video: fix two warnings

drivers/media/pci/cx23885/cx23885-video.c:420:5: warning: no previous prototype for 'cx23885_flatiron_write' [-Wmissing-prototypes]
 int cx23885_flatiron_write(struct cx23885_dev *dev, u8 reg, u8 data)
     ^
drivers/media/pci/cx23885/cx23885-video.c:431:4: warning: no previous prototype for 'cx23885_flatiron_read' [-Wmissing-prototypes]
 u8 cx23885_flatiron_read(struct cx23885_dev *dev, u8 reg)

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] cx23885[v4]: Fix interrupt storm when enabling IR receiver
Luis Alves [Wed, 24 Jul 2013 12:06:01 +0000 (09:06 -0300)]
[media] cx23885[v4]: Fix interrupt storm when enabling IR receiver

Apparently the Flatiron genereates an interrupt after the built-in self
test for each of its left and right channels has completed.

Apparently Conexant wire-OR'ed the Flatiron's interrupt output with the
interrupt output of the CX23885 A/V core.

Those interrupts need to be handled, otherwise, they generate an
interrrupt request storm.

So:

- Add flatiron readreg and writereg functions prototypes
  on a new header file;
- Modify the av interrupt handler to cleanup flatiron IRQs if no other
  interrupt handling happens.

Signed-off-by: Luis Alves <ljalvs@gmail.com>
Acked-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] S2255: Removal of unnecessary videobuf_queue_is_busy
Dean Anderson [Tue, 23 Jul 2013 21:06:41 +0000 (18:06 -0300)]
[media] S2255: Removal of unnecessary videobuf_queue_is_busy

Removes unnecessary query of buffer state.  The code already checks if stream is active or not.

Signed-off-by: Dean Anderson <linux-dev@sensoray.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] media: lirc: Allow lirc dev to talk to rc device
Srinivas Kandagatla [Mon, 22 Jul 2013 07:23:07 +0000 (04:23 -0300)]
[media] media: lirc: Allow lirc dev to talk to rc device

The use case is simple, if any rc device has allowed protocols =
RC_TYPE_LIRC and map_name = RC_MAP_LIRC set, the driver open will be never
called. The reason for this is, all of the key maps except lirc have some
KEYS in there map, so during rc_register_device process these keys are
matched against the input drivers and open is performed, so for the case
of RC_MAP_EMPTY, a vt/keyboard is matched and the driver open is
performed.
In case of lirc, there is no match and result is that there is no open
performed, however the lirc-dev will go ahead and create a /dev/lirc0
node. Now when lircd/mode2 opens this device, no data is available
because the driver was never opened.
Other case pointed by Sean Young, As rc device gets opened via the
input interface. If the input device is never opened (e.g. embedded with
no console) then the rc open is never called and lirc will not work
either. So that's another case.
lirc_dev seems to have no link with actual rc device w.r.t open/close.
This patch adds rc_dev pointer to lirc_driver structure for cases like
this, so that it can do the open/close of the real driver in accordance
to lircd/mode2 open/close.
Without this patch its impossible to open a rc device which has
RC_TYPE_LIRC ad RC_MAP_LIRC set.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] media: rc: Add rc_open/close and use count to rc_dev
Srinivas Kandagatla [Mon, 22 Jul 2013 07:22:57 +0000 (04:22 -0300)]
[media] media: rc: Add rc_open/close and use count to rc_dev

This patch adds user count to rc_dev structure, the reason to add this
new member is to allow other code like lirc to open rc device directly.
In the existing code, rc device is only opened by input subsystem which
works ok if we have any input drivers to match. But in case like lirc
where there will be no input driver, rc device will be never opened.
Having this user count variable will be usefull to allow rc device to be
opened from code other than rc-main.
This patch also adds rc_open and rc_close functions for other drivers
like lirc to open and close rc devices. This functions safely increment
and decrement the user count. Other driver wanting to open rc device
should call rc_open and rc_close, rather than directly modifying the
rc_dev structure.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] coda: add CODA7541 decoding support
Philipp Zabel [Thu, 27 Jun 2013 09:59:01 +0000 (06:59 -0300)]
[media] coda: add CODA7541 decoding support

This patch enables decoding of h.264 and mpeg4 streams on CODA7541.
Queued output buffers are immediately copied into the bitstream
ringbuffer. A device_run can be scheduled whenever there is either
enough compressed bitstream data, or the CODA is in stream end mode.
Each successful device_run, data is read from the bitstream ringbuffer
and a frame is decoded into a free internal framebuffer. Depending on
reordering, a possibly previously decoded frame is marked as display
frame, and at the same time the display frame from the previous run
is copied out into a capture buffer by the rotator hardware.
The dequeued capture buffers are counted to send the EOS signal to
userspace with the last frame. When userspace sends the decoder stop
command or enqueues an empty output buffer, the stream end flag is
set to allow decoding the remaining frames in the bitstream
ringbuffer.
The enum_fmt/try_fmt functions return fixed capture buffer sizes
while the output queue is streaming, to allow better autonegotiation
in userspace.
A per-context buffer mutex is used to lock the picture run against
buffer dequeueing: if a job gets queued, then streamoff dequeues
the last buffer, and then device_run is called, bail out. For that
the interrupt handler has to be threaded.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] coda: split encoder specific parts out of device_run and irq_handler
Philipp Zabel [Fri, 21 Jun 2013 06:55:33 +0000 (03:55 -0300)]
[media] coda: split encoder specific parts out of device_run and irq_handler

Add coda_prepare_encode() and coda_finish_encode() functions. They are called
from coda_device_run() and coda_irq_handler(), respectively, before and after
the hardware picture run. This should make the following decoder support patch
easier to read, which will add the coda_prepare/finish_decode() equivalents.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] coda: dynamic IRAM setup for decoder
Philipp Zabel [Fri, 21 Jun 2013 06:55:32 +0000 (03:55 -0300)]
[media] coda: dynamic IRAM setup for decoder

This sets up IRAM areas used as temporary memory for the different
hardware units depending on the frame size.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] cx23885: Fix TeVii S471 regression since introduction of ts2020
Johannes Koch [Wed, 17 Jul 2013 17:28:16 +0000 (14:28 -0300)]
[media] cx23885: Fix TeVii S471 regression since introduction of ts2020

Patch to make TeVii S471 cards use the ts2020 tuner, since ds3000 driver no
longer contains tuning code.

Signed-off-by: Johannes Koch <johannes@ortsraum.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] lirc: make transmit interface consistent
Sean Young [Mon, 8 Jul 2013 20:33:09 +0000 (17:33 -0300)]
[media] lirc: make transmit interface consistent

All lirc drivers that can transmit, return EINVAL when they are passed
more than IR data than they can send. That is, except for two drivers
which I touched.

Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] lirc: validate transmission ir data
Sean Young [Mon, 8 Jul 2013 20:33:11 +0000 (17:33 -0300)]
[media] lirc: validate transmission ir data

The lirc interface allows 255 u32 spaces and pulses, which are usec. If
the driver can handle this (e.g. winbond-cir) you can produce hours of
meaningless IR data and there is no method of interrupting it.

Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] rc: allowed_protos now is a bit field
Sean Young [Mon, 8 Jul 2013 20:33:10 +0000 (17:33 -0300)]
[media] rc: allowed_protos now is a bit field

This one must have missed the conversion "c003ab1b [media] rc-core:
add separate defines for protocol bitmaps and numbers".

Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] redrat3: errors on unplug
Sean Young [Mon, 8 Jul 2013 20:33:08 +0000 (17:33 -0300)]
[media] redrat3: errors on unplug

In an usb disconnect handler, the urbs have already been cancelled so the
attempt to disable the IR receiver just results in errors:
[  899.638862] redrat3 7-2:1.0: redrat3_send_cmd: Error sending rr3 cmd res -110, data 0
[  899.638870] redrat3 7-2:1.0: redrat3_disable_detector: detector status: 251, should be 0

Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] DocBook: Fix typo in V4L2_CID_JPEG_COMPRESSION_QUALITY reference
Sylwester Nawrocki [Thu, 11 Jul 2013 08:20:15 +0000 (05:20 -0300)]
[media] DocBook: Fix typo in V4L2_CID_JPEG_COMPRESSION_QUALITY reference

Replace the erroneous V4L2_CID_JPEG_IMAGE_QUALITY control name
with V4L2_CID_JPEG_COMPRESSION_QUALITY.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] V4L: Merge struct v4l2_async_subdev_list with struct v4l2_subdev
Sylwester Nawrocki [Mon, 22 Jul 2013 11:01:33 +0000 (08:01 -0300)]
[media] V4L: Merge struct v4l2_async_subdev_list with struct v4l2_subdev

By integrating the v4l2-async API internals a bit more with
the core overall the v4l2-async code becomes a bit simpler
and easier to follow.
Acked-and-tested-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
11 years ago[media] V4L: Rename subdev field of struct v4l2_async_notifier
Sylwester Nawrocki [Fri, 19 Jul 2013 15:31:10 +0000 (12:31 -0300)]
[media] V4L: Rename subdev field of struct v4l2_async_notifier

This is a purely cosmetic change. Since the 'subdev' member
points to an array of subdevs make it more explicit by
renaming to the plural form.
Acked-and-tested-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>