GitHub/moto-9609/android_kernel_motorola_exynos9610.git
9 years ago[media] c8sectpfe: Add Kconfig and Makefile for the driver
Peter Griffin [Thu, 30 Jul 2015 17:09:00 +0000 (14:09 -0300)]
[media] c8sectpfe: Add Kconfig and Makefile for the driver

This patch adds the Kconfig and Makefile for the c8sectpfe driver
so it will be built. It also selects additional demodulator and tuners
which are required by the supported NIM cards.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] c8sectpfe: Add c8sectpfe debugfs support
Peter Griffin [Thu, 30 Jul 2015 17:08:59 +0000 (14:08 -0300)]
[media] c8sectpfe: Add c8sectpfe debugfs support

Some basic debugfs support to dump the IP registers. Further
statistics could easily be added in the future for example for
each enabled tsin channel we could expose number of corrupt packets
received etc.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] c8sectpfe: Add support for various ST NIM cards
Peter Griffin [Thu, 30 Jul 2015 17:08:58 +0000 (14:08 -0300)]
[media] c8sectpfe: Add support for various ST NIM cards

This patch adds support for the following 2 NIM cards: -
1) B2100A (2x stv0367 demods & 2x NXP tda18212 tuners)
2) STV0903-6110NIM (stv0903 demod + 6110 tuner, lnb24)

A NIM card is a cold plugable expansion card which usually
features a demodulator / tuner combination.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] c8sectpfe: Add LDVB helper functions
Peter Griffin [Thu, 30 Jul 2015 17:08:57 +0000 (14:08 -0300)]
[media] c8sectpfe: Add LDVB helper functions

These functions are used by the core code for creating the LDVB
devices and adapter.

Addtionally some older SoC's (and potentially newer ones) have different
frontend HW which would allow those devices to be easily supported
in the future by keeping the code specific to the IP separate from the
more generic code.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] c8sectpfe: STiH407/10 Linux DVB demux support
Peter Griffin [Thu, 30 Jul 2015 17:08:56 +0000 (14:08 -0300)]
[media] c8sectpfe: STiH407/10 Linux DVB demux support

This patch adds support for the c8sectpfe input HW found on
STiH407/410 SoC's.

It currently supports the TS input block, memdma engine
and hw PID filtering blocks of the C8SECTPFE subsystem.

The driver creates one LinuxDVB adapter, and a
demux/dvr/frontend set of devices for each tsin channel
which is specificed in the DT. It has been tested with
multiple tsin channels tuned, locked, and grabbing TS
simultaneously.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] ARM: DT: STi: STiH407: Add c8sectpfe LinuxDVB DT node
Peter Griffin [Thu, 30 Jul 2015 17:08:55 +0000 (14:08 -0300)]
[media] ARM: DT: STi: STiH407: Add c8sectpfe LinuxDVB DT node

This patch adds in the required DT node for the c8sectpfe
Linux DVB demux driver which allows the tsin channels
to be used on an upstream kernel.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] c8sectpfe: Add DT bindings documentation for c8sectpfe driver
Peter Griffin [Thu, 30 Jul 2015 17:08:54 +0000 (14:08 -0300)]
[media] c8sectpfe: Add DT bindings documentation for c8sectpfe driver

This patch adds the DT bindings documentation for the c8sectpfe LinuxDVB
demux driver whose IP is in the STiH407 family silicon SoC's.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] dvb-pll: Convert struct dvb_pll_desc uses to const
Joe Perches [Thu, 30 Jul 2015 17:08:53 +0000 (14:08 -0300)]
[media] dvb-pll: Convert struct dvb_pll_desc uses to const

Convert the struct dvb_pll_desc uses to const and
change the "entries" fixed array size from 12 to []

It saves a couple KB overall and remove ~5KB of data.

$ size drivers/media/dvb-frontends/dvb-pll.o*
   text        data     bss     dec     hex filename
   8520        1552    2120   12192    2fa0 drivers/media/dvb-frontends/dvb-pll.o.new
   5624        6363    2120   14107    371b drivers/media/dvb-frontends/dvb-pll.o.old

[PG] Patch taken from https://lkml.org/lkml/2015/6/24/721 with
commit message updated.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Reviewed-by: Michael Ira Krufky <m.krufky@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] stv0367: Add support for 16Mhz reference clock
Peter Griffin [Thu, 30 Jul 2015 17:08:52 +0000 (14:08 -0300)]
[media] stv0367: Add support for 16Mhz reference clock

The B2100A dvb NIM card from ST has 2x stv0367 demodulators
and 2x TDA18212 silicon tuners, with a 16Mhz crystal. To
get this working properly with the upstream driver we need
to add support for the 16Mhz reference clock.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] stv0367: Refine i2c error trace to include i2c address
Peter Griffin [Thu, 30 Jul 2015 17:08:51 +0000 (14:08 -0300)]
[media] stv0367: Refine i2c error trace to include i2c address

When using stv0367 demodulator with STi STB platforms,
we can have easily have four or more stv0367 demods running
in the system at one time.

As typically the b2120 reference design ships with a b2004a daughter
board, which can accept two dvb NIM cards, and each b2100A NIM
has 2x stv0367 demods and 2x NXPs tuner on it.

In such circumstances it is useful to print the i2c address
on error messages to know which one is failing due to I2C issues.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] ascot2e: don't use variable length arrays
Mauro Carvalho Chehab [Tue, 11 Aug 2015 18:36:15 +0000 (15:36 -0300)]
[media] ascot2e: don't use variable length arrays

The Linux stack is short; we need to be able to count the number
of bytes used at stack on each function. So, we don't like to
use variable-length arrays, as complained by smatch:
        drivers/media/dvb-frontends/horus3a.c:57:19: warning: Variable length array is used.

The max usecase of the driver seems to be 10 bytes + 1 for the
register.

