]> git.karo-electronics.de Git - linux-beck.git/log
linux-beck.git
10 years ago[media] cx23885-dvb: Fix some issues at the DVB error handling
Mauro Carvalho Chehab [Thu, 30 Oct 2014 14:15:53 +0000 (11:15 -0300)]
[media] cx23885-dvb: Fix some issues at the DVB error handling

X-Patchwork-Delegate: m.chehab@samsung.com
As pointed by smatch:
drivers/media/pci/cx23885/cx23885-dvb.c:1066 dvb_register() error: we previously assumed 'fe0->dvb.frontend' could be null (see line 1060)
drivers/media/pci/cx23885/cx23885-dvb.c:1990 cx23885_dvb_register() error: we previously assumed 'fe0' could be null (see line 1975)

What happens is that the error handling logic when a frontend
register fails sometimes keep doing the work, as if it didn't
fail.

This could potentially cause an OOPS. So, simplify the logic
a little bit and return an error if frontend fails before
trying to setup VB2 queue.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx23885: add support for TechnoTrend CT2-4500 CI
Olli Salonen [Thu, 30 Oct 2014 20:48:27 +0000 (17:48 -0300)]
[media] cx23885: add support for TechnoTrend CT2-4500 CI

TechnoTrend CT2-4500 CI is a PCIe device with DVB-T2/C tuner. It is
similar to DVBSky T980C, just with different PCI ID and remote controller.

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] tveeprom: Update list of chips and extend serial number to 32bits
Matthias Schwarzott [Fri, 31 Oct 2014 07:26:18 +0000 (04:26 -0300)]
[media] tveeprom: Update list of chips and extend serial number to 32bits

The update was supplied directly by PCTV.

Add tuner ids 182-188.
Add audproc ids 45-52.
Add decoder chip ids 43-53.
Use 32bits for the serial number.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: Improve the log message
Mauro Carvalho Chehab [Mon, 3 Nov 2014 09:07:38 +0000 (06:07 -0300)]
[media] cx231xx: Improve the log message

Unfortunately, on devices that have multiple interfaces, udev->dev
points to the parent device (usb) instead of the cx231xx specific one.

Due to that the logs don't look too nice, as they'll print messages
as if they were produced by USB core:
  usb-1-2: New device Conexant Corporation Polaris AV Capturb @ 480 Mbps (1554:5010) with 7 interfaces

Instead of using the name of the parent device, let's use the name
of the first cx231xx interface for all cx231xx sub-modules.

With this path, the logs will be nicer:

  cx231xx 1-2:1.1: New device Conexant Corporation Polaris AV Capturb @ 480 Mbps (1554:5010) with 7 interfaces

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: simplify I2C scan debug messages
Mauro Carvalho Chehab [Sun, 2 Nov 2014 11:34:34 +0000 (08:34 -0300)]
[media] cx231xx: simplify I2C scan debug messages

Don't need to show when it starts or stops. Just print lines
when devices are found.

After the changes, the output for i2c scan will be like:

usb 1-2: i2c scan: found device @ port 0 addr 0x40  [???]
usb 1-2: i2c scan: found device @ port 0 addr 0x60  [colibri]
usb 1-2: i2c scan: found device @ port 0 addr 0x88  [hammerhead]
usb 1-2: i2c scan: found device @ port 0 addr 0x98  [???]
usb 1-2: i2c scan: found device @ port 3 addr 0xa0  [eeprom]
usb 1-2: i2c scan: found device @ port 2 addr 0x60  [colibri]
usb 1-2: i2c scan: found device @ port 2 addr 0xc0  [tuner]
usb 1-2: i2c scan: found device @ port 4 addr 0x20  [demod]

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: too much changes. Bump version number
Mauro Carvalho Chehab [Sun, 2 Nov 2014 11:35:46 +0000 (08:35 -0300)]
[media] cx231xx: too much changes. Bump version number

The I2C mux changes are significant. Bump version number.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: use dev_info() for extension load/unload
Mauro Carvalho Chehab [Sun, 2 Nov 2014 11:13:54 +0000 (08:13 -0300)]
[media] cx231xx: use dev_info() for extension load/unload

Now that we're using dev_foo, the logs become like:

usb 1-2: DVB: registering adapter 0 frontend 0 (Fujitsu mb86A20s)...
usb 1-2: Successfully loaded cx231xx-dvb
cx231xx: Cx231xx dvb Extension initialized

It is not clear, by the logs, that usb 1-2 name is an alias for
cx231xx. So, we also need to use dvb_info() at extension load/unload.

After the patch, it will print:
usb 1-2: Cx231xx dvb Extension initialized

With is coherent with the other logs.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: add addr for demod and make i2c_devs const
Mauro Carvalho Chehab [Sun, 2 Nov 2014 10:53:25 +0000 (07:53 -0300)]
[media] cx231xx: add addr for demod and make i2c_devs const

I2C address 0x10 is the demod. While here, make the array const.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: use dev_foo instead of printk
Mauro Carvalho Chehab [Sun, 2 Nov 2014 10:45:56 +0000 (07:45 -0300)]
[media] cx231xx: use dev_foo instead of printk

There are several places at cx231xx that uses printk without
any special reason. Change all of them to use dev_foo().

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: get rid of audio debug parameter
Mauro Carvalho Chehab [Sun, 2 Nov 2014 10:44:47 +0000 (07:44 -0300)]
[media] cx231xx: get rid of audio debug parameter

There's just one debug level on cx231xx-audio. So, converting it
to dev_dbg() is easy.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: convert from pr_foo to dev_foo
Mauro Carvalho Chehab [Sun, 2 Nov 2014 10:21:44 +0000 (07:21 -0300)]
[media] cx231xx: convert from pr_foo to dev_foo

Replace all pr_foo occurrences by dev_foo, as this is
the recommended way for drivers.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: disable I2C errors during i2c_scan
Mauro Carvalho Chehab [Sat, 1 Nov 2014 13:06:12 +0000 (10:06 -0300)]
[media] cx231xx: disable I2C errors during i2c_scan

Otherwise, it would produce lots of useless messages like:
cx231xx: cx231xx_send_usb_command: failed with status --32

After this patch, I2C scan will produce an useful report:

[ 9494.050807] cx231xx: i2c_scan: checking for I2C devices on port=0 ..
[ 9494.074928] cx231xx: i2c scan: Completed Checking for I2C devices on port=0.
[ 9494.074936] cx231xx: i2c_scan: checking for I2C devices on port=3 ..
[ 9494.098934] cx231xx: i2c scan: Completed Checking for I2C devices on port=3.
[ 9494.098942] cx231xx: i2c_scan: checking for I2C devices on port=2 ..
[ 9494.118440] cx231xx: i2c scan: Completed Checking for I2C devices on port=2.
[ 9494.118448] cx231xx: i2c_scan: checking for I2C devices on port=4 ..
[ 9494.141889] cx231xx: i2c scan: Completed Checking for I2C devices on port=4.

