]> git.karo-electronics.de Git - linux-beck.git/log
linux-beck.git
8 years ago[media] dvb_frontend: eliminate blocking wait in dvb_unregister_frontend()
Max Kellermann [Mon, 4 Jul 2016 12:08:51 +0000 (09:08 -0300)]
[media] dvb_frontend: eliminate blocking wait in dvb_unregister_frontend()

The wait_event() call in dvb_unregister_frontend() waits synchronously
for other tasks to free a file descriptor, but it does that while
holding several mutexes.  That alone is a bad idea, but if one user
process happens to keep a (defunct) file descriptor open indefinitely,
the kernel will correctly detect a hung task:

    INFO: task kworker/0:1:314 blocked for more than 30 seconds.
          Not tainted 4.7.0-rc1-hosting+ #50
    "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    kworker/0:1     D ffff88003daf7a50     0   314      2 0x00000000
    Workqueue: usb_hub_wq hub_event
     ffff88003daf7a50 0000000000000296 ffff88003daf7a30 ffff88003fc13f98
     ffff88003dadce00 ffff88003daf8000 ffff88003e3fc010 ffff88003d48d4f8
     ffff88003e3b5030 ffff88003e3f8898 ffff88003daf7a68 ffffffff810cf860
    Call Trace:
     [<ffffffff810cf860>] schedule+0x30/0x80
     [<ffffffff812f88d3>] dvb_unregister_frontend+0x93/0xc0
     [<ffffffff8107a000>] ? __wake_up_common+0x80/0x80
     [<ffffffff813019c7>] dvb_usb_adapter_frontend_exit+0x37/0x70
     [<ffffffff81300614>] dvb_usb_exit+0x34/0xb0
     [<ffffffff81300d4a>] dvb_usb_device_exit+0x3a/0x50
     [<ffffffff81302dc2>] pctv452e_usb_disconnect+0x52/0x60
     [<ffffffff81295a07>] usb_unbind_interface+0x67/0x1e0
     [<ffffffff810609f3>] ? __blocking_notifier_call_chain+0x53/0x70
     [<ffffffff8127ba67>] __device_release_driver+0x77/0x110
     [<ffffffff8127c2d3>] device_release_driver+0x23/0x30
     [<ffffffff8127ab5d>] bus_remove_device+0x10d/0x150
     [<ffffffff8127879b>] device_del+0x13b/0x260
     [<ffffffff81299dea>] ? usb_remove_ep_devs+0x1a/0x30
     [<ffffffff8129468e>] usb_disable_device+0x9e/0x1e0
     [<ffffffff8128bb09>] usb_disconnect+0x89/0x260
     [<ffffffff8128db8d>] hub_event+0x30d/0xfc0
     [<ffffffff81059475>] process_one_work+0x1c5/0x4a0
     [<ffffffff8105940c>] ? process_one_work+0x15c/0x4a0
     [<ffffffff81059799>] worker_thread+0x49/0x480
     [<ffffffff81059750>] ? process_one_work+0x4a0/0x4a0
     [<ffffffff81059750>] ? process_one_work+0x4a0/0x4a0
     [<ffffffff8105f65e>] kthread+0xee/0x110
     [<ffffffff810400bf>] ret_from_fork+0x1f/0x40
     [<ffffffff8105f570>] ? __kthread_unpark+0x70/0x70
    5 locks held by kworker/0:1/314:
     #0:  ("usb_hub_wq"){......}, at: [<ffffffff8105940c>] process_one_work+0x15c/0x4a0
     #1:  ((&hub->events)){......}, at: [<ffffffff8105940c>] process_one_work+0x15c/0x4a0
     #2:  (&dev->mutex){......}, at: [<ffffffff8128d8cb>] hub_event+0x4b/0xfc0
     #3:  (&dev->mutex){......}, at: [<ffffffff8128bad2>] usb_disconnect+0x52/0x260
     #4:  (&dev->mutex){......}, at: [<ffffffff8127c2cb>] device_release_driver+0x1b/0x30

This patch removes the blocking wait, and postpones the kfree() call
until all file handles have been closed by using struct kref.

Signed-off-by: Max Kellermann <max@duempel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] drivers: staging: media: lirc: lirc_parallel: Fix multiline comments by addin...
Aayush Gupta [Sat, 2 Jul 2016 12:58:53 +0000 (09:58 -0300)]
[media] drivers: staging: media: lirc: lirc_parallel: Fix multiline comments by adding trailing '*'

Signed-off-by: Aayush Gupta <aayustark007@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] lirc_dev: use LIRC_CAN_REC() define to check if the device can receive
Andi Shyti [Wed, 6 Jul 2016 09:01:27 +0000 (06:01 -0300)]
[media] lirc_dev: use LIRC_CAN_REC() define to check if the device can receive

The LIRC_CAN_REC() returns a boolean "flag & LIRC_CAN_REC_MASK"
to check whether the device can receive data.

Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] lirc_dev: fix potential segfault
Andi Shyti [Wed, 6 Jul 2016 09:01:26 +0000 (06:01 -0300)]
[media] lirc_dev: fix potential segfault

When opening or closing a lirc character device, the framework
provides to the user the possibility to keep track of opening or
closing of the device by calling two functions:

 - set_use_inc() when opening the device
 - set_use_dec() when closing the device

if those are not set by the lirc user, the system segfaults.
Check the pointer value before calling the above functions.

Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] lirc_dev: extremely trivial comment style fix
Andi Shyti [Wed, 6 Jul 2016 09:01:25 +0000 (06:01 -0300)]
[media] lirc_dev: extremely trivial comment style fix

Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] lirc_dev: fix error return value
Andi Shyti [Wed, 6 Jul 2016 09:01:24 +0000 (06:01 -0300)]
[media] lirc_dev: fix error return value

If ioctl is called, it cannot be a case of invalid system call
number (ENOSYS), that is a ENOTTY case which means that the
device doesn't support that specific ioctl command.

So, replace ENOSYS with ENOTTY.

Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] lirc_dev: fix variable constant comparisons
Andi Shyti [Wed, 6 Jul 2016 09:01:23 +0000 (06:01 -0300)]
[media] lirc_dev: fix variable constant comparisons

When comparing a variable with a constant, the comparison should
start from the variable and not from the constant. It's also
written in the human DNA.

Swap the terms of comparisons whenever the constant comes first
and fix the following checkpatch warning:

  WARNING: Comparisons should place the constant on the right side of the test

Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] lirc_dev: merge three if statements in only one
Andi Shyti [Wed, 6 Jul 2016 09:01:21 +0000 (06:01 -0300)]
[media] lirc_dev: merge three if statements in only one