So, let's be safe and allocate 11 bytes for the write buffer.
This should be enough to cover all cases. If not, let's print
an error message.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] horus3a: don't use variable length arrays
Mauro Carvalho Chehab [Tue, 11 Aug 2015 18:29:54 +0000 (15:29 -0300)]
[media] horus3a: don't use variable length arrays

The Linux stack is short; we need to be able to count the number
of bytes used at stack on each function. So, we don't like to
use variable-length arrays, as complained by smatch:
drivers/media/dvb-frontends/horus3a.c:57:19: warning: Variable length array is used.

The max usecase of the driver seems to be 5 bytes + 1 for the
register.

So, let's be safe and allocate 6 bytes for the write buffer.
This should be enough to cover all cases. If not, let's print
an error message.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] cxd2841er: don't use variable length arrays
Mauro Carvalho Chehab [Tue, 11 Aug 2015 18:22:36 +0000 (15:22 -0300)]
[media] cxd2841er: don't use variable length arrays

The Linux stack is short; we need to be able to count the number
of bytes used at stack on each function. So, we don't like to
use variable-length arrays, as complained by smatch:

drivers/media/dvb-frontends/cxd2841er.c:205:19: warning: Variable length array is used.

The max usecase of the driver seems to be 15 bytes + 1 for the
register.

So, let's be safe and allocate 17 bytes for the write buffer.
This should be enough to cover all cases. If not, let's print
an error message.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] netup_unidvb: NetUP Universal DVB-S/S2/T/T2/C PCI-E card driver
Kozlov Sergey [Tue, 28 Jul 2015 14:33:04 +0000 (11:33 -0300)]
[media] netup_unidvb: NetUP Universal DVB-S/S2/T/T2/C PCI-E card driver

Add NetUP Dual Universal CI PCIe board driver.
The board has
    - two CI slots
    - two I2C adapters
    - SPI master bus for accessing flash memory containing
      FPGA firmware

No changes required.

Signed-off-by: Kozlov Sergey <serjk@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] cxd2841er: declare static functions as such
Mauro Carvalho Chehab [Tue, 11 Aug 2015 18:08:47 +0000 (15:08 -0300)]
[media] cxd2841er: declare static functions as such

drivers/media/dvb-frontends/cxd2841er.c:992:5: warning: no previous prototype for 'cxd2841er_get_carrier_offset_t2' [-Wmissing-prototypes]
 int cxd2841er_get_carrier_offset_t2(
     ^
drivers/media/dvb-frontends/cxd2841er.c:1032:5: warning: no previous prototype for 'cxd2841er_get_carrier_offset_c' [-Wmissing-prototypes]
 int cxd2841er_get_carrier_offset_c(
     ^
drivers/media/dvb-frontends/cxd2841er.c:1360:5: warning: no previous prototype for 'cxd2841er_read_snr_t2' [-Wmissing-prototypes]
 int cxd2841er_read_snr_t2(struct cxd2841er_priv *priv, u32 *snr)
     ^

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] cxd2841er: Sony CXD2841ER DVB-S/S2/T/T2/C demodulator driver
Kozlov Sergey [Tue, 28 Jul 2015 14:33:03 +0000 (11:33 -0300)]
[media] cxd2841er: Sony CXD2841ER DVB-S/S2/T/T2/C demodulator driver

Add DVB-C/T/T2/S/S2 demodulator frontend driver Sony CXD2841ER chip.

Signed-off-by: Kozlov Sergey <serjk@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] lnbh25: LNBH25 SEC controller driver
Kozlov Sergey [Tue, 28 Jul 2015 14:33:02 +0000 (11:33 -0300)]
[media] lnbh25: LNBH25 SEC controller driver

Add DVB SEC frontend driver for STM LNBH25PQR chip.

[mchehab@osg.samsung.com: fix merge conflict:
 fe_sec_voltage_t should not be used in kernelspace anymore.
 instead, it should use enum fe_sec_voltage]
Signed-off-by: Kozlov Sergey <serjk@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] ascot2e: Sony Ascot2e DVB-C/T/T2 tuner driver
Kozlov Sergey [Tue, 28 Jul 2015 14:33:01 +0000 (11:33 -0300)]
[media] ascot2e: Sony Ascot2e DVB-C/T/T2 tuner driver

Add DVB-T/T2/C frontend driver for Sony Ascot2e (CXD2861ER) chip.

Signed-off-by: Kozlov Sergey <serjk@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] horus3a: Sony Horus3A DVB-S/S2 tuner driver
Kozlov Sergey [Tue, 28 Jul 2015 14:33:00 +0000 (11:33 -0300)]
[media] horus3a: Sony Horus3A DVB-S/S2 tuner driver

Add DVB-S/S2 frontend driver for Sony Horus3A (CXD2832AER) chip

Signed-off-by: Kozlov Sergey <serjk@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] Technisat SkyStar USB HD,(DVB-S/S2) too much URBs for arm devices
Christian Löpke [Sat, 18 Jul 2015 07:15:01 +0000 (04:15 -0300)]
[media] Technisat SkyStar USB HD,(DVB-S/S2) too much URBs for arm devices

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 <loepke@edfritsch.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] rc-core: improve the lirc protocol reporting
David Härdeman [Wed, 22 Jul 2015 20:55:24 +0000 (17:55 -0300)]
[media] rc-core: improve the lirc protocol reporting

Commit 275ddb40bcf686d210d86c6718e42425a6a0bc76 removed the lirc
"protocol" but kept backwards compatibility by always listing
the protocol as present and enabled. This patch further improves
the logic by only listing the protocol if the lirc module is loaded
(or if lirc is builtin).

Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] staging: Drop owner assignment from i2c_driver
Krzysztof Kozlowski [Fri, 10 Jul 2015 06:34:28 +0000 (03:34 -0300)]
[media] staging: Drop owner assignment from i2c_driver