[ 9494.060182] cx231xx: i2c scan: found device @ 0x40  [???]
[ 9494.062953] cx231xx: i2c scan: found device @ 0x60  [colibri]
[ 9494.066071] cx231xx: i2c scan: found device @ 0x88  [hammerhead]
[ 9494.067383] cx231xx: i2c scan: found device @ 0x98  [???]
[ 9494.090113] cx231xx: i2c scan: found device @ 0xa0  [eeprom]
[ 9494.106463] cx231xx: i2c scan: found device @ 0x60  [colibri]
[ 9494.113762] cx231xx: i2c scan: found device @ 0xc0  [tuner]
[ 9494.121882] cx231xx: i2c scan: found device @ 0x20  [???]
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: use 1 byte read for i2c scan
Matthias Schwarzott [Sat, 1 Nov 2014 20:19:21 +0000 (17:19 -0300)]
[media] cx231xx: use 1 byte read for i2c scan

Now cx231xx_i2c_check_for_device works like i2c_check_for_device of em28xx driver.

For me this fixes scanning of all ports but port 2.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx25840: convert max_buf_size var to lowercase
Mauro Carvalho Chehab [Sat, 1 Nov 2014 12:12:58 +0000 (09:12 -0300)]
[media] cx25840: convert max_buf_size var to lowercase

CodingStyle fix: vars should be in lowercase.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx25840: Don't report an error if max size is adjusted
Mauro Carvalho Chehab [Sat, 1 Nov 2014 12:11:20 +0000 (09:11 -0300)]
[media] cx25840: Don't report an error if max size is adjusted

There's no reason to report:
cx25840 7-0044:  Firmware download size changed to 16 bytes max length

If the driver needs to adjust the buffer's maximum size.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: Cleanup printk at the driver
Mauro Carvalho Chehab [Sat, 1 Nov 2014 11:59:03 +0000 (08:59 -0300)]
[media] cx231xx: Cleanup printk at the driver

There are lots of debug printks printed with pr_info. Also, the
printk's data are not too coherent:

- there are duplicated driver name at the print format;
- function name format string differs from function to function;
- long strings broken into multiple lines;
- some printks just produce ugly reports, being almost useless
  as-is.

Do a cleanup on that.

Still, there are much to be done in order to do a better printk
job on this driver, but, at least it will now be a way less
verbose, if debug printks are disabled, and some logs might
actually be useful.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: Fix identation
Mauro Carvalho Chehab [Sat, 1 Nov 2014 11:45:36 +0000 (08:45 -0300)]
[media] cx231xx: Fix identation

One of the identation blocks is wrong. Fix it.

While here, replace pr_info by pr_debug inside such block and
add the function name to the print messages, as otherwise they
will not help much.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: get rid of driver-defined printk macros
Mauro Carvalho Chehab [Sat, 1 Nov 2014 11:09:44 +0000 (08:09 -0300)]
[media] cx231xx: get rid of driver-defined printk macros

It currently does just like what pr_foo() macros do. So,
replace them.

A deeper cleanup is needed, as there are lots of debug macros
printed with pr_info.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] fix a warning on avr32 arch
Mauro Carvalho Chehab [Thu, 30 Oct 2014 10:16:57 +0000 (07:16 -0300)]
[media] fix a warning on avr32 arch

X-Patchwork-Delegate: m.chehab@samsung.com
on avr32 arch, those warnings happen:
drivers/media/firewire/firedtv-fw.c: In function 'node_update':
drivers/media/firewire/firedtv-fw.c:329: warning: comparison is always true due to limited range of data type

In this particular case, the signal is desired, as the isochannel
var can be initalized with -1 inside the driver.

So, change the type to s8, to avoid issues on archs where char
is unsigned.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Reviewed-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] V4L2: fix VIDIOC_CREATE_BUFS 32-bit compatibility mode data copy-back
Guennadi Liakhovetski [Fri, 30 May 2014 23:26:38 +0000 (20:26 -0300)]
[media] V4L2: fix VIDIOC_CREATE_BUFS 32-bit compatibility mode data copy-back

Similar to an earlier patch, fixing reading user-space data for the
VIDIOC_CREATE_BUFS ioctl() in 32-bit compatibility mode, this patch fixes
writing back of the possibly modified struct to the user. However, unlike
the former bug, this one is much less harmful, because it only results in
the kernel failing to write the .type field back to the user, but in fact
this is likely unneeded, because the kernel will hardly want to change
that field. Therefore this bug is more of a theoretical nature.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] stv090x: remove indent levels in stv090x_get_coldlock()
Dan Carpenter [Fri, 21 Feb 2014 08:50:01 +0000 (05:50 -0300)]
[media] stv090x: remove indent levels in stv090x_get_coldlock()

This code is needlessly complicated and checkpatch.pl complains that we
go over the 80 characters per line limit.

If we flip the "if (!lock) {" test to "if (lock) return;" then we can
remove an indent level from the rest of the function.

We can add two returns in the "if (state->srate >= 10000000) {"
condition and move the else statement back an additional indent level.

There is another "if (!lock) {" check which can be removed since we have
already checked "lock" and know it is zero at this point.  This second
check on "lock" is also a problem because it sets off a static checker
warning.  I have reviewed this code for some time to see if something
else was intended, but have concluded that it was simply an oversight
and should be removed.  Removing this duplicative check gains us an
third indent level.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] DocBook media: Clarify V4L2_FIELD_ANY for drivers
Simon Farnsworth [Fri, 31 Oct 2014 15:48:42 +0000 (12:48 -0300)]
[media] DocBook media: Clarify V4L2_FIELD_ANY for drivers

Documentation for enum v4l2_field did not make it clear that V4L2_FIELD_ANY
is only acceptable as input to the kernel, not as a response from the
driver.

Make it clear, to stop userspace developers like me assuming it can be
returned by the driver.

Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] saa7146: turn bothersome error into a debug message
Johann Klammer [Mon, 27 Oct 2014 13:44:55 +0000 (10:44 -0300)]
[media] saa7146: turn bothersome error into a debug message

After updating the kernel to 3.14.15 I am seeing these messages:

[273684.964081] saa7146: saa7146 (0): saa7146_wait_for_debi_done_sleep
timed out while waiting for registers getting programmed
[273690.020061] saa7146: saa7146 (0): saa7146_wait_for_debi_done_sleep
timed out while waiting for registers getting programmed
[273695.076082] saa7146: saa7146 (0): saa7146_wait_for_debi_done_sleep
timed out while waiting for registers getting programmed
[273700.132077] saa7146: saa7146 (0): saa7146_wait_for_debi_done_sleep
timed out while waiting for registers getting programmed
[273705.188070] saa7146: saa7146 (0): saa7146_wait_for_debi_done_sleep
timed out while waiting for registers getting programmed
[273710.244066] saa7146: saa7146 (0): saa7146_wait_for_debi_done_sleep
timed out while waiting for registers getting programmed
[273715.300187] saa7146: saa7146 (0): saa7146_wait_for_debi_done_sleep
timed out while waiting for registers getting programmed
[273720.356068] saa7146: saa7146 (0): saa7146_wait_for_debi_done_sleep
timed out while waiting for registers getting programmed
[273725.412188] saa7146: saa7146 (0): saa7146_wait_for_debi_done_sleep
timed out while waiting for registers getting programmed
[273730.468094] saa7146: saa7146 (0): saa7146_wait_for_debi_done_sleep
timed out while waiting for registers getting programmed
[273735.524070] saa7146: saa7146 (0): saa7146_wait_for_debi_done_sleep
timed out while waiting for registers getting programmed
[273740.580176] saa7146: saa7146 (0): saa7146_wait_for_debi_done_sleep
timed out while waiting for registers getting programmed

filling up the logs(one about every 5 seconds).

Other posts suggests that it is not actually an error on cards without a
CI interface. Here's a patch that turns it into a debug message, so it
does not clobber the logs.

Signed-off-by: Johann Klammer <klammerj@a1.net>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] lirc: use kfifo_initialized() on lirc_buffer's fifo
Martin Kaiser [Tue, 28 Oct 2014 21:51:01 +0000 (18:51 -0300)]
[media] lirc: use kfifo_initialized() on lirc_buffer's fifo

We can use kfifo_initialized() to check if the fifo in lirc_buffer is
initialized or not. There's no need to have a dedicated fifo status
variable in lirc_buffer.

[m.chehab@samsung.com: add the same change to lirc_zilog, to avoid
 breaking compilation of staging drivers]
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: dvb_core: replace a magic number by a macro
Dan Carpenter [Wed, 29 Oct 2014 15:47:41 +0000 (12:47 -0300)]
[media] media: dvb_core: replace a magic number by a macro

It's better to use TS_SC instead of magic number 0xC0.

[m.chehab@samsung.com: patch rebased and message rewritten, as this
 patch conflicted with an already applied patch]

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: Print information on failed link validation
Sakari Ailus [Tue, 28 Oct 2014 23:35:04 +0000 (20:35 -0300)]
[media] media: Print information on failed link validation

The Media controller doesn't tell much to the user in cases such as pipeline
startup failure. The link validation is the most common media graph (or in
V4L2's case, format) related reason for the failure. In more complex
pipelines the reason may not always be obvious to the user, so point them to
look at the right direction.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] dvb-net: Fix probable mask then right shift defects
Joe Perches [Mon, 27 Oct 2014 05:25:00 +0000 (02:25 -0300)]
[media] dvb-net: Fix probable mask then right shift defects

Precedence of & and >> is not the same and is not left to right.
shift has higher precedence and should be done after the mask.

Add parentheses around the mask.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cxusb: TS mode setting for TT CT2-4400
Olli Salonen [Sun, 26 Oct 2014 07:56:12 +0000 (04:56 -0300)]
[media] cxusb: TS mode setting for TT CT2-4400

There is a new version of the TechnoTrend CT2-4400 USB tuner. The difference is the demodulator that is used (Si2168-B40 instead of -A30).

For TT CT2-4400v2 a TS stream related parameter needs to be set, otherwise the stream becomes corrupted. The Windows driver for both CT2-4400 and CT2-4400v2 sets this as well. After this patch the driver works for both versions.

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] au8522: improve lock performance with ZeeVee modulators
Richard Vollkommer [Sat, 25 Oct 2014 20:17:23 +0000 (17:17 -0300)]
[media] au8522: improve lock performance with ZeeVee modulators

Improves lock performance with signals from the ZeeVee family
of modulators.

Signed-off-by: Richard Vollkommer <linux@hauppauge.com>
Cc: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Michael Ira Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] xc5000: add IF output level control
Richard Vollkommer [Sat, 25 Oct 2014 20:17:22 +0000 (17:17 -0300)]
[media] xc5000: add IF output level control

Adds control of the IF output level to the xc5000 tuner
configuration structure.  Increases the IF level to the
demodulator to fix failure to lock and picture breakup
issues (with the au8522 demodulator, in the case of the
Hauppauge HVR950Q).

This patch works with all XC5000 firmware versions.

Signed-off-by: Richard Vollkommer <linux@hauppauge.com>
Signed-off-by: Michael Ira Krufky <mkrufky@linuxtv.org>
Reviewed-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] lirc_igorplugusb: remove
Sean Young [Thu, 23 Oct 2014 20:58:23 +0000 (17:58 -0300)]
[media] lirc_igorplugusb: remove

This driver has been replaced by an rc-core driver for the same hardware.

Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] rc: port IgorPlug-USB to rc-core
Sean Young [Thu, 23 Oct 2014 20:58:22 +0000 (17:58 -0300)]
[media] rc: port IgorPlug-USB to rc-core

This is a complete re-write inspired by the original lirc driver.

Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] m88ts2022: return the err code in its probe function when error occurs
nibble.max [Thu, 23 Oct 2014 13:36:49 +0000 (10:36 -0300)]
[media] m88ts2022: return the err code in its probe function when error occurs

if "chip_id" is wrong or "dev->cfg.clock_out" is invalid, the i2c model is still loaded.
It will cause "kernel NULL pointer dereference" oops when the i2c model remove.
returning the err code will prevent the i2c model load.

Signed-off-by: Nibble Max <nibble.max@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx23885: add DVBSky S950C and T980C RC support
nibble.max [Thu, 23 Oct 2014 10:02:16 +0000 (07:02 -0300)]
[media] cx23885: add DVBSky S950C and T980C RC support

DVBSky s950ci dvb-s/s2 ci PCIe card:
1>dvb frontend: M88TS2022(tuner),M88DS3103(demod)
2>ci controller: CIMAX SP2 or its clone.
3>PCIe bridge: CX23885

The patchs are based on the following patchs.
Olli Salonen submit:
https://patchwork.linuxtv.org/patch/26180/
https://patchwork.linuxtv.org/patch/26183/
https://patchwork.linuxtv.org/patch/26324/
Nibble Max submit:
https://patchwork.linuxtv.org/patch/26207/

Signed-off-by: Nibble Max <nibble.max@gmail.com>
Reviewed-by: Olli Salonen <olli.salonen@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx23885: add DVBSky S950C dvb-s/s2 ci PCIe card support(no RC)
nibble.max [Thu, 23 Oct 2014 10:01:44 +0000 (07:01 -0300)]
[media] cx23885: add DVBSky S950C dvb-s/s2 ci PCIe card support(no RC)