The three if statements check the same thing, merge them in only
one statement.

Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] lirc_dev: remove double if ... else statement
Andi Shyti [Wed, 6 Jul 2016 09:01:20 +0000 (06:01 -0300)]
[media] lirc_dev: remove double if ... else statement

There are two if ... else which check the same thing in different
part of the code, they can be merged in a single check.

Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] lirc_dev: simplify if statement in lirc_add_to_buf
Andi Shyti [Wed, 6 Jul 2016 09:01:19 +0000 (06:01 -0300)]
[media] lirc_dev: simplify if statement in lirc_add_to_buf

The whole function is inside an 'if' statement
("if (ir->d.add_to_buf)").

Check the opposite of that statement at the beginning and exit,
this way we can have one level less of indentation.

Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] lirc_dev: do not use goto to create loops
Andi Shyti [Wed, 6 Jul 2016 09:01:18 +0000 (06:01 -0300)]
[media] lirc_dev: do not use goto to create loops

... use "do .. while" instead.

Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] lirc_dev: simplify goto paths
Andi Shyti [Wed, 6 Jul 2016 09:01:17 +0000 (06:01 -0300)]
[media] lirc_dev: simplify goto paths

The code can be rearranged so that some goto paths can be removed

Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] lirc_dev: replace printk with pr_* or dev_*
Andi Shyti [Wed, 6 Jul 2016 09:01:16 +0000 (06:01 -0300)]
[media] lirc_dev: replace printk with pr_* or dev_*

This patch mutes also all the checkpatch warnings related to
printk.

Reword all the printouts so that the string doesn't need to be
split, which fixes the following checkpatch warning:

  WARNING: quoted string split across lines

Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] lirc_dev: remove unnecessary debug prints
Andi Shyti [Wed, 6 Jul 2016 09:01:15 +0000 (06:01 -0300)]
[media] lirc_dev: remove unnecessary debug prints

Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] lirc_dev: allow bufferless driver registration
Andi Shyti [Wed, 6 Jul 2016 09:01:14 +0000 (06:01 -0300)]
[media] lirc_dev: allow bufferless driver registration

Transmitters don't necessarily need to have a FIFO managed buffer
for their transfers.

When registering the driver, before allocating the buffer, check
whether the device is a transmitter or receiver. Allocate the
buffer only for receivers.

Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] lirc_dev: place buffer allocation on separate function
Andi Shyti [Wed, 6 Jul 2016 09:01:13 +0000 (06:01 -0300)]
[media] lirc_dev: place buffer allocation on separate function

During the driver registration, move the buffer allocation on a
separate function.

Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] vsp1: clarify FCP dependency
Arnd Bergmann [Thu, 30 Jun 2016 12:23:03 +0000 (09:23 -0300)]
[media] vsp1: clarify FCP dependency

The newly added FCP support in the vsp1 driver causes a link error
when CONFIG_RENESAS_FCP=m, since it's not reachable by built-in code:

drivers/media/built-in.o: In function `vsp1_remove':
:(.text+0xdeca0): undefined reference to `rcar_fcp_put'
drivers/media/built-in.o: In function `vsp1_probe':
:(.text+0xdef44): undefined reference to `rcar_fcp_get'

We already have a conditional dependency on FCP that requires
it for ARM64, so for all others we just have to prevent setting
RENESAS_VSP1=y when RENESAS_FCP=m by extending the FCP dependency.

Fixes: 94fcdf829793 ("[media] v4l: vsp1: Add FCP support")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] vsp1: use __maybe_unused for PM handlers
Arnd Bergmann [Thu, 30 Jun 2016 12:23:02 +0000 (09:23 -0300)]
[media] vsp1: use __maybe_unused for PM handlers

Building without CONFIG_PM results in a harmless warning from
slightly incorrect #ifdef guards:

drivers/media/platform/vsp1/vsp1_drv.c:525:12: error: 'vsp1_pm_runtime_resume' defined but not used [-Werror=unused-function]
drivers/media/platform/vsp1/vsp1_drv.c:516:12: error: 'vsp1_pm_runtime_suspend' defined but not used [-Werror=unused-function]

This removes the existing #ifdef and instead marks all four
PM functions as __maybe_unused.

Fixes: 1e6af546ee66 ("[media] v4l: vsp1: Implement runtime PM support")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years agoMerge branch 'topic/vsp1' into patchwork
Mauro Carvalho Chehab [Wed, 13 Jul 2016 16:43:48 +0000 (13:43 -0300)]
Merge branch 'topic/vsp1' into patchwork

* topic/vsp1: (36 commits)
  [media] v4l: vsp1: wpf: Add flipping support
  [media] v4l: vsp1: rwpf: Support runtime modification of controls
  [media] v4l: vsp1: Simplify alpha propagation
  [media] v4l: vsp1: clu: Support runtime modification of controls
  [media] v4l: vsp1: lut: Support runtime modification of controls
  [media] v4l: vsp1: Support runtime modification of controls
  [media] v4l: vsp1: Add Cubic Look Up Table (CLU) support
  [media] v4l: vsp1: lut: Expose configuration through a control
  [media] v4l: vsp1: lut: Initialize the mutex
  [media] v4l: vsp1: dl: Don't free fragments with interrupts disabled
  [media] v4l: vsp1: Set entities functions
  [media] v4l: vsp1: Don't create LIF entity when the userspace API is enabled
  [media] v4l: vsp1: Don't register media device when userspace API is disabled
  [media] v4l: vsp1: Base link creation on availability of entities
  [media] media: Add video statistics computation functions
  [media] media: Add video processing entity functions
  [media] v4l: vsp1: sru: Fix intensity control ID
  [media] v4l: vsp1: Stop the pipeline upon the first STREAMOFF
  [media] v4l: vsp1: Constify operation structures
  [media] v4l: vsp1: pipe: Fix typo in comment
  ...

8 years ago[media] tw686x: Support VIDIOC_{S,G}_PARM ioctls
Ezequiel Garcia [Wed, 29 Jun 2016 02:17:35 +0000 (23:17 -0300)]
[media] tw686x: Support VIDIOC_{S,G}_PARM ioctls

Now that the frame rate can be properly set, this commit adds support
for S_PARM and G_PARM.

Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] tw686x: use a formula instead of two tables for div
Mauro Carvalho Chehab [Wed, 29 Jun 2016 02:17:34 +0000 (23:17 -0300)]
[media] tw686x: use a formula instead of two tables for div