i2c_driver does not need to set an owner because i2c_register_driver()
will set it.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] staging: iio: Drop owner assignment from i2c_driver
Krzysztof Kozlowski [Fri, 10 Jul 2015 06:34:26 +0000 (03:34 -0300)]
[media] staging: iio: Drop owner assignment from i2c_driver

i2c_driver does not need to set an owner because i2c_register_driver()
will set it.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] staging: media: Drop owner assignment from i2c_driver
Krzysztof Kozlowski [Fri, 10 Jul 2015 06:34:27 +0000 (03:34 -0300)]
[media] staging: media: Drop owner assignment from i2c_driver

i2c_driver does not need to set an owner because i2c_register_driver()
will set it.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] Drop owner assignment from i2c_driver
Krzysztof Kozlowski [Fri, 10 Jul 2015 06:19:48 +0000 (03:19 -0300)]
[media] Drop owner assignment from i2c_driver

i2c_driver does not need to set an owner because i2c_register_driver()
will set it.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] tuners: Drop owner assignment from i2c_driver
Krzysztof Kozlowski [Fri, 10 Jul 2015 06:19:47 +0000 (03:19 -0300)]
[media] tuners: Drop owner assignment from i2c_driver

i2c_driver does not need to set an owner because i2c_register_driver()
will set it.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] radio: Drop owner assignment from i2c_driver
Krzysztof Kozlowski [Fri, 10 Jul 2015 06:19:46 +0000 (03:19 -0300)]
[media] radio: Drop owner assignment from i2c_driver

i2c_driver does not need to set an owner because i2c_register_driver()
will set it.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] i2c: Drop owner assignment from i2c_driver
Krzysztof Kozlowski [Fri, 10 Jul 2015 06:19:44 +0000 (03:19 -0300)]
[media] i2c: Drop owner assignment from i2c_driver

i2c_driver does not need to set an owner because i2c_register_driver()
will set it.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] dvb-frontends: Drop owner assignment from platform_driver
Krzysztof Kozlowski [Fri, 10 Jul 2015 06:19:43 +0000 (03:19 -0300)]
[media] dvb-frontends: Drop owner assignment from platform_driver

platform_driver does not need to set an owner because
platform_driver_register() will set it.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] dvb-frontends: Drop owner assignment from i2c_driver
Krzysztof Kozlowski [Fri, 10 Jul 2015 06:19:42 +0000 (03:19 -0300)]
[media] dvb-frontends: Drop owner assignment from i2c_driver

i2c_driver does not need to set an owner because i2c_register_driver()
will set it.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] pctv452e: Replace memset with eth_zero_addr
Vaishali Thakkar [Fri, 26 Jun 2015 04:34:37 +0000 (01:34 -0300)]
[media] pctv452e: Replace memset with eth_zero_addr

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 <vthakkar1994@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] tuners: Make all TV tuners visible if COMPILE_TEST=y
Geert Uytterhoeven [Mon, 29 Jun 2015 13:46:49 +0000 (10:46 -0300)]
[media] tuners: Make all TV tuners visible if COMPILE_TEST=y

Make the TV tuners menu visible when compile-testing, to allow
selecting additional drivers on top of the drivers that are already
automatically selected if MEDIA_SUBDRV_AUTOSELECT is enabled.

Without this, many drivers stay disabled during e.g. allmodconfig.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] ttpci: Replace memset with eth_zero_addr
Vaishali Thakkar [Fri, 26 Jun 2015 04:47:49 +0000 (01:47 -0300)]
[media] ttpci: Replace memset with eth_zero_addr

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 <vthakkar1994@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] usb/airspy: removing unneeded goto
Maninder Singh [Thu, 25 Jun 2015 09:58:58 +0000 (06:58 -0300)]
[media] usb/airspy: removing unneeded goto

This patch removes unneded goto,
reported by coccinelle.

Signed-off-by: Maninder Singh <maninder1.s@samsung.com>
Reviewed-by: Akhilesh Kumar <akhilesh.k@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] i2c: Make all i2c devices visible if COMPILE_TEST=y
Geert Uytterhoeven [Mon, 29 Jun 2015 13:46:48 +0000 (10:46 -0300)]
[media] i2c: Make all i2c devices visible if COMPILE_TEST=y

Make the i2c devices menu visible when compile-testing, to allow
selecting additional drivers on top of the drivers that are already
automatically selected if MEDIA_SUBDRV_AUTOSELECT is enabled.

Without this, many drivers stay disabled during e.g. allmodconfig.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] dvb-frontends: Make all DVB Frontends visible if COMPILE_TEST=y
Geert Uytterhoeven [Mon, 29 Jun 2015 13:46:47 +0000 (10:46 -0300)]
[media] dvb-frontends: Make all DVB Frontends visible if COMPILE_TEST=y

Make the DVB Frontends menu visible when compile-testing, to allow
selecting additional drivers on top of the drivers that are already
automatically selected if MEDIA_SUBDRV_AUTOSELECT is enabled.

Without this, many drivers stay disabled during e.g. allmodconfig.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] x86/mm/pat, drivers/media/ivtv: move pat warn and replace WARN() with pr_warn()
Luis R. Rodriguez [Wed, 24 Jun 2015 17:23:20 +0000 (14:23 -0300)]
[media] x86/mm/pat, drivers/media/ivtv: move pat warn and replace WARN() with pr_warn()

On built-in kernels this warning will always splat as this is part
of the module init. Fix that by shifting the PAT requirement check
out under the code that does the "quasi-probe" for the device. This
device driver relies on an existing driver to find its own devices,
it looks for that device driver and its own found devices, then
uses driver_for_each_device() to try to see if it can probe each of
those devices as a frambuffer device with ivtvfb_init_card(). We
tuck the PAT requiremenet check then on the ivtvfb_init_card()
call making the check at least require an ivtv device present
before complaining.

Reported-by: Fengguang Wu <fengguang.wu@intel.com> [0-day test robot]
Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] s5c73m3: Remove redundant spi driver bus initialization
Antonio Borneo [Tue, 23 Jun 2015 14:53:19 +0000 (11:53 -0300)]
[media] s5c73m3: Remove redundant spi driver bus initialization