DVBSky s950ci dvb-s/s2 ci PCIe card:
1>dvb frontend: M88TS2022(tuner),M88DS3103(demod)
2>ci controller: CIMAX SP2 or its clone.
3>PCIe bridge: CX23885

The patchs are based on the following patchs.
Olli Salonen submit:
https://patchwork.linuxtv.org/patch/26180/
https://patchwork.linuxtv.org/patch/26183/
https://patchwork.linuxtv.org/patch/26324/
Nibble Max submit:
https://patchwork.linuxtv.org/patch/26207/

Signed-off-by: Nibble Max <nibble.max@gmail.com>
Reviewed-by: Olli Salonen <olli.salonen@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] dvb-usb-dvbsky: add s960ci dvb-s/s2 usb ci box support
nibble.max [Mon, 20 Oct 2014 10:05:47 +0000 (07:05 -0300)]
[media] dvb-usb-dvbsky: add s960ci dvb-s/s2 usb ci box support

DVBSky s960ci dvb-s/s2 usb ci box:
1>dvb frontend: M88TS2022(tuner),M88DS3103(demod)
2>usb controller: CY7C86013A
3>ci controller: CIMAX SP2 or its clone.

Signed-off-by: Nibble Max <nibble.max@gmail.com>
Reviewed-by: Olli Salonen <olli.salonen@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] Update Documentation cardlist
Mauro Carvalho Chehab [Mon, 3 Nov 2014 13:35:01 +0000 (11:35 -0200)]
[media] Update Documentation cardlist

Some new devices got added. Update cardlists.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] em28xx: add support for Leadtek VC100 USB capture device
Witold Krecicki [Sun, 19 Oct 2014 22:25:59 +0000 (19:25 -0300)]
[media] em28xx: add support for Leadtek VC100 USB capture device

Leadtek VC100 is a simple USB capture stick, similar to
Yakumo Movie Mixer.

Signed-off-by: Witold Krecicki <wpk+lkml@culm.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] dvbsky: add option to disable IR receiver
Olli Salonen [Sun, 12 Oct 2014 11:31:38 +0000 (08:31 -0300)]
[media] dvbsky: add option to disable IR receiver

Add an option to disable remote controller for DVBSky devices by specifying
the disable_rc option at modprobe.

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] dvbsky: clean logging
Olli Salonen [Sun, 12 Oct 2014 10:03:10 +0000 (07:03 -0300)]
[media] dvbsky: clean logging

dev_err includes the function name in the log printout, so there is no need to include it manually. While here, fix a small grammatical error in the i2c error message.

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] dvbsky: don't print MAC address from read_mac_address
Olli Salonen [Sun, 12 Oct 2014 10:03:08 +0000 (07:03 -0300)]
[media] dvbsky: don't print MAC address from read_mac_address

The dvb-usb-v2 already prints out the MAC address, no need to print
it out also here.

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: earthsoft: logging neatening
Joe Perches [Fri, 10 Oct 2014 21:10:49 +0000 (18:10 -0300)]
[media] media: earthsoft: logging neatening

Use dev_err instead of pt1_printk
o reduce object code size
o remove now unused pt1_printk macro

Neaten dev_<level> uses in pt3
o add missing newlines
o align arguments
o remove unnecessary OOM messages as there's a generic one
o typo fixes in messages

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] dvb-frontends/Kconfig: better describe Toshiba TC90522
ほち [Mon, 6 Oct 2014 06:21:27 +0000 (03:21 -0300)]
[media] dvb-frontends/Kconfig: better describe Toshiba TC90522

Toshiba TC90522 is wrongly categorized, fix it

Signed-off-by: ほち, AreMa Inc <knightrider@are.ma>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] Staging: media: lirc: cleaned up packet dump in 2 files
Amber Thrall [Fri, 3 Oct 2014 02:33:30 +0000 (23:33 -0300)]
[media] Staging: media: lirc: cleaned up packet dump in 2 files

lirc_imon.c and lirc_sasem.c contain an incoming_packet method that
is using deprecated printk's.  Removed blocks replacing with single
dev_info with a %*ph format instead.

Signed-off-by: Amber Thrall <amber.rose.thrall@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: fix VBI support
Hans Verkuil [Sat, 20 Sep 2014 12:24:58 +0000 (09:24 -0300)]
[media] cx88: fix VBI support

Now works with both NTSC and PAL. Tested with CC/XDS for NTSC and
teletext/WSS for PAL. The start lines were wrong, the WSS signal
wasn't captured and there was no difference between NTSC and PAL
w.r.t. the count[] values so NTSC returned way too many lines.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: pci_disable_device comes after free_irq
Hans Verkuil [Fri, 5 Sep 2014 12:37:09 +0000 (09:37 -0300)]
[media] cx88: pci_disable_device comes after free_irq

Move pci_disable_device() down otherwise it will complain about an
unfreed irq.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: consistently use UNSET for absent tuner
Hans Verkuil [Fri, 29 Aug 2014 10:45:00 +0000 (07:45 -0300)]
[media] cx88: consistently use UNSET for absent tuner

Don't mix UNSET and TUNER_ABSENT: you have to pick one or the other. For
this driver selecting UNSET to represent an absent tuner resulting in
the fewest changes.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: don't allow changes while vb2_is_busy
Hans Verkuil [Fri, 29 Aug 2014 09:08:07 +0000 (06:08 -0300)]
[media] cx88: don't allow changes while vb2_is_busy

Make sure that changing the standard or format is not allowed while
one or more of the video, vbi or mpeg vb2 queues are busy.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: drop mpeg_active field
Hans Verkuil [Fri, 29 Aug 2014 09:06:37 +0000 (06:06 -0300)]
[media] cx88: drop mpeg_active field

The vb2 framework knows if streaming is in progress, no need to use
a separate field for that.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: move width, height and field to core struct
Hans Verkuil [Sat, 20 Sep 2014 12:23:44 +0000 (09:23 -0300)]
[media] cx88: move width, height and field to core struct

The width, height and field values are core fields since both vbi, video
and blackbird use the same video input.

Move those fields to the correct struct.

Also fix the field checks in the try_fmt functions: add V4L2_FIELD_SEQ_BT/TB
support and map incorrect field values to a correct field value instead of
returning an error.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: don't pollute the kernel log
Hans Verkuil [Fri, 29 Aug 2014 08:50:26 +0000 (05:50 -0300)]
[media] cx88: don't pollute the kernel log

There is no reason to dump the sram code to the kernel log when you
stop streaming. Remove those calls to cx88_sram_channel_dump.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: increase API command timeout
Hans Verkuil [Fri, 29 Aug 2014 08:45:59 +0000 (05:45 -0300)]
[media] cx88: increase API command timeout

The timeout is way too small. Especially complicated command like
CX2341X_ENC_STOP_CAPTURE takes much more time than 10 ms. Increase the
timeout to 1 second, just as ivtv does (the cx88-blackbird has the
same IP core for MPEG compression as ivtv).