Instead of using two tables to estimate the temporal decimation
factor, use a formula. This allows to get the closest fps, which
sounds better than the current tables.

Also, the current code doesn't store the real framerate.

This patch fixes the above issues.

[Ezequiel:
  - introduce a TW686X_MAX_FPS macro for max_fps.
  - use hweight_long instead of open coding the set bits count.]

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] dvb-usb: silence an uninitialized variable warning
Dan Carpenter [Mon, 27 Jun 2016 14:29:46 +0000 (11:29 -0300)]
[media] dvb-usb: silence an uninitialized variable warning

My static checker complains that if adap->props.num_frontends is 0 then
"ret" is uninitialized.  I don't think that can happen.  But "ret" is
always zero here so we can just remove the condition.

This extra check was added in commit 0d3ab8410dcb ('[media] dvb core:
must check dvb_create_media_graph()').

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] netup_unidvb: trivial fix of spelling mistake "initizalize" -> "initialize"
Colin Ian King [Fri, 24 Jun 2016 18:00:24 +0000 (15:00 -0300)]
[media] netup_unidvb: trivial fix of spelling mistake "initizalize" -> "initialize"

trivial fix to spelling mistake in dev_err message

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Abylay Ospan <aospan@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] dw2102: add USB ID for Terratec Cinergy S2 Rev.3
Olli Salonen [Mon, 13 Jun 2016 14:04:50 +0000 (11:04 -0300)]
[media] dw2102: add USB ID for Terratec Cinergy S2 Rev.3

Add the USB ID for Terratec Cinergy S2 Rev.3 (0ccd:0102).

Curiously dvb-usb-ids included already the USB ID for TERRATEC_CINERGY_S2_R3 even if the device was not supported.

Reported-by: Christian Knippel <namerp@googlemail.com>
Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] ascot2e: Fix I2C message size check
Saso Slavicic [Wed, 13 Jul 2016 14:56:22 +0000 (11:56 -0300)]
[media] ascot2e: Fix I2C message size check

Tuning a card with Sony ASCOT2E produces the following error:

kernel: i2c i2c-9: wr reg=0006: len=11 is too big!

MAX_WRITE_REGSIZE is defined as 10, buf[MAX_WRITE_REGSIZE + 1] buffer is
used in ascot2e_write_regs().

The problem is that exactly 10 bytes are written in ascot2e_set_params():

/* Set BW_OFFSET (0x0F) value from parameter table */
data[9] = ascot2e_sett[tv_system].bw_offset;
ascot2e_write_regs(priv, 0x06, data, 10);

The test in write_regs is as follows:

if (len + 1 >= sizeof(buf))

10 + 1 = 11 and that would be exactly the size of buf. Since 10 bytes +
buf[0] = reg would seem to fit into buf[], this shouldn't be an error.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] pulse8-cec: fix non static symbol warning
Wei Yongjun [Wed, 13 Jul 2016 12:45:00 +0000 (09:45 -0300)]
[media] pulse8-cec: fix non static symbol warning

Fixes the following sparse warning:

drivers/staging/media/pulse8-cec/pulse8-cec.c:427:27: warning:
 symbol 'pulse8_cec_adap_ops' was not declared. Should it be static?

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] mtk-vcodec: remove redundant dev_err call in mtk_vcodec_probe()
Wei Yongjun [Tue, 12 Jul 2016 11:02:59 +0000 (08:02 -0300)]
[media] mtk-vcodec: remove redundant dev_err call in mtk_vcodec_probe()

There is a error message within devm_ioremap_resource
already, so remove the dev_err call to avoid redundant
error message.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Reviewed-by: Tiffany Lin <tiffany.lin@mediatek.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] vcodec: mediatek: Fix return value check in mtk_vcodec_init_enc_pm()
Wei Yongjun [Tue, 12 Jul 2016 11:02:28 +0000 (08:02 -0300)]
[media] vcodec: mediatek: Fix return value check in mtk_vcodec_init_enc_pm()

In case of error, the function devm_clk_get() returns ERR_PTR()
and not returns NULL. The NULL test in the return value check
should be replaced with IS_ERR().

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] VPU: mediatek: remove redundant dev_err call in mtk_vpu_probe()
Wei Yongjun [Tue, 12 Jul 2016 11:01:26 +0000 (08:01 -0300)]
[media] VPU: mediatek: remove redundant dev_err call in mtk_vpu_probe()

There is a error message within devm_ioremap_resource
already, so remove the dev_err call to avoid redundant
error message.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] VPU: mediatek: fix return value check in mtk_vpu_probe()
Wei Yongjun [Tue, 12 Jul 2016 11:00:55 +0000 (08:00 -0300)]
[media] VPU: mediatek: fix return value check in mtk_vpu_probe()

In case of error, the function devm_clk_get() returns ERR_PTR()
and not returns NULL. The NULL test in the return value check
should be replaced with IS_ERR().

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cec: split the timestamp into an rx and tx timestamp
Hans Verkuil [Tue, 12 Jul 2016 14:10:42 +0000 (11:10 -0300)]
[media] cec: split the timestamp into an rx and tx timestamp

When transmitting a message and waiting for a reply it would be good
to know the time between when the message was transmitted and when
the reply arrived. With only one timestamp field it was set to when
the reply arrived and the original transmit time was overwritten.

Just taking the timestamp in userspace right before CEC_TRANSMIT is
called is not reliable, since the actual transmit can be delayed if
the CEC bus is busy. Only the driver can fill this in accurately.

So split up the ts field into an rx_ts and a tx_ts. Also move the
status fields to after the 'reply' field: they were placed in a
strange position and make much more sense when grouped with the
other status-related fields.

This patch also makes sure that the timestamp is taken as soon as
possible.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cec: add sanity check for msg->len
Hans Verkuil [Tue, 12 Jul 2016 14:10:41 +0000 (11:10 -0300)]
[media] cec: add sanity check for msg->len

Check (and warn) if the msg->len is too long or if it is 0.

Should never happen, but just in case...

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] Remove spurious blank lines in dw2101 kernel messages
Jonathan McDowell [Mon, 6 Jun 2016 13:23:59 +0000 (10:23 -0300)]
[media] Remove spurious blank lines in dw2101 kernel messages