In ancient times it was necessary to manually initialize the bus
field of an spi_driver to spi_bus_type. These days this is done in
spi_register_driver(), so we can drop the manual assignment.

Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] pci/Kconfig: don't use MEDIA_ANALOG_TV_SUPPORT for grabber cards
Krzysztof Hałasa [Fri, 19 Jun 2015 10:20:40 +0000 (07:20 -0300)]
[media] pci/Kconfig: don't use MEDIA_ANALOG_TV_SUPPORT for grabber cards

I noticed certain cards are currently under MEDIA_ANALOG_TV_SUPPORT
but it seems they are frame grabbers (with CVBS, Svideo etc. inputs)
rather than TV receivers (with analog TV tuners).

MEDIA_CAMERA_SUPPORT maybe isn't the best name (only "meye" driver seems
to drive a real camera in a laptop) but it at least doesn't select the
TUNERs.

Perhaps the following patch would make sense.

Signed-off-by: Krzysztof Ha?asa <khalasa@piap.pl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] mantis: remove an uneeded goto
Mauro Carvalho Chehab [Tue, 11 Aug 2015 13:30:24 +0000 (10:30 -0300)]
[media] mantis: remove an uneeded goto

Gotos makes a little harder to check the code. In this
particular case, the goto is doing nothing but jumping into
a return.

Instead, just replace the goto by the return, making it
simpler.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] mantis: Fix error handling in mantis_dma_init()
Fabio Estevam [Mon, 10 Aug 2015 17:11:41 +0000 (14:11 -0300)]
[media] mantis: Fix error handling in mantis_dma_init()

Current code assigns 0 to variable 'err', which makes mantis_dma_init()
to return success even if mantis_alloc_buffers() fails.

Fix it by checking the return value from mantis_alloc_buffers() and
propagating it in the case of error.

Reported-by: RUC_Soft_Sec <zy900702@163.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] mt9v032: fix uninitialized variable warning
Hans Verkuil [Tue, 28 Jul 2015 08:33:55 +0000 (05:33 -0300)]
[media] mt9v032: fix uninitialized variable warning

drivers/media/i2c/mt9v032.c: In function ‘mt9v032_probe’:
  CC [M]  drivers/media/i2c/s5k4ecgx.o
drivers/media/i2c/mt9v032.c:996:20: warning: ‘pdata’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  if (pdata && pdata->link_freqs) {
                    ^

It can indeed be uninitialized in one corner case. Initialize to NULL.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] v4l2: move tracepoint generation into separate file
Philipp Zabel [Thu, 6 Aug 2015 12:38:02 +0000 (09:38 -0300)]
[media] v4l2: move tracepoint generation into separate file

To compile videobuf2-core as a module, the vb2_* tracepoints must be
exported from the videodev module. Instead of exporting vb2 tracepoint
symbols from v4l2-ioctl.c, move the tracepoint generation into a separate
file. This patch fixes the following build error in the modpost stage,
introduced by 2091f5181c66 ("[media] videobuf2: add trace events"):

    ERROR: "__tracepoint_vb2_buf_done" undefined!
    ERROR: "__tracepoint_vb2_dqbuf" undefined!
    ERROR: "__tracepoint_vb2_qbuf" undefined!
    ERROR: "__tracepoint_vb2_buf_queue" undefined!

Suggested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] vivid: support cvt, gtf timings for video out
Prashant Laddha [Mon, 3 Aug 2015 08:36:43 +0000 (05:36 -0300)]
[media] vivid: support cvt, gtf timings for video out

The generation of cvt, gtf timings is already supported by v4l2-ctl.
This patch adds support for setting cvt,gtf timings for video out.
While enabling cvt,gtf in vivid capture, the vivid video out was
missed out. Adding it now.

Signed-off-by: Prashant Laddha <prladdha@cisco.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] media: adv7604: reduce support to first (digital) input
William Towle [Thu, 23 Jul 2015 12:21:34 +0000 (09:21 -0300)]
[media] media: adv7604: reduce support to first (digital) input

Using adv7611_read_cable_det() for ADV7612 means that full
support for '.max_port = ADV7604_PAD_HDMI_PORT_B,' isn't available
due to the need for multiple port reads to determine cable detection,
and an agreed mechanism for communicating the separate statuses.

This patch replaces adv7611_read_cable_det() with a functionally
identical copy, commented appropriately.

Earlier submissions [leading to commit 8331d30b] also set .cp_csc,
which is used in a cp_read() call within adv76xx_log_status().

Signed-off-by: William Towle <william.towle@codethink.co.uk>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] media: adv7604: fix probe of ADV7611/7612
William Towle [Thu, 23 Jul 2015 12:21:33 +0000 (09:21 -0300)]
[media] media: adv7604: fix probe of ADV7611/7612

Prior to commit f862f57d ("[media] media: i2c: ADV7604: Migrate to
regmap"), the local variable 'val' contained the combined register
reads used in the chipset version ID test. Restore this expectation
so that the comparison works as it used to.

Signed-off-by: William Towle <william.towle@codethink.co.uk>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] soc_camera: always release queue for queue owner
Hans Verkuil [Mon, 15 Jun 2015 11:33:40 +0000 (08:33 -0300)]
[media] soc_camera: always release queue for queue owner

Always release the queue if the owner closes its filehandle and not when
it is the last open filehandle.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] soc_camera: pass on streamoff error
Hans Verkuil [Mon, 15 Jun 2015 11:33:39 +0000 (08:33 -0300)]
[media] soc_camera: pass on streamoff error

If streamoff returned an error, then pass that on to the caller.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] soc_camera: compliance fixes
Hans Verkuil [Mon, 15 Jun 2015 11:33:38 +0000 (08:33 -0300)]
[media] soc_camera: compliance fixes