This solves a nasty issue where STOP_CAPTURE would timeout and the
mailbox is left in a busy state, making it impossible to start streaming
a second time without reloading the driver first.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: remove dependency on btcx-risc
Hans Verkuil [Fri, 29 Aug 2014 07:11:54 +0000 (04:11 -0300)]
[media] cx88: remove dependency on btcx-risc

btcx-risc is for the bt8xx driver and other drivers shouldn't depend
on it. There is no benefit to use that module just to do a
pci_zalloc_consistent.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: drop cx88_free_buffer
Hans Verkuil [Fri, 29 Aug 2014 08:40:47 +0000 (05:40 -0300)]
[media] cx88: drop cx88_free_buffer

Remove this function. This makes all vb2 queues behave the same, which
simplifies comparing the various vb2 queue op implementations.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: return proper errors during fw load
Hans Verkuil [Fri, 29 Aug 2014 08:29:19 +0000 (05:29 -0300)]
[media] cx88: return proper errors during fw load

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

Replace dprintk(0, ...) by pr_err since firmware load errors should just be
reported as an error.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: fix sparse warning
Hans Verkuil [Fri, 29 Aug 2014 08:20:44 +0000 (05:20 -0300)]
[media] cx88: fix sparse warning

drivers/media/pci/cx88/cx88-blackbird.c:476:25: warning: cast to restricted __le32

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: convert to vb2
Hans Verkuil [Sat, 20 Sep 2014 12:22:18 +0000 (09:22 -0300)]
[media] cx88: convert to vb2

As usual, this patch is very large due to the fact that half a vb2 conversion
isn't possible. And since this affects blackbird, alsa, core, dvb, vbi and
video the changes are all over.

What made this more difficult was the peculiar way the risc program was setup.
The driver allowed for running out of buffers in which case the DMA would stop
and restart when the next buffer was queued. There was also a complicated
timeout system for when buffers weren't filled. This was replaced by a much
simpler scheme where there is always one buffer around and the DMA will just
cycle that buffer until a new buffer is queued. In that case the previous
buffer will be chained to the new buffer. An interrupt is generated at the
start of the new buffer telling the driver that the previous buffer can be
passed on to userspace.

Much simpler and more robust.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: drop videobuf abuse in cx88-alsa
Hans Verkuil [Fri, 29 Aug 2014 08:25:30 +0000 (05:25 -0300)]
[media] cx88: drop videobuf abuse in cx88-alsa

The alsa driver uses videobuf low-level functions that are not
available in vb2, so replace them by driver-specific functions.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: drop the bogus 'queue' list in dmaqueue
Hans Verkuil [Sun, 10 Aug 2014 14:56:14 +0000 (11:56 -0300)]
[media] cx88: drop the bogus 'queue' list in dmaqueue

This list is only used if the width, height and/or format of a buffer has
changed, but that can never happen. Remove it and all associated code.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx88: remove fmt from the buffer struct
Hans Verkuil [Fri, 29 Aug 2014 06:46:05 +0000 (03:46 -0300)]
[media] cx88: remove fmt from the buffer struct

This is a duplicate of dev->fmt and can be removed. As a consequence a
lot of tests that check if the format has changed midstream can be
removed as well: the format cannot change midstream, so this is a bogus
check.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: remove direct register PWR_CTL_EN modification that switches port3
Matthias Schwarzott [Thu, 30 Oct 2014 22:43:55 +0000 (19:43 -0300)]
[media] cx231xx: remove direct register PWR_CTL_EN modification that switches port3

The only remaining place that modifies the relevant bit is in function
cx231xx_set_Colibri_For_LowIF

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: scan all four existing i2c busses instead of the 3 masters
Matthias Schwarzott [Thu, 2 Oct 2014 05:21:05 +0000 (02:21 -0300)]
[media] cx231xx: scan all four existing i2c busses instead of the 3 masters

The scanning itself just fails (as before this series) but now
the correct busses are scanned.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: drop unconditional port3 switching
Matthias Schwarzott [Thu, 2 Oct 2014 05:21:04 +0000 (02:21 -0300)]
[media] cx231xx: drop unconditional port3 switching

All switching should be done by i2c mux adapters.
Drop explicit dont_use_port_3 flag.
Drop info message about switch.

Only the removed code in start_streaming is questionable:
It did switch the port_3 flag without accessing i2c in between.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: register i2c mux adapters for bus 1
Matthias Schwarzott [Thu, 2 Oct 2014 05:21:03 +0000 (02:21 -0300)]
[media] cx231xx: register i2c mux adapters for bus 1

I2C bus 1 has internally a switch. Use it as I2C_1_MUX_1 and
I2C_1_MUX_3, letting the I2C core handling the switch.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: change usage of I2C_1 to the real i2c port
Matthias Schwarzott [Thu, 2 Oct 2014 05:21:02 +0000 (02:21 -0300)]
[media] cx231xx: change usage of I2C_1 to the real i2c port

change almost all instances of I2C_1 to I2C_1_MUX_3

Only these cases are changed to I2C_1_MUX_1:
* All that have dont_use_port_3 set.
* CX231XX_BOARD_HAUPPAUGE_EXETER, old code did explicitly not switch to port3.
* eeprom access for 930C

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: let is_tuner check the real i2c port and not the i2c master number
Matthias Schwarzott [Thu, 2 Oct 2014 05:21:01 +0000 (02:21 -0300)]
[media] cx231xx: let is_tuner check the real i2c port and not the i2c master number

Get used i2c port from bus_nr and status of port_3 switch.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: remember status of i2c port_3 switch
Matthias Schwarzott [Thu, 2 Oct 2014 05:21:00 +0000 (02:21 -0300)]
[media] cx231xx: remember status of i2c port_3 switch

This is used later for is_tuner function that switches i2c behaviour for
some tuners.

[mchehab@osg.samsung.com: Fix CodingStyle on a multi-line comment]

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: add wrapper to get the i2c_adapter pointer
Matthias Schwarzott [Thu, 2 Oct 2014 05:20:59 +0000 (02:20 -0300)]
[media] cx231xx: add wrapper to get the i2c_adapter pointer

This is a preparation for mapping I2C_1_MUX_1 and I2C_1_MUX_3 later to the seperate
muxed i2c adapters.

Map mux adapters to I2C_1 for now.

Add local variables for i2c_adapters in dvb_init to get line lengths
shorter.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: Use symbolic constants for i2c ports instead of numbers
Matthias Schwarzott [Thu, 2 Oct 2014 05:20:58 +0000 (02:20 -0300)]
[media] cx231xx: Use symbolic constants for i2c ports instead of numbers