The DW2102 DVB-S/S2 driver uses the info() logging function from
dvb-usb.h. This function already appends a newline to the provided log
message, causing the dmesg output from DW2102 to include blank lines.
Fix this by removing the newline in the calls to info().

Signed-off-by: Jonathan McDowell <noodles@earth.li>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] c8sectpfe: fix memory leak
Sudip Mukherjee [Thu, 2 Jun 2016 13:32:55 +0000 (10:32 -0300)]
[media] c8sectpfe: fix memory leak

We have assigned memory while requesting the firmware but if the sanity
check fails then we are not releasing the firmware.

Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cec-adap.c: work around gcc-4.4.4 anon union initializer bug
Andrew Morton [Tue, 12 Jul 2016 22:30:55 +0000 (15:30 -0700)]
[media] cec-adap.c: work around gcc-4.4.4 anon union initializer bug

drivers/staging/media/cec/cec-adap.c: In function 'cec_queue_msg_fh':
drivers/staging/media/cec/cec-adap.c:141: error: unknown field 'lost_msgs' specified in initializer

Fixes: 9881fe0ca187c21 ("[media] cec: add HDMI CEC framework (adapter)")
Cc: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Kamil Debski <kamil@wypas.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] pulse8-cec: declare function as static
Mauro Carvalho Chehab [Tue, 12 Jul 2016 16:46:20 +0000 (13:46 -0300)]
[media] pulse8-cec: declare function as static

drivers/staging/media/pulse8-cec/pulse8-cec.c:104:6: warning: no previous prototype for 'pulse8_irq_work_handler' [-Wmissing-prototypes]
 void pulse8_irq_work_handler(struct work_struct *work)
      ^~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] pulse8-cec: add TODO file
Hans Verkuil [Sun, 10 Jul 2016 10:14:24 +0000 (07:14 -0300)]
[media] pulse8-cec: add TODO file

Explain what needs to be done to move this driver out of staging.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] MAINTAINERS: add entry for the pulse8-cec driver
Hans Verkuil [Sun, 10 Jul 2016 10:13:34 +0000 (07:13 -0300)]
[media] MAINTAINERS: add entry for the pulse8-cec driver

Add entry for the pulse8-cec driver.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] pulse8-cec: new driver for the Pulse-Eight USB-CEC Adapter
Hans Verkuil [Sun, 10 Jul 2016 10:12:10 +0000 (07:12 -0300)]
[media] pulse8-cec: new driver for the Pulse-Eight USB-CEC Adapter

This supports the Pulse-Eight USB-CEC Adapter.

It has been tested with firmware versions 4 and 5, but it should
hopefully work fine with older firmwares as well.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] input: serio - add new protocol for the Pulse-Eight USB-CEC Adapter
Hans Verkuil [Sun, 10 Jul 2016 10:08:58 +0000 (07:08 -0300)]
[media] input: serio - add new protocol for the Pulse-Eight USB-CEC Adapter

This is for the new pulse8-cec staging driver.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cec: CEC_RECEIVE is allowed in monitor mode
Hans Verkuil [Mon, 11 Jul 2016 08:48:10 +0000 (05:48 -0300)]
[media] cec: CEC_RECEIVE is allowed in monitor mode

When the device is in monitor mode, then you should always be able to
call CEC_RECEIVE, even it the device is unconfigured.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cx23885: Add support for Hauppauge WinTV quadHD DVB version
Stephen Backway [Sat, 2 Jul 2016 09:46:23 +0000 (06:46 -0300)]
[media] cx23885: Add support for Hauppauge WinTV quadHD DVB version

Add support fo the Hauppauge WinTV quadHD DVB version.
IR support has not been provided, all 4 tuners, demodulators etc are working.
Further documentation can be found on Linux TV wiki.

Signed-off-by: Stephen Backway <stev391@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cec: add check if adapter is unregistered
Hans Verkuil [Sun, 10 Jul 2016 13:11:17 +0000 (10:11 -0300)]
[media] cec: add check if adapter is unregistered

CEC USB dongles can be unplugged at any time, and at that point they will
be unregistered. Make sure that any attempt afterwards to set the physical
or logical addresses will be ignored.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] adv7511: the h/vsync polarities were always positive
Hans Verkuil [Tue, 5 Jul 2016 10:16:23 +0000 (07:16 -0300)]
[media] adv7511: the h/vsync polarities were always positive

Correctly set the h/vsync polarities instead of keeping to the
default (positive).

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l2-ioctl: zero the v4l2_bt_timings reserved field
Hans Verkuil [Mon, 4 Jul 2016 13:05:48 +0000 (10:05 -0300)]
[media] v4l2-ioctl: zero the v4l2_bt_timings reserved field

This field should be zeroed. Both for s_dv_timings and for enum_dv_timings.
In fact, for the latter anything after the pad field can be zeroed.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] adv7604/adv7842: drop unused op_656_range and alt_data_sat fields
Hans Verkuil [Tue, 28 Jun 2016 14:54:59 +0000 (11:54 -0300)]
[media] adv7604/adv7842: drop unused op_656_range and alt_data_sat fields

These platform_data fields are no longer needed, drop them.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] ezkit/cobalt: drop unused op_656_range setting
Hans Verkuil [Tue, 28 Jun 2016 14:52:42 +0000 (11:52 -0300)]
[media] ezkit/cobalt: drop unused op_656_range setting

The adv7604/adv7842 drivers now handle that register setting themselves
and need no input from platform data anymore.

This was a left-over from the time that the pixelport output format was
decided by the platform data.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] adv7604/adv7842: fix quantization range handling
Hans Verkuil [Tue, 28 Jun 2016 14:43:01 +0000 (11:43 -0300)]
[media] adv7604/adv7842: fix quantization range handling

Fix a number of bugs that appeared when support for mediabus formats was
added:

- Support for V4L2_DV_RGB_RANGE_FULL/LIMITED should only be enabled
  for HDMI RGB formats, not for YCbCr formats. Since, as the name
  says, this setting is for RGB only. So read the InfoFrame to check
  the format.

- the quantization range for the pixelport depends on whether the
  mediabus code is RGB or not: if it is RGB, then produce full range
  RGB values, otherwise produce limited range YCbCr values.

  This means that the op_656_range and alt_data_sat fields of the
  platform data are no longer used and these will be removed in a
  following patch.

- when setting up a new format the RGB quantization range settings
  were never updated. Do so, since this depends on the format.

- fix the log_status output which was confusing and incorrect.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] adv7511: fix quantization range handling
Hans Verkuil [Tue, 28 Jun 2016 14:32:36 +0000 (11:32 -0300)]
[media] adv7511: fix quantization range handling