- REQBUFS(0) will stop streaming, free buffers and release the file ownership.
- Return ENOTTY for create_bufs for a vb1 driver
- Return EBUSY if there is a different streaming owner and set the new owner on
  success.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] soc_camera: fix expbuf support
Hans Verkuil [Mon, 15 Jun 2015 11:33:37 +0000 (08:33 -0300)]
[media] soc_camera: fix expbuf support

- For vb1 drivers just return -ENOTTY.
- For vb2 drivers allow vb2_expbuf without there being a stream owner:
  the vb2_expbuf function will return the correct error message in that case.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] soc_camera: fix enum_input
Hans Verkuil [Mon, 15 Jun 2015 11:33:36 +0000 (08:33 -0300)]
[media] soc_camera: fix enum_input

Fill in the std field from the video_device tvnorms field.

This fixes a v4l2-compliance failure.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Rob Taylor <rob.taylor@codethink.co.uk>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] sh_mobile_ceu_camera: set field to FIELD_NONE
Hans Verkuil [Mon, 15 Jun 2015 11:33:35 +0000 (08:33 -0300)]
[media] sh_mobile_ceu_camera: set field to FIELD_NONE

Make sure that 'field' isn't FIELD_ANY when the driver is
first loaded. Fixes a v4l2-compliance failure.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] sh_mobile_ceu_camera: fix querycap
Hans Verkuil [Mon, 15 Jun 2015 11:33:34 +0000 (08:33 -0300)]
[media] sh_mobile_ceu_camera: fix querycap

Fill in the bus_info and driver fields. Found by v4l2-compliance.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] mt9t112: JPEG -> SRGB
Hans Verkuil [Mon, 15 Jun 2015 11:33:33 +0000 (08:33 -0300)]
[media] mt9t112: JPEG -> SRGB

The JPEG colorspace should only be used for JPEG encoded images. This is
just a regular sRGB sensor.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] ak881x: simplify standard checks
Hans Verkuil [Mon, 15 Jun 2015 11:33:32 +0000 (08:33 -0300)]
[media] ak881x: simplify standard checks

Simplify confusing conditions. This also swaps the checks for NTSC and PAL:
to be consistent with other drivers check for NTSC first. So if the user
sets both NTSC and PAL bits, then NTSC wins.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] tw9910: init priv->scale and update standard
Hans Verkuil [Mon, 15 Jun 2015 11:33:31 +0000 (08:33 -0300)]
[media] tw9910: init priv->scale and update standard

When the standard changes the VACTIVE and VDELAY values need to be updated.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] tw9910: don't use COLORSPACE_JPEG
Hans Verkuil [Mon, 15 Jun 2015 11:33:30 +0000 (08:33 -0300)]
[media] tw9910: don't use COLORSPACE_JPEG

This is an SDTV video receiver, so the colorspace should be SMPTE170M.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] sh-veu: initialize timestamp_flags and copy timestamp info
Hans Verkuil [Mon, 15 Jun 2015 11:33:28 +0000 (08:33 -0300)]
[media] sh-veu: initialize timestamp_flags and copy timestamp info

This field wasn't set, causing WARN_ON's from the vb2 core.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] tda10071: implement DVBv5 statistics
Antti Palosaari [Tue, 21 Apr 2015 14:14:44 +0000 (11:14 -0300)]
[media] tda10071: implement DVBv5 statistics

Implement DVBv5 CNR, signal strength, BER and block errors.

Wrap legacy DVBv3 statistics to DVBv5 internally.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] tda10071: do not get_frontend() when not ready
Antti Palosaari [Tue, 21 Apr 2015 14:16:44 +0000 (11:16 -0300)]
[media] tda10071: do not get_frontend() when not ready

This is a bit hack, but returning error when driver is not tuned yet
causes DVBv5 zap stop polling DVBv5 statistics. Thus return 0 even
callback is called during invalid device state.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] tda10071: protect firmware command exec with mutex
Antti Palosaari [Tue, 21 Apr 2015 12:58:15 +0000 (09:58 -0300)]
[media] tda10071: protect firmware command exec with mutex

There should be clearly some lock in order to make sure firmware
command in execution is not disturbed by another command. It has
worked as callbacks are serialized somehow pretty well and command
execution happens usually without any delays.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] tda10071: convert to regmap I2C API
Antti Palosaari [Tue, 21 Apr 2015 01:21:44 +0000 (22:21 -0300)]
[media] tda10071: convert to regmap I2C API

Use regmap API for I2C operations.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] tda10071: rename device state struct to dev
Antti Palosaari [Mon, 20 Apr 2015 23:04:00 +0000 (20:04 -0300)]
[media] tda10071: rename device state struct to dev

Rename device state struct from 'priv' to 'dev'.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] tda10071: remove legacy media attach
Antti Palosaari [Mon, 20 Apr 2015 22:54:56 +0000 (19:54 -0300)]
[media] tda10071: remove legacy media attach

All users are now using I2C binding and old attach could be removed.
Use I2C client for proper logging at the same.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] a8293: coding style issues
Antti Palosaari [Mon, 20 Apr 2015 21:57:03 +0000 (18:57 -0300)]
[media] a8293: coding style issues

Remove FSF address from license. Indent parameter correctly.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] a8293: improve LNB register programming logic
Antti Palosaari [Mon, 20 Apr 2015 21:47:44 +0000 (18:47 -0300)]
[media] a8293: improve LNB register programming logic

On power-on LNB power supply voltage is disabled, due to that no
need to disable it during probe. Tone is supply is hard-coded as
external tone coming from the demodulator. Program both voltage
and tone on set_voltage(). Use register cache to prevent unneeded
programming.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] a8293: use i2c_master_send / i2c_master_recv for I2C I/O
Antti Palosaari [Mon, 20 Apr 2015 21:16:19 +0000 (18:16 -0300)]
[media] a8293: use i2c_master_send / i2c_master_recv for I2C I/O