Replace numbers by the constants of same value and same meaning.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: Modifiy the symbolic constants for i2c ports and describe
Matthias Schwarzott [Thu, 2 Oct 2014 05:20:57 +0000 (02:20 -0300)]
[media] cx231xx: Modifiy the symbolic constants for i2c ports and describe

Change to I2C_0 ... I2C_2 for the master ports
and add I2C_1_MUX_1 and I2C_1_MUX_3 for the muxed ones.

V2: Renamed mux adapters to seperate them from master adapters.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: give each master i2c bus a seperate name
Matthias Schwarzott [Thu, 2 Oct 2014 05:20:56 +0000 (02:20 -0300)]
[media] cx231xx: give each master i2c bus a seperate name

Instead of using the same name for all 3 i2c physical buses
inside cx231xx, name them differently, adding a number
to it. This helps to better deal with the logs.

[mchehab@osg.samsung.com: removed an unused bus_name var from
 the original patch]
Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: delete i2c_client per bus
Matthias Schwarzott [Thu, 2 Oct 2014 05:20:55 +0000 (02:20 -0300)]
[media] cx231xx: delete i2c_client per bus

For each i2c master there is a i2c_client allocated that could be
deleted now that its only two users have been changed to use their
own i2c_client.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: use own i2c_client for eeprom access
Matthias Schwarzott [Thu, 2 Oct 2014 05:20:54 +0000 (02:20 -0300)]
[media] cx231xx: use own i2c_client for eeprom access

This is a preparation for deleting the otherwise useless i2c_clients
that are allocated for all the i2c master adapters.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: let i2c bus scanning use its own i2c_client
Matthias Schwarzott [Thu, 2 Oct 2014 05:20:53 +0000 (02:20 -0300)]
[media] cx231xx: let i2c bus scanning use its own i2c_client

This is a preparation for deleting the otherwise useless i2c_clients
that are allocated for all the i2c master adapters.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] rc-main: fix lockdep splash for rc-main
Tomas Melin [Tue, 30 Sep 2014 13:32:08 +0000 (10:32 -0300)]
[media] rc-main: fix lockdep splash for rc-main

lockdep reports a potential circular dependecy deadlock when registering input device.

Unlock mutex rc_dev->lock prior to calling ir_raw_event_register to avoid the circular
dependency since that function also calls input_register_device and rc_open.

 ======================================================
 [ INFO: possible circular locking dependency detected ]
 3.17.0-rc7+ #24 Not tainted
 -------------------------------------------------------
 modprobe/647 is trying to acquire lock:
  (input_mutex){+.+.+.}, at: [<ffffffff812ed81c>] input_register_device+0x2ba/0x381

 but task is already holding lock:
  (ir_raw_handler_lock){+.+.+.}, at: [<ffffffff813186ed>] ir_raw_event_register+0x102/0x190

 which lock already depends on the new lock.

[cut text]

 other info that might help us debug this:

 Chain exists of:
   input_mutex --> &dev->lock --> ir_raw_handler_lock

  Possible unsafe locking scenario:

        CPU0                    CPU1
        ----                    ----
   lock(ir_raw_handler_lock);
                                lock(&dev->lock);
                                lock(ir_raw_handler_lock);
   lock(input_mutex);

  *** DEADLOCK ***

 4 locks held by modprobe/647:
  #0:  (&dev->mutex){......}, at: [<ffffffff812d19f3>] device_lock+0xf/0x11
  #1:  (&dev->mutex){......}, at: [<ffffffff812d19f3>] device_lock+0xf/0x11
  #2:  (&dev->lock){+.+.+.}, at: [<ffffffff81317fff>] rc_register_device+0x55d/0x58a
  #3:  (ir_raw_handler_lock){+.+.+.}, at: [<ffffffff813186ed>] ir_raw_event_register+0x102/0x190

 stack backtrace:
 CPU: 0 PID: 647 Comm: modprobe Not tainted 3.17.0-rc7+ #24

 Call Trace:
  [<ffffffff81489d6a>] dump_stack+0x46/0x58
  [<ffffffff81487699>] print_circular_bug+0x1f8/0x209
  [<ffffffff81074353>] __lock_acquire+0xb54/0xeda
  [<ffffffff81080f17>] ? console_unlock+0x34d/0x399
  [<ffffffff81074c01>] lock_acquire+0xd9/0x111
  [<ffffffff812ed81c>] ? input_register_device+0x2ba/0x381
  [<ffffffff8148e650>] mutex_lock_interruptible_nested+0x57/0x381
  [<ffffffff812ed81c>] ? input_register_device+0x2ba/0x381
  [<ffffffff81124e03>] ? kfree+0x7c/0x96
  [<ffffffff812ed81c>] ? input_register_device+0x2ba/0x381
  [<ffffffff81072531>] ? trace_hardirqs_on+0xd/0xf
  [<ffffffff812ed81c>] input_register_device+0x2ba/0x381
  [<ffffffff8131a537>] ir_mce_kbd_register+0x109/0x139
  [<ffffffff81318728>] ir_raw_event_register+0x13d/0x190
  [<ffffffff81317e40>] rc_register_device+0x39e/0x58a
  [<ffffffff81072531>] ? trace_hardirqs_on+0xd/0xf
  [<ffffffffa00cf2e3>] nvt_probe+0x5ad/0xd52 [nuvoton_cir]
  [<ffffffffa00ced36>] ? nvt_resume+0x80/0x80 [nuvoton_cir]
  [<ffffffff81296003>] pnp_device_probe+0x8c/0xa9
  [<ffffffff812d1b94>] ? driver_sysfs_add+0x6e/0x93
  [<ffffffff812d203a>] driver_probe_device+0xa1/0x1e3
  [<ffffffff812d217c>] ? driver_probe_device+0x1e3/0x1e3
  [<ffffffff812d21ca>] __driver_attach+0x4e/0x6f
  [<ffffffff812d075b>] bus_for_each_dev+0x5a/0x8c
  [<ffffffff812d1b24>] driver_attach+0x19/0x1b
  [<ffffffff812d1879>] bus_add_driver+0xf1/0x1d6
  [<ffffffff812d2817>] driver_register+0x87/0xbe
  [<ffffffffa0120000>] ? 0xffffffffa0120000
  [<ffffffff81295da4>] pnp_register_driver+0x1c/0x1e
  [<ffffffffa0120010>] nvt_init+0x10/0x1000 [nuvoton_cir]
  [<ffffffff8100030e>] do_one_initcall+0xea/0x18c
  [<ffffffff8111497f>] ? __vunmap+0x9d/0xc7
  [<ffffffff810a3ca1>] load_module+0x1c21/0x1f2c
  [<ffffffff810a0bce>] ? show_initstate+0x44/0x44
  [<ffffffff810a404e>] SyS_init_module+0xa2/0xb1
  [<ffffffff81490ed2>] system_call_fastpath+0x16/0x1b