Commit 1fb69bfd29e4b2e5e93922105326dd6cbd5ef6eb (adv7511: improve
colorspace handling) introduced a number of bugs, specifically with
regards to YCbCr output and quantization range handling:

- if the output is not RGB, then disable the full-to-limited range
  CSC matrix since that is meant for RGB formats. YCbCr formats are
  always limited range, so there is nothing to convert. (OK, full
  range YCbCr is possible, but we don't support that right now).

- the mediabus code that was passed to adv7511_set_fmt was always cleared
  by the memset in adv7511_fill_format. This made it effectively impossible
  to select YCbCr output.

- adv7511_set_fmt never updated the rgb quantization range.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] adv7511: drop adv7511_set_IT_content_AVI_InfoFrame
Hans Verkuil [Tue, 28 Jun 2016 14:30:35 +0000 (11:30 -0300)]
[media] adv7511: drop adv7511_set_IT_content_AVI_InfoFrame

The IT Content bit has nothing to do with CE vs IT timings.
Delete this code. This will also fix a bug where this could
override the 'content type' control, which is actually the
correct place to set/clear the ITC bit.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] af9033: fix compiler warnings
Hans Verkuil [Mon, 11 Jul 2016 03:23:11 +0000 (00:23 -0300)]
[media] af9033: fix compiler warnings

Fix two warnings:

af9033.c: In function 'af9033_read_status':
af9033.c:883:25: warning: 'snr_lut' may be used uninitialized in this function [-Wmaybe-uninitialized]
   const struct val_snr *snr_lut;
                         ^
af9033.c:952:25: warning: 'tmp' may be used uninitialized in this function [-Wmaybe-uninitialized]
   c->cnr.stat[0].svalue = tmp;
                         ^

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: solo6x10: increase FRAME_BUF_SIZE
Andrey Utkin [Sun, 10 Jul 2016 00:44:50 +0000 (21:44 -0300)]
[media] media: solo6x10: increase FRAME_BUF_SIZE

In practice, devices sometimes return frames larger than current buffer
size, leading to failure in solo_send_desc().
It is not clear which minimal increase in buffer size would be enough,
so this patch doubles it, this should be safely assumed as sufficient.

Signed-off-by: Andrey Utkin <andrey.utkin@corp.bluecherry.net>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: usbtv: prevent access to free'd resources
Matthew Leach [Fri, 8 Jul 2016 12:04:27 +0000 (09:04 -0300)]
[media] media: usbtv: prevent access to free'd resources

When disconnecting the usbtv device, the sound card is unregistered
from ALSA and the snd member of the usbtv struct is set to NULL.  If
the usbtv snd_trigger work is running, this can cause a race condition
where the kernel will attempt to access free'd resources, shown in
[1].

This patch fixes the disconnection code by cancelling any snd_trigger
work before unregistering the sound card from ALSA and checking that
the snd member still exists in the work function.

[1]:
 usb 3-1.2: USB disconnect, device number 6
 BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
 IP: [<ffffffff81093850>] process_one_work+0x30/0x480
 PGD 405bbf067 PUD 405bbe067 PMD 0
 Call Trace:
  [<ffffffff81093ce8>] worker_thread+0x48/0x4e0
  [<ffffffff81093ca0>] ? process_one_work+0x480/0x480
  [<ffffffff81093ca0>] ? process_one_work+0x480/0x480
  [<ffffffff81099998>] kthread+0xd8/0xf0
  [<ffffffff815c73c2>] ret_from_fork+0x22/0x40
  [<ffffffff810998c0>] ? kthread_worker_fn+0x170/0x170
 ---[ end trace 0f3dac5c1a38e610 ]---

Signed-off-by: Matthew Leach <matthew@mattleach.net>
Tested-by: Peter Sutton <foxxy@foxdogstudios.com>
Cc: stable@vger.kernel.org
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] vivid: set V4L2_CAP_TIMEPERFRAME
Hans Verkuil [Wed, 6 Jul 2016 07:36:39 +0000 (04:36 -0300)]
[media] vivid: set V4L2_CAP_TIMEPERFRAME

The vivid driver didn't set the V4L2_CAP_TIMEPERFRAME flag in s_parm for the
non-webcam inputs. This caused a v4l2-compliance fail.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] mtk-vcodec: fix sparse warning
Tiffany Lin [Wed, 11 May 2016 08:21:45 +0000 (05:21 -0300)]
[media] mtk-vcodec: fix sparse warning

This patch fix sparse warning when running with parameters:
C=2 CF="-D__CHECK_ENDIAN__"

Signed-off-by: Tiffany Lin <tiffany.lin@mediatek.com>
Signed-off-by: PoChun Lin <pochun.lin@mediatek.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] mtk-vcodec: fix platform_no_drv_owner.cocci warnings
Fengguang Wu [Fri, 8 Jul 2016 23:22:25 +0000 (20:22 -0300)]
[media] mtk-vcodec: fix platform_no_drv_owner.cocci warnings

drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c:433:3-8: No need to set .owner here. The core will do it.

 Remove .owner field if calls are used which set it automatically

Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci

Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l2-subdev.h: remove the control subdev ops
Hans Verkuil [Sun, 3 Jul 2016 12:02:01 +0000 (09:02 -0300)]
[media] v4l2-subdev.h: remove the control subdev ops

These are no longer used (finally!), so remove them.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media/i2c: drop the last users of the ctrl core ops
Hans Verkuil [Sun, 3 Jul 2016 12:01:22 +0000 (09:01 -0300)]
[media] media/i2c: drop the last users of the ctrl core ops

Nobody is using these ops anymore, so remove these callbacks from
the subdev drivers that still have them.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] ivtv: use v4l2_g/s_ctrl instead of the g/s_ctrl ops
Hans Verkuil [Sun, 3 Jul 2016 12:24:14 +0000 (09:24 -0300)]
[media] ivtv: use v4l2_g/s_ctrl instead of the g/s_ctrl ops

These ops are deprecated and should not be used anymore.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cx18: use v4l2_g/s_ctrl instead of the g/s_ctrl ops
Hans Verkuil [Sun, 3 Jul 2016 12:23:47 +0000 (09:23 -0300)]
[media] cx18: use v4l2_g/s_ctrl instead of the g/s_ctrl ops