As driver is now proper I2C client driver, we could use correct
functions for I2C I/O. Also rename state from priv to dev. Fix
logging too.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] a8293: remove legacy media attach
Antti Palosaari [Mon, 20 Apr 2015 20:39:33 +0000 (17:39 -0300)]
[media] a8293: remove legacy media attach

Remove legacy media attach as all users are on I2C bindings now.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] em28xx: remove unused a8293 SEC config
Antti Palosaari [Fri, 17 Apr 2015 01:55:31 +0000 (22:55 -0300)]
[media] em28xx: remove unused a8293 SEC config

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 <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] bt819/saa7110/vpx3220: remove legacy control ops
Hans Verkuil [Mon, 20 Jul 2015 13:18:22 +0000 (10:18 -0300)]
[media] bt819/saa7110/vpx3220: remove legacy control ops

The zoran driver has now been converted to the control framework
which means that these three subdevice drivers no longer need to
support the legacy core control ops since the last bridge driver
that needed that has now been converted.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] zoran: convert to the control framework and to v4l2_fh
Hans Verkuil [Mon, 20 Jul 2015 13:18:21 +0000 (10:18 -0300)]
[media] zoran: convert to the control framework and to v4l2_fh

Switch this driver to the control framework and to v4l2_fh for
handling control events.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] zoran: use standard core lock
Hans Verkuil [Mon, 20 Jul 2015 13:18:20 +0000 (10:18 -0300)]
[media] zoran: use standard core lock

Use the standard core lock to take care of serializing ioctl calls and
to serialize file operations.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] zoran: remove unused read/write functions
Hans Verkuil [Mon, 20 Jul 2015 13:18:19 +0000 (10:18 -0300)]
[media] zoran: remove unused read/write functions

The zoran_read/write functions always return an error. Just remove them.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] zoran: remove unnecessary memset
Hans Verkuil [Mon, 20 Jul 2015 13:18:18 +0000 (10:18 -0300)]
[media] zoran: remove unnecessary memset

There is no need to zero the v4l2_capability struct, the v4l2 core has done
that already.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] fsl-viu: drop format names
Hans Verkuil [Mon, 20 Jul 2015 13:09:33 +0000 (10:09 -0300)]
[media] fsl-viu: drop format names

The names of the pixelformats is set by the core. So there no longer
is any need for drivers to fill it in.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] fsl-viu: small fixes
Hans Verkuil [Mon, 20 Jul 2015 13:09:32 +0000 (10:09 -0300)]
[media] fsl-viu: small fixes

- Fix an off-by-one index check in vidioc_enum_fmt()
- Fill in the pix.sizeimage field in vidioc_try_fmt_cap()
- Fix an off-by-one index check in vidioc_s_input()

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] fsl-viu: add control event support
Hans Verkuil [Mon, 20 Jul 2015 13:09:31 +0000 (10:09 -0300)]
[media] fsl-viu: add control event support

Convert the driver to use v4l2_fh in order to support control events.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] fsl-viu: fill in colorspace, always set field to interlaced
Hans Verkuil [Mon, 20 Jul 2015 13:09:30 +0000 (10:09 -0300)]
[media] fsl-viu: fill in colorspace, always set field to interlaced

- fill in the missing colorspace value.
- don't reject incorrect field values, always replace with a valid value.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] fsl-viu: fill in bus_info in vidioc_querycap
Hans Verkuil [Mon, 20 Jul 2015 13:09:29 +0000 (10:09 -0300)]
[media] fsl-viu: fill in bus_info in vidioc_querycap

The bus_info field was never filled.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] fsl-viu: convert to the control framework
Hans Verkuil [Mon, 20 Jul 2015 13:09:28 +0000 (10:09 -0300)]
[media] fsl-viu: convert to the control framework

Interestingly enough, the existing control handling code basically did
nothing. At least the new code will inherit the controls from the
saa7115 driver.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] usbvision: move init code to probe()
Hans Verkuil [Mon, 20 Jul 2015 12:59:38 +0000 (09:59 -0300)]
[media] usbvision: move init code to probe()

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 <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] usbvision: fix standards for S-Video/Composite inputs
Hans Verkuil [Mon, 20 Jul 2015 12:59:37 +0000 (09:59 -0300)]
[media] usbvision: fix standards for S-Video/Composite inputs

The standards supported by S-Video and Composite inputs are not
limited by PAL, so make it more generic.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] usbvision: fix DMA from stack warnings
Hans Verkuil [Mon, 20 Jul 2015 12:59:36 +0000 (09:59 -0300)]
[media] usbvision: fix DMA from stack warnings

In various places the stack was used to provide buffers for USB data, but
this should be allocated memory.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] usbvision: fix locking error
Hans Verkuil [Mon, 20 Jul 2015 12:59:35 +0000 (09:59 -0300)]
[media] usbvision: fix locking error

If remove_pending is non-zero, then the v4l2_lock is never unlocked.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] usbvision: set field and colorspace
Hans Verkuil [Mon, 20 Jul 2015 12:59:34 +0000 (09:59 -0300)]
[media] usbvision: set field and colorspace

Set the colorspace and field in vidioc_try_fmt_vid_cap().

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] usbvision: frequency fixes
Hans Verkuil [Mon, 20 Jul 2015 12:59:33 +0000 (09:59 -0300)]
[media] usbvision: frequency fixes

- 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 <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] usbvision: the radio device node has wrong caps
Hans Verkuil [Mon, 20 Jul 2015 12:59:32 +0000 (09:59 -0300)]
[media] usbvision: the radio device node has wrong caps

The radio device node had the same caps as the video node. Fix this.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] usbvision: remove g/s_audio and for radio remove enum/g/s_input
Hans Verkuil [Mon, 20 Jul 2015 12:59:31 +0000 (09:59 -0300)]
[media] usbvision: remove g/s_audio and for radio remove enum/g/s_input

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 <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] usbvision: return valid error in usbvision_register_video()
Hans Verkuil [Mon, 20 Jul 2015 12:59:30 +0000 (09:59 -0300)]
[media] usbvision: return valid error in usbvision_register_video()