Signed-off-by: Tomas Melin <tomas.melin@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9005: fix kernel panic on init if compiled without IR
Frank Schaefer [Mon, 29 Sep 2014 18:17:35 +0000 (15:17 -0300)]
[media] af9005: fix kernel panic on init if compiled without IR

This patches fixes an ancient bug in the dvb_usb_af9005 driver, which
has been reported at least in the following threads:
https://lkml.org/lkml/2009/2/4/350
https://lkml.org/lkml/2014/9/18/558

If the driver is compiled in without any IR support (neither
DVB_USB_AF9005_REMOTE nor custom symbols), the symbol_request calls in
af9005_usb_module_init() return pointers != NULL although the IR
symbols are not available.

This leads to the following oops:
...
[    8.529751] usbcore: registered new interface driver dvb_usb_af9005
[    8.531584] BUG: unable to handle kernel paging request at 02e00000
[    8.533385] IP: [<7d9d67c6>] af9005_usb_module_init+0x6b/0x9d
[    8.535613] *pde = 00000000
[    8.536416] Oops: 0000 [#1] PREEMPT PREEMPT DEBUG_PAGEALLOCDEBUG_PAGEALLOC
[    8.537863] CPU: 0 PID: 1 Comm: swapper Not tainted 3.15.0-rc6-00151-ga5c075c #1
[    8.539827] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014
[    8.541519] task: 89c9a670 ti: 89c9c000 task.ti: 89c9c000
[    8.541519] EIP: 0060:[<7d9d67c6>] EFLAGS: 00010206 CPU: 0
[    8.541519] EIP is at af9005_usb_module_init+0x6b/0x9d
[    8.541519] EAX: 02e00000 EBX: 00000000 ECX: 00000006 EDX: 00000000
[    8.541519] ESI: 00000000 EDI: 7da33ec8 EBP: 89c9df30 ESP: 89c9df2c
[    8.541519]  DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
[    8.541519] CR0: 8005003b CR2: 02e00000 CR3: 05a54000 CR4: 00000690
[    8.541519] Stack:
[    8.541519]  7d9d675b 89c9df90 7d992a49 7d7d5914 89c9df4c 7be3a800 7d08c58c 8a4c3968
[    8.541519]  89c9df80 7be3a966 00000192 00000006 00000006 7d7d3ff4 8a4c397a 00000200
[    8.541519]  7d6b1280 8a4c3979 00000006 000009a6 7da32db8 b13eec81 00000006 000009a6
[    8.541519] Call Trace:
[    8.541519]  [<7d9d675b>] ? ttusb2_driver_init+0x16/0x16
[    8.541519]  [<7d992a49>] do_one_initcall+0x77/0x106
[    8.541519]  [<7be3a800>] ? parameqn+0x2/0x35
[    8.541519]  [<7be3a966>] ? parse_args+0x113/0x25c
[    8.541519]  [<7d992bc2>] kernel_init_freeable+0xea/0x167
[    8.541519]  [<7cf01070>] kernel_init+0x8/0xb8
[    8.541519]  [<7cf27ec0>] ret_from_kernel_thread+0x20/0x30
[    8.541519]  [<7cf01068>] ? rest_init+0x10c/0x10c
[    8.541519] Code: 08 c2 c7 05 44 ed f9 7d 00 00 e0 02 c7 05 40 ed f9 7d 00 00 e0 02 c7 05 3c ed f9 7d 00 00 e0 02 75 1f b8 00 00 e0 02 85 c0 74 16 <a1> 00 00 e0 02 c7 05 54 84 8e 7d 00 00 e0 02 a3 58 84 8e 7d eb
[    8.541519] EIP: [<7d9d67c6>] af9005_usb_module_init+0x6b/0x9d SS:ESP 0068:89c9df2c
[    8.541519] CR2: 0000000002e00000
[    8.541519] ---[ end trace 768b6faf51370fc7 ]---

The prefered fix would be to convert the whole IR code to use the kernel IR
infrastructure (which wasn't available at the time this driver had been created).

Until anyone who still has this old hardware steps up an does the conversion,
fix it by not calling the symbol_request calls if the driver is compiled in
without the default IR symbols (CONFIG_DVB_USB_AF9005_REMOTE).
Due to the IR related pointers beeing NULL by default, IR support will then be disabled.

The downside of this solution is, that it will no longer be possible to
compile custom IR symbols (not using CONFIG_DVB_USB_AF9005_REMOTE) in.

Please note that this patch has NOT been tested with all possible cases.
I don't have the hardware and could only verify that it fixes the reported
bug.

Reported-by: Fengguag Wu <fengguang.wu@intel.com>
Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Cc: <stable@vger.kernel.org>
Acked-by: Luca Olivetti <luca@ventoso.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx23885: add IR for DVBSky T9580 Dual DVB-S2/T2/C PCIe card
nibble.max [Mon, 29 Sep 2014 14:17:36 +0000 (11:17 -0300)]
[media] cx23885: add IR for DVBSky T9580 Dual DVB-S2/T2/C PCIe card

DVBSky T9580 uses Integrated CX23885 IR controller to decode IR signal.
The IR type of DVBSky remote control is RC5.

Signed-off-by: Nibble Max <nibble.max@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx23855: add CI support for DVBSky T980C
Olli Salonen [Sat, 4 Oct 2014 06:59:30 +0000 (03:59 -0300)]
[media] cx23855: add CI support for DVBSky T980C

Add CI support for DVBSky T980C card. The new host device independent CIMaX SP2 I2C driver was used to implement it.

IRQ handling is not implemented at this point. It could be used to detect the CAM insertion/removal instantly.

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx23885: add I2C client for CI into state and handle unregistering
Olli Salonen [Mon, 29 Sep 2014 07:44:19 +0000 (04:44 -0300)]
[media] cx23885: add I2C client for CI into state and handle unregistering

If the CI chip has an I2C driver, we need to store I2C client into state.

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] sp2: improve debug logging
Olli Salonen [Mon, 29 Sep 2014 07:44:18 +0000 (04:44 -0300)]
[media] sp2: improve debug logging

Improve debugging output.

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] sp2: fix incorrect struct
Olli Salonen [Mon, 29 Sep 2014 07:44:17 +0000 (04:44 -0300)]
[media] sp2: fix incorrect struct

Incorrect struct used in the SP2 driver.

Reported-by: Max Nibble <nibble.max@gmail.com>
Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx23855: add support for DVBSky T980C (no CI support)
Olli Salonen [Mon, 29 Sep 2014 07:44:16 +0000 (04:44 -0300)]
[media] cx23855: add support for DVBSky T980C (no CI support)

This patch adds basic support for DVBSky T980C card. CI interface is not supported.

DVBSky T980C is a PCIe card with the following components:
- CX23885 PCIe bridge
- Si2168-A20 demodulator
- Si2158-A20 tuner
- CIMaX SP2 CI chip