These ops are deprecated and should not be used anymore.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l2-flash-led: remove unused ops
Hans Verkuil [Sun, 3 Jul 2016 12:20:46 +0000 (09:20 -0300)]
[media] v4l2-flash-led: remove unused ops

These ops are deprecated and should not be used anymore (and in fact
they are not used at all).

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cx88: use wm8775_s_ctrl instead of the s_ctrl op
Hans Verkuil [Sun, 3 Jul 2016 12:00:26 +0000 (09:00 -0300)]
[media] cx88: use wm8775_s_ctrl instead of the s_ctrl op

This op is deprecated and should not be used anymore.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cx231xx: use v4l2_s_ctrl instead of the s_ctrl op
Hans Verkuil [Sun, 3 Jul 2016 11:59:33 +0000 (08:59 -0300)]
[media] cx231xx: use v4l2_s_ctrl instead of the s_ctrl op

This op is deprecated and should not be used anymore.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] via-camera: use v4l2_s_ctrl instead of the s_ctrl op
Hans Verkuil [Sun, 3 Jul 2016 12:13:04 +0000 (09:13 -0300)]
[media] via-camera: use v4l2_s_ctrl instead of the s_ctrl op

This op is deprecated and should not be used anymore.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] mcam-core: use v4l2_s_ctrl instead of the s_ctrl op
Hans Verkuil [Sun, 3 Jul 2016 11:58:55 +0000 (08:58 -0300)]
[media] mcam-core: use v4l2_s_ctrl instead of the s_ctrl op

This op is deprecated and should not be used anymore.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] usbvision: use v4l2_ctrl_g_ctrl instead of the g_ctrl op
Hans Verkuil [Sun, 3 Jul 2016 11:58:07 +0000 (08:58 -0300)]
[media] usbvision: use v4l2_ctrl_g_ctrl instead of the g_ctrl op

This op is deprecated and should not be used anymore.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] pvrusb2: use v4l2_s_ctrl instead of the s_ctrl op
Hans Verkuil [Sun, 3 Jul 2016 11:44:27 +0000 (08:44 -0300)]
[media] pvrusb2: use v4l2_s_ctrl instead of the s_ctrl op

This op is deprecated and should not be used anymore.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] davinci: drop unused control callbacks
Hans Verkuil [Sun, 3 Jul 2016 10:18:00 +0000 (07:18 -0300)]
[media] davinci: drop unused control callbacks

These callbacks are no longer used since the davinci drivers use the
control framework.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Prabhakar Lad <prabhakar.csengg@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] saa7164: drop unused saa7164_ctrl struct
Hans Verkuil [Sun, 3 Jul 2016 10:16:34 +0000 (07:16 -0300)]
[media] saa7164: drop unused saa7164_ctrl struct

No longer used, can be removed.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] omap_vout: use control framework
Hans Verkuil [Sun, 3 Jul 2016 10:33:33 +0000 (07:33 -0300)]
[media] omap_vout: use control framework

Replace the old control code with the control framework.

This is one of the few remaining drivers that was not using this
framework.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] Convert Wideview WT220 DVB USB driver to rc-core
Jonathan McDowell [Fri, 20 May 2016 15:08:35 +0000 (12:08 -0300)]
[media] Convert Wideview WT220 DVB USB driver to rc-core

Converts the dtt200u DVB USB driver over to the rc-core
infrastructure for its handling of IR remotes. This device can receive
generic NEC / NEC Extended signals and the switch to the newer core
enables the easy use of tools such as ir-keytable to modify the active
key map.

Signed-off-by: Jonathan McDowell <noodles@earth.li>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] Fix RC5 decoding with Fintek CIR chipset
Jonathan McDowell [Sat, 14 May 2016 17:01:26 +0000 (14:01 -0300)]
[media] Fix RC5 decoding with Fintek CIR chipset

Fix RC5 decoding with Fintek CIR chipset

Commit e87b540be2dd02552fb9244d50ae8b4e4619a34b tightened up the RC5
decoding by adding a check for trailing silence to ensure a valid RC5
command had been received. Unfortunately the trailer length checked was
10 units and the Fintek CIR device does not want to provide details of a
space longer than 6350us. This meant that RC5 remotes working on a
Fintek setup on 3.16 failed on 3.17 and later. Fix this by shortening
the trailer check to 6 units (allowing for a previous space in the
received remote command).

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=117221

Signed-off-by: Jonathan McDowell <noodles@earth.li>
Cc: stable@vger.kernel.org
Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: dvb_ringbuffer: Add memory barriers
Soeren Moch [Wed, 11 May 2016 16:49:11 +0000 (13:49 -0300)]
[media] media: dvb_ringbuffer: Add memory barriers

Implement memory barriers according to Documentation/circular-buffers.txt:
- use smp_store_release() to update ringbuffer read/write pointers
- use smp_load_acquire() to load write pointer on reader side
- use ACCESS_ONCE() to load read pointer on writer side

This fixes data stream corruptions observed e.g. on an ARM Cortex-A9
quad core system with different types (PCI, USB) of DVB tuners.

Signed-off-by: Soeren Moch <smoch@web.de>
Cc: stable@vger.kernel.org # 3.14+
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] mtk-vcodec: fix compiler warning
Hans Verkuil [Sat, 9 Jul 2016 07:32:58 +0000 (04:32 -0300)]
[media] mtk-vcodec: fix compiler warning

mtk-vcodec/venc_vpu_if.c:40:30: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  struct venc_vpu_inst *vpu = (struct venc_vpu_inst *)msg->venc_inst;
                              ^

Note: venc_inst is u64.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] zc3xx: Remove deprecated create_singlethread_workqueue
Bhaktipriya Shridhar [Sat, 9 Jul 2016 07:52:29 +0000 (04:52 -0300)]
[media] zc3xx: Remove deprecated create_singlethread_workqueue

The workqueue "work_thread" is involved in updating parameters for
transfers. It has a single work item(&sd->work) and hence
doesn't require ordering. Also, it is not being used on a memory
reclaim path. Hence, the singlethreaded workqueue has been replaced with
the use of system_wq.

System workqueues have been able to handle high level of concurrency
for a long time now and hence it's not required to have a singlethreaded
workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
created with create_singlethread_workqueue(), system_wq allows multiple
work items to overlap executions even on the same CPU; however, a
per-cpu workqueue doesn't have any CPU locality or global ordering
guarantee unless the target CPU is explicitly specified and thus the
increase of local concurrency shouldn't make any difference.