Don't return -1, return a proper error code.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] usbvision: convert to the control framework
Hans Verkuil [Mon, 20 Jul 2015 12:59:29 +0000 (09:59 -0300)]
[media] usbvision: convert to the control framework

Convert this driver to the control framework and struct v4l2_fh
(needed for handling control events).

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] usbvision: remove power_on_at_open and timed power off
Hans Verkuil [Mon, 20 Jul 2015 12:59:28 +0000 (09:59 -0300)]
[media] usbvision: remove power_on_at_open and timed power off

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 <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] DocBook: Fix typo in intro.xml
Masanari Iida [Mon, 13 Jul 2015 23:36:50 +0000 (20:36 -0300)]
[media] DocBook: Fix typo in intro.xml

This patch fix spelling typos in intro.xml.
This xml file is not created from comments within source,
I fix the xml file.

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
[hans.verkuil@cisco.com: removed mention of obsolete devfs]
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] MAINTAINERS: V4L2: PLATFORM: Add entry for Renesas JPEG Processing Unit driver
Mikhail Ulyanov [Wed, 22 Jul 2015 11:23:05 +0000 (08:23 -0300)]
[media] MAINTAINERS: V4L2: PLATFORM: Add entry for Renesas JPEG Processing Unit driver

Update RENESAS JPU driver maintainer in MAINTAINERS file.

Signed-off-by: Mikhail Ulyanov <mikhail.ulyanov@cogentembedded.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] V4L2: platform: Add Renesas R-Car JPEG codec driver
Mikhail Ulyanov [Wed, 22 Jul 2015 11:23:03 +0000 (08:23 -0300)]
[media] V4L2: platform: Add Renesas R-Car JPEG codec driver

Here's the driver for the Renesas R-Car JPEG processing unit.

The driver is implemented within the V4L2 framework as a memory-to-memory
device.  It presents two video nodes to userspace, one for the encoding part,
and one for the decoding part.

It was found that the only working mode for encoding is no markers output, so we
generate markers with software. In the current version of driver we also use
software JPEG header parsing because with hardware parsing performance is lower
than desired.

>From a userspace point of view the process is typical (S_FMT, REQBUF,
optionally QUERYBUF, QBUF, STREAMON, DQBUF) for both the source and destination
queues. STREAMON can return -EINVAL in case of mismatch of output and capture
queues format. Also during decoding driver can return buffers if queued
buffer with JPEG image contains image with inappropriate subsampling (e.g.
4:2:0 in JPEG and 4:2:2 in capture).  If JPEG image and queue format dimensions
differ driver will return buffer on QBUF with VB2_BUF_STATE_ERROR flag.

During encoding the available formats are: V4L2_PIX_FMT_NV12M,
V4L2_PIX_FMT_NV12, V4L2_PIX_FMT_NV16, V4L2_PIX_FMT_NV16M for source and
V4L2_PIX_FMT_JPEG for destination.

During decoding the available formats are: V4L2_PIX_FMT_JPEG for source and
V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_NV16M, V4L2_PIX_FMT_NV12, V4L2_PIX_FMT_NV16
for destination.

Performance of current version:
1280x800 NV12 image encoding/decoding
decoding ~122 FPS
encoding ~191 FPS

Signed-off-by: Mikhail Ulyanov <mikhail.ulyanov@cogentembedded.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] devicetree: bindings: Document Renesas R-Car JPEG Processing Unit
Mikhail Ulyanov [Wed, 22 Jul 2015 11:23:04 +0000 (08:23 -0300)]
[media] devicetree: bindings: Document Renesas R-Car JPEG Processing Unit

Add Renesas R-Car JPEG processing unit driver device tree bindings
documentation.

Signed-off-by: Mikhail Ulyanov <mikhail.ulyanov@cogentembedded.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] v4l2-ioctl: Give more information when device_caps are missing
Laura Abbott [Thu, 23 Jul 2015 22:28:48 +0000 (19:28 -0300)]
[media] v4l2-ioctl: Give more information when device_caps are missing

Currently, the warning for missing device_caps gives a backtrace like so:

[<ffffffff8175c199>] dump_stack+0x45/0x57
[<ffffffff8109ad5a>] warn_slowpath_common+0x8a/0xc0
[<ffffffff8109ae8a>] warn_slowpath_null+0x1a/0x20
[<ffffffffa0237453>] v4l_querycap+0x43/0x80 [videodev]
[<ffffffffa0237734>] __video_do_ioctl+0x2a4/0x320 [videodev]
[<ffffffff812207e5>] ? do_last+0x195/0x1210
[<ffffffffa023a11e>] video_usercopy+0x22e/0x5b0 [videodev]
[<ffffffffa0237490>] ? v4l_querycap+0x80/0x80 [videodev]
[<ffffffffa023a4b5>] video_ioctl2+0x15/0x20 [videodev]
[<ffffffffa0233733>] v4l2_ioctl+0x113/0x150 [videodev]
[<ffffffff81225798>] do_vfs_ioctl+0x2f8/0x4f0
[<ffffffff8113b2d4>] ? __audit_syscall_entry+0xb4/0x110
[<ffffffff81022d7c>] ? do_audit_syscall_entry+0x6c/0x70
[<ffffffff81225a11>] SyS_ioctl+0x81/0xa0
[<ffffffff8113b526>] ? __audit_syscall_exit+0x1f6/0x2a0
[<ffffffff81763549>] system_call_fastpath+0x12/0x17

This indicates that device_caps are missing but doesn't give
much of a clue which driver is actually at fault. Improve
the warning output by showing the capabilities and the
responsible driver.

Signed-off-by: Laura Abbott <labbott@fedoraproject.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] tc358743: remove unused variable
Hans Verkuil [Mon, 20 Jul 2015 09:47:23 +0000 (06:47 -0300)]
[media] tc358743: remove unused variable