The demodulator and tuner need firmware. They're the same as used with TT CT2-4650 CI:
https://www.mail-archive.com/linux-media@vger.kernel.org/msg78033.html

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] ti-fpe: LLVMLinux: Remove nested function from ti-vpe
Behan Webster [Sat, 27 Sep 2014 01:11:45 +0000 (22:11 -0300)]
[media] ti-fpe: LLVMLinux: Remove nested function from ti-vpe

Replace the use of nested functions where a normal function will suffice.

Nested functions are not liked by upstream kernel developers in general. Their
use breaks the use of clang as a compiler, and doesn't make the code any
better.

This code now works for both gcc and clang.

Suggested-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Behan Webster <behanw@converseincode.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] sound: Update au0828 quirks table
Mauro Carvalho Chehab [Thu, 30 Oct 2014 10:53:05 +0000 (07:53 -0300)]
[media] sound: Update au0828 quirks table

The au0828 quirks table is currently not in sync with the au0828
media driver.

Syncronize it and put them on the same order as found at au0828
driver, as all the au0828 devices with analog TV need the
same quirks.

Cc: stable@vger.kernel.org
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] sound: simplify au0828 quirk table
Mauro Carvalho Chehab [Thu, 30 Oct 2014 10:53:04 +0000 (07:53 -0300)]
[media] sound: simplify au0828 quirk table

Add a macro to simplify au0828 quirk table. That makes easier
to check it against the USB IDs at drivers/media/usb/au0828/au0828-cards.c.

Cc: stable@vger.kernel.org
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] si2157: add support for SYS_DVBC_ANNEX_B
Olli Salonen [Thu, 30 Oct 2014 10:43:16 +0000 (07:43 -0300)]
[media] si2157: add support for SYS_DVBC_ANNEX_B

Set the property for delivery system also in case of SYS_DVBC_ANNEX_B.
This behaviour is observed in the sniffs taken with Hauppauge HVR-955Q
Windows driver.

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] em28xx-dvb: remove unused mfe_sharing
Mauro Carvalho Chehab [Mon, 29 Sep 2014 02:23:20 +0000 (23:23 -0300)]
[media] em28xx-dvb: remove unused mfe_sharing

This field is not used on this driver anymore. Remove it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] drxk: Fix debug printks
Mauro Carvalho Chehab [Mon, 29 Sep 2014 02:23:19 +0000 (23:23 -0300)]
[media] drxk: Fix debug printks

This patch partially reverts 0fb220f2a5cb. What happened is
that the conversion of debug messages to use pr_debug() was a
bad idea, because one needing to debug would need to both
enable debug level via a modprobe parameter, and then to
enable the dynamic printk's.

So, for now, let's use printk() directly at dprintk().

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] Documentation: FE_SET_PROPERTY requires R/W
Mauro Carvalho Chehab [Fri, 26 Sep 2014 18:37:38 +0000 (15:37 -0300)]
[media] Documentation: FE_SET_PROPERTY requires R/W

FE_SET_PROPERTY requires to open the devnode on R/W mode, or
otherwise it will fail. Document it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] dib7000p: get rid of an unused argument
Mauro Carvalho Chehab [Thu, 9 Oct 2014 13:29:35 +0000 (10:29 -0300)]
[media] dib7000p: get rid of an unused argument

dib7000p is for DVB, and not ISDB. So, there's no layer.

That removes this compilation warning:
drivers/media/dvb-frontends/dib7000p.c:1972: warning: 'i' is used uninitialized in this function

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] v4l2-ctrls: fix sparse warning
Hans Verkuil [Mon, 22 Sep 2014 14:08:55 +0000 (11:08 -0300)]
[media] v4l2-ctrls: fix sparse warning

The warning is simple:

drivers/media/v4l2-core/v4l2-ctrls.c:1685:15: warning: incorrect type in assignment (different address spaces)

but the fix isn't.

The core problem was that the conversion from user to kernelspace was
done at too low a level and that needed to be moved up. That made it possible
to drop pointers to v4l2_ext_control from set_ctrl and validate_new and
clean up this sparse warning because those functions now always operate
on kernelspace pointers.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: davinci: vpbe: return -ENODATA for *dv_timings/*_std calls
Prabhakar Lad [Sun, 12 Oct 2014 20:40:45 +0000 (17:40 -0300)]
[media] media: davinci: vpbe: return -ENODATA for *dv_timings/*_std calls

this patch adds support for returning -ENODATA if the current
output doesn't support it.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: davinci: vpbe: group v4l2_ioctl_ops
Prabhakar Lad [Sun, 12 Oct 2014 20:40:44 +0000 (17:40 -0300)]
[media] media: davinci: vpbe: group v4l2_ioctl_ops

this patch groups the v4l2_ioctl_ops.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: davinci: vpbe: drop unused member memory from vpbe_layer
Prabhakar Lad [Sun, 12 Oct 2014 20:40:43 +0000 (17:40 -0300)]
[media] media: davinci: vpbe: drop unused member memory from vpbe_layer

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: davinci: vpbe: use helpers provided by core if streaming is started
Prabhakar Lad [Sun, 12 Oct 2014 20:40:42 +0000 (17:40 -0300)]
[media] media: davinci: vpbe: use helpers provided by core if streaming is started

this patch uses vb2_is_busy() helper to check if streaming is
actually started, instead of driver managing it.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: davinci: vpbe: add support for VIDIOC_EXPBUF
Prabhakar Lad [Sun, 12 Oct 2014 20:40:41 +0000 (17:40 -0300)]
[media] media: davinci: vpbe: add support for VIDIOC_EXPBUF

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: davinci: vpbe: add support for VB2_DMABUF
Prabhakar Lad [Sun, 12 Oct 2014 20:40:39 +0000 (17:40 -0300)]
[media] media: davinci: vpbe: add support for VB2_DMABUF

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: davinci: vpbe: use vb2_ioctl_* helpers
Prabhakar Lad [Sun, 12 Oct 2014 20:40:38 +0000 (17:40 -0300)]
[media] media: davinci: vpbe: use vb2_ioctl_* helpers

this patch adds support for using vb2_ioctl_* helpers.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: davinci: vpbe: use fh handling provided by v4l
Prabhakar Lad [Sun, 12 Oct 2014 20:40:37 +0000 (17:40 -0300)]
[media] media: davinci: vpbe: use fh handling provided by v4l

this patch converts the driver to use fh handling provided by the
v4l core instead of driver doing it.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: davinci: vpbe: use vb2_fop_mmap/poll
Prabhakar Lad [Sun, 12 Oct 2014 20:40:36 +0000 (17:40 -0300)]
[media] media: davinci: vpbe: use vb2_fop_mmap/poll

this patch teaches vpbe driver to use vb2_fop_mmap/poll helpers.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>