Work item has been flushed in sd_stop0() to ensure that there are no
pending tasks while disconnecting the driver.

Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] mtk-vcodec: fix two compiler warnings
Hans Verkuil [Sat, 9 Jul 2016 07:32:57 +0000 (04:32 -0300)]
[media] mtk-vcodec: fix two compiler warnings

mtk-vcodec/mtk_vcodec_enc.c: In function 'mtk_venc_worker':
mtk-vcodec/mtk_vcodec_enc.c:1030:43: warning: format '%lx' expects argument of type 'long unsigned int', but argument 7 has type 'size_t {aka unsigned int}' [-Wformat=]
mtk-vcodec/mtk_vcodec_enc.c:1030:43: warning: format '%lx' expects argument of type 'long unsigned int', but argument 10 has type 'size_t {aka unsigned int}' [-Wformat=]

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cxd2841er: don't expose a dvbv5 stats to userspace if not available
Mauro Carvalho Chehab [Fri, 1 Jul 2016 14:03:13 +0000 (11:03 -0300)]
[media] cxd2841er: don't expose a dvbv5 stats to userspace if not available

The current code will expose a zero value if one of the stats is
not available, but this is not what userspace expects. Instead,
if something goes wrong on providing some stats, it should be
changing the scale to FE_SCALE_NOT_AVAILABLE.

So, change the logic to do the right thing.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] DVB-C read signal strength added for Sony demod
Abylay Ospan [Fri, 1 Jul 2016 02:09:48 +0000 (23:09 -0300)]
[media] DVB-C read signal strength added for Sony demod

cxd2841er_read_agc_gain_c added to obtain signal strength.
signal strength now relay on AGC value.

Signed-off-by: Abylay Ospan <aospan@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cxd2841er: Fix signal strengh for DVB-T/T2 and show it in dBm
Mauro Carvalho Chehab [Thu, 30 Jun 2016 22:41:45 +0000 (19:41 -0300)]
[media] cxd2841er: Fix signal strengh for DVB-T/T2 and show it in dBm

The signal strength value is reversed: the bigger the number,
the weaker is the signal.

Fix the logic and present it in dBm. Please notice that the
dBm measure is actually an estimation, as the ratio is not
fully linear. It also varies with the frequency.

Yet, the estimation should be good enough for programs like
Kaffeine to indicate when the signal is good or bad.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Acked-by: Abylay Ospan <aospan@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cxd2841er: Do some changes at the dvbv5 stats logic
Mauro Carvalho Chehab [Thu, 30 Jun 2016 03:34:59 +0000 (00:34 -0300)]
[media] cxd2841er: Do some changes at the dvbv5 stats logic

It is a good idea to measure the signal strength while
tuning, as this helps to identify if the antenna is ok.
Also, such measure helps to identify the quality of the
signal.

Do some changes to enable it before signal lock. While
here, optimize the code to only initialize the stats
length once, and make sure that, just after set_frontend,
any reading for the stats that depends on lock to return
FE_SCALE_NOT_AVAILABLE.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Acked-by: Abylay Ospan <aospan@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cec-funcs.h: add missing 'reply' for short audio descriptor
Hans Verkuil [Fri, 8 Jul 2016 08:52:34 +0000 (05:52 -0300)]
[media] cec-funcs.h: add missing 'reply' for short audio descriptor

The cec_msg_request_short_audio_descriptor function was missing the reply
argument. That's needed if you want the framework to wait for the reply
message.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cec-funcs.h: add missing const modifier
Hans Verkuil [Fri, 8 Jul 2016 08:36:26 +0000 (05:36 -0300)]
[media] cec-funcs.h: add missing const modifier

The cec_ops_* functions never touch cec_msg, so mark it as const.

This was done for some of the cec_ops_ functions, but not all.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cec-funcs.h: add length checks
Hans Verkuil [Wed, 6 Jul 2016 08:49:26 +0000 (05:49 -0300)]
[media] cec-funcs.h: add length checks

Add msg->len sanity checks to fix static checker warning:

include/linux/cec-funcs.h:1154 cec_ops_set_osd_string()
warn: setting length 'msg->len - 3' to negative one

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cec: fix Kconfig dependency problems
Hans Verkuil [Fri, 1 Jul 2016 10:33:10 +0000 (07:33 -0300)]
[media] cec: fix Kconfig dependency problems

- Use IS_REACHABLE(RC_CORE) instead of IS_ENABLED: if cec is built-in and
  RC_CORE is a module, then CEC can't reach the RC symbols.
- Both cec and cec-edid should be bool and use the same build 'mode' as
  MEDIA_SUPPORT (just as is done for the media controller code).
- Add a note to staging that this should be changed once the cec framework
  is moved out of staging.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cec: add MEDIA_SUPPORT dependency
Arnd Bergmann [Wed, 29 Jun 2016 14:26:35 +0000 (11:26 -0300)]
[media] cec: add MEDIA_SUPPORT dependency

The MEDIA_CEC_EDID option is guarded by MEDIA_SUPPORT, so selecting
it from MEDIA_CEC produces a warning:

warning: (MEDIA_CEC) selects MEDIA_CEC_EDID which has unmet direct dependencies (MEDIA_SUPPORT)

The warning is harmless, but it's better to add an explicit
dependency to shut it up, to reduce the noise during randconfig
builds.

Fixes: ca684386e6e2 ("[media] cec: add HDMI CEC framework (api)")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] s5p_cec: mark suspend/resume as __maybe_unused
Arnd Bergmann [Wed, 29 Jun 2016 14:26:34 +0000 (11:26 -0300)]
[media] s5p_cec: mark suspend/resume as __maybe_unused

The suspend/resume functions in the s5p-cec driver are only
referenced when CONFIG_PM is enabled, so we get a warning
about unused functions otherwise:

drivers/staging/media/s5p-cec/s5p_cec.c:260:12: error: 's5p_cec_resume' defined but not used [-Werror=unused-function]
 static int s5p_cec_resume(struct device *dev)
            ^~~~~~~~~~~~~~
drivers/staging/media/s5p-cec/s5p_cec.c:253:12: error: 's5p_cec_suspend' defined but not used [-Werror=unused-function]
 static int s5p_cec_suspend(struct device *dev)

This marks them as __maybe_unused to avoid the warning without
having to introduce an extra #ifdef.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cec-adap: prevent write to out-of-bounds array index
Hans Verkuil [Thu, 30 Jun 2016 10:08:53 +0000 (07:08 -0300)]
[media] cec-adap: prevent write to out-of-bounds array index