The bt pointer was never used, remove it.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] v4l2-mem2mem: drop lock in v4l2_m2m_fop_mmap
Hans Verkuil [Mon, 20 Jul 2015 07:58:24 +0000 (04:58 -0300)]
[media] v4l2-mem2mem: drop lock in v4l2_m2m_fop_mmap

The v4l2_m2m_fop_mmap function takes the core mutex, but this will result in a potential
circular locking dependency:

[  262.517164] ======================================================
[  262.517166] [ INFO: possible circular locking dependency detected ]
[  262.517169] 4.2.0-rc2-koryphon #844 Not tainted
[  262.517171] -------------------------------------------------------
[  262.517173] v4l2-compliance/1379 is trying to acquire lock:
[  262.517175]  (&dev->dev_mutex){+.+.+.}, at: [<ffffffffa000ddab>] v4l2_m2m_fop_mmap+0x2b/0x90 [v4l2_mem2mem]
[  262.517187]
               but task is already holding lock:
[  262.517189]  (&mm->mmap_sem){++++++}, at: [<ffffffff81159309>] vm_mmap_pgoff+0x69/0xc0
[  262.517199]
               which lock already depends on the new lock.

[  262.517202]
               the existing dependency chain (in reverse order) is:
[  262.517204]
               -> #1 (&mm->mmap_sem){++++++}:
[  262.517209]        [<ffffffff810d0e6b>] __lock_acquire+0x62b/0xe80
[  262.517215]        [<ffffffff810d2095>] lock_acquire+0x65/0x90
[  262.517218]        [<ffffffff811612e5>] __might_fault+0x75/0xa0
[  262.517222]        [<ffffffffa06dead9>] video_usercopy+0x3e9/0x4e0 [videodev]
[  262.517231]        [<ffffffffa06debe0>] video_ioctl2+0x10/0x20 [videodev]
[  262.517238]        [<ffffffffa06d8663>] v4l2_ioctl+0xc3/0xe0 [videodev]
[  262.517243]        [<ffffffff811a8cac>] do_vfs_ioctl+0x2fc/0x550
[  262.517248]        [<ffffffff811a8f74>] SyS_ioctl+0x74/0x80
[  262.517252]        [<ffffffff81a4d2ee>] entry_SYSCALL_64_fastpath+0x12/0x76
[  262.517258]
               -> #0 (&dev->dev_mutex){+.+.+.}:
[  262.517262]        [<ffffffff810cf464>] validate_chain.isra.38+0xd04/0x1170
[  262.517266]        [<ffffffff810d0e6b>] __lock_acquire+0x62b/0xe80
[  262.517270]        [<ffffffff810d2095>] lock_acquire+0x65/0x90
[  262.517273]        [<ffffffff81a48e3c>] mutex_lock_interruptible_nested+0x6c/0x4b0
[  262.517279]        [<ffffffffa000ddab>] v4l2_m2m_fop_mmap+0x2b/0x90 [v4l2_mem2mem]
[  262.517284]        [<ffffffffa06d80ff>] v4l2_mmap+0x4f/0x90 [videodev]
[  262.517288]        [<ffffffff8116b06c>] mmap_region+0x38c/0x5b0
[  262.517293]        [<ffffffff8116b585>] do_mmap_pgoff+0x2f5/0x3e0
[  262.517297]        [<ffffffff8115932a>] vm_mmap_pgoff+0x8a/0xc0
[  262.517300]        [<ffffffff81169bab>] SyS_mmap_pgoff+0x1cb/0x270
[  262.517304]        [<ffffffff8100876d>] SyS_mmap+0x1d/0x20
[  262.517309]        [<ffffffff81a4d2ee>] entry_SYSCALL_64_fastpath+0x12/0x76
[  262.517313]
               other info that might help us debug this:

[  262.517315]  Possible unsafe locking scenario:

[  262.517318]        CPU0                    CPU1
[  262.517319]        ----                    ----
[  262.517321]   lock(&mm->mmap_sem);
[  262.517324]                                lock(&dev->dev_mutex);
[  262.517327]                                lock(&mm->mmap_sem);
[  262.517329]   lock(&dev->dev_mutex);
[  262.517332]
                *** DEADLOCK ***

Since vb2_fop_mmap doesn't take the lock, neither should v4l2_m2m_fop_mmap.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Tested-by: Mikhail Ulyanov <mikhail.ulyanov@cogentembedded.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] s5p-jpeg: Eliminate double kfree()
Andrzej Pietrasiewicz [Fri, 3 Jul 2015 10:04:38 +0000 (07:04 -0300)]
[media] s5p-jpeg: Eliminate double kfree()

video_unregister_device() calls device_unregister(), which calls
put_device(), which calls kobject_put(), and if this is the last reference
then kobject_release() is called, which calls kobject_cleanup(), which
calls ktype's release method which happens to be device_release() in this
case, which calls dev->release(), which happens to be
v4l2_device_release() in this case, which calls vdev->release(), which
happens to be video_device_release(). But video_device_release() is
called explicitly both in error recovery path of s5p_jpeg_probe() and
in s5p_jpeg_remove(). The pointers in question are not nullified between
the two calls, so this is harmful.

This patch fixes the driver so that video_device_release() is not called
twice for the same object.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
9 years ago[media] s5p-mfc: add additional check for incorrect memory configuration
Marek Szyprowski [Wed, 3 Jun 2015 10:36:23 +0000 (07:36 -0300)]
[media] s5p-mfc: add additional check for incorrect memory configuration

MFC hardware is known to trash random memory if one tries to use a
buffer which has lower DMA addresses than the configured DMA base
address. This patch adds a check for this case and proper error
handling.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Acked-by: Kamil Debski <kamil@wypas.org>
[s.nawrocki@samsung.com: fixed typo (addres -> address]
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>