CEC_MSG_REPORT_PHYSICAL_ADDR can theoretically be received from
an unregistered device, but in that case the code should not attempt
to write the received physical address to the phys_addrs array.

That would be pointless since there can be multiple unregistered
devices that report a physical address. We just ignore those.

While at it, improve the dprintk since it would attempt to read
from that array as well with the same out-of-bounds problem.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cec.h/cec-funcs.h: add option to use BSD license
Hans Verkuil [Thu, 30 Jun 2016 10:01:41 +0000 (07:01 -0300)]
[media] cec.h/cec-funcs.h: add option to use BSD license

Like the videodev2.h and other headers, explicitly allow these headers
to be used with the BSD license.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cec-adap: on reply, restore the tx_status value from the transmit
Hans Verkuil [Sun, 26 Jun 2016 09:57:56 +0000 (06:57 -0300)]
[media] cec-adap: on reply, restore the tx_status value from the transmit

When a reply to an earlier transmit is received, the tx_status of that
transmit needs to be restored. Otherwise the status that the transmit
was successful would be lost.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] rc-cec: Add HDMI CEC keymap module
Kamil Debski [Mon, 17 Aug 2015 11:47:41 +0000 (08:47 -0300)]
[media] rc-cec: Add HDMI CEC keymap module

Add the keymap module for HDMI CEC remote control commands.

Signed-off-by: Kamil Debski <kamil@wypas.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years agoMerge branch 'topic/cec' into patchwork
Mauro Carvalho Chehab [Fri, 8 Jul 2016 21:16:10 +0000 (18:16 -0300)]
Merge branch 'topic/cec' into patchwork

* topic/cec:
  [media] DocBook/media: add CEC documentation
  [media] s5p_cec: get rid of an unused var
  [media] move s5p-cec to staging
  [media] vivid: add CEC emulation
  [media] cec: s5p-cec: Add s5p-cec driver
  [media] cec: adv7511: add cec support
  [media] cec: adv7842: add cec support
  [media] cec: adv7604: add cec support
  [media] cec: add compat32 ioctl support
  [media] cec/TODO: add TODO file so we know why this is still in staging
  [media] cec: add HDMI CEC framework (api)
  [media] cec: add HDMI CEC framework (adapter)
  [media] cec: add HDMI CEC framework (core)
  [media] cec-funcs.h: static inlines to pack/unpack CEC messages
  [media] cec.h: add cec header
  [media] cec-edid: add module for EDID CEC helper functions
  [media] cec.txt: add CEC framework documentation
  [media] rc: Add HDMI CEC protocol handling

8 years agoMerge tag 'v4.7-rc6' into patchwork
Mauro Carvalho Chehab [Fri, 8 Jul 2016 21:14:03 +0000 (18:14 -0300)]
Merge tag 'v4.7-rc6' into patchwork

Linux 4.7-rc6

* tag 'v4.7-rc6': (1245 commits)
  Linux 4.7-rc6
  ovl: warn instead of error if d_type is not supported
  MIPS: Fix possible corruption of cache mode by mprotect.
  locks: use file_inode()
  usb: dwc3: st: Use explicit reset_control_get_exclusive() API
  phy: phy-stih407-usb: Use explicit reset_control_get_exclusive() API
  phy: miphy28lp: Inform the reset framework that our reset line may be shared
  namespace: update event counter when umounting a deleted dentry
  9p: use file_dentry()
  lockd: unregister notifier blocks if the service fails to come up completely
  ACPI,PCI,IRQ: correct operator precedence
  fuse: serialize dirops by default
  drm/i915: Fix missing unlock on error in i915_ppgtt_info()
  powerpc: Initialise pci_io_base as early as possible
  mfd: da9053: Fix compiler warning message for uninitialised variable
  mfd: max77620: Fix FPS switch statements
  phy: phy-stih407-usb: Inform the reset framework that our reset line may be shared
  usb: dwc3: st: Inform the reset framework that our reset line may be shared
  usb: host: ehci-st: Inform the reset framework that our reset line may be shared
  usb: host: ohci-st: Inform the reset framework that our reset line may be shared
  ...

8 years ago[media] media: rc: nuvoton: remove two unused elements in struct nvt_dev
Heiner Kallweit [Fri, 24 Jun 2016 05:40:02 +0000 (02:40 -0300)]
[media] media: rc: nuvoton: remove two unused elements in struct nvt_dev

These two fields are not used and can be removed.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: rc: nuvoton: remove unneeded check in nvt_get_rx_ir_data
Heiner Kallweit [Fri, 24 Jun 2016 05:39:55 +0000 (02:39 -0300)]
[media] media: rc: nuvoton: remove unneeded check in nvt_get_rx_ir_data

If the logical device is disabled then it can not generate interrupts.
Therefore this check is not needed.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: rc: nuvoton: simplify interrupt handling code
Heiner Kallweit [Fri, 24 Jun 2016 05:39:51 +0000 (02:39 -0300)]
[media] media: rc: nuvoton: simplify interrupt handling code

Simplify interupt handling code.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: rc: nuvoton: remove study states
Heiner Kallweit [Fri, 24 Jun 2016 05:39:45 +0000 (02:39 -0300)]
[media] media: rc: nuvoton: remove study states

Study states have never been used and are not needed. Remove them.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: rc: nuvoton: remove unneeded code in nvt_process_rx_ir_data
Heiner Kallweit [Fri, 24 Jun 2016 05:39:39 +0000 (02:39 -0300)]
[media] media: rc: nuvoton: remove unneeded code in nvt_process_rx_ir_data

The definition of rawir includes the initialization already.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: rc: nuvoton: simplify a few functions
Heiner Kallweit [Fri, 24 Jun 2016 05:39:28 +0000 (02:39 -0300)]
[media] media: rc: nuvoton: simplify a few functions

Simplify a few functions.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: rc: nuvoton: remove wake states
Heiner Kallweit [Fri, 24 Jun 2016 05:39:12 +0000 (02:39 -0300)]
[media] media: rc: nuvoton: remove wake states

Wake states have never been in use and now that we can set the
wakeup sequence via sysfs there's in general no need for them.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: rc: nuvoton: clean up initialization of wakeup registers
Heiner Kallweit [Fri, 24 Jun 2016 05:39:04 +0000 (02:39 -0300)]
[media] media: rc: nuvoton: clean up initialization of wakeup registers

The registers defining wakeup sequence handling are set when the
wakeup sequence is set via sysfs. There's no need to initialize them
otherwise.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>