GitHub/LineageOS/G12/android_kernel_amlogic_linux-4.9.git
10 years ago[media] media: drx39xyj - use drxj_set_lna_state() and remove duplicate LNA code
Shuah Khan [Thu, 24 Jul 2014 20:29:28 +0000 (17:29 -0300)]
[media] media: drx39xyj - use drxj_set_lna_state() and remove duplicate LNA code

drx39xxj_set_lna() and drx39xxj_set_frontend() set LNA. Instead of
duplicating LNA configure code, change to use drxj_set_lna_state()
which sets LNA to the caller requested state (on or off).

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media: drx39xyj - fix to return actual error codes instead of -EIO
Shuah Khan [Wed, 23 Jul 2014 15:11:03 +0000 (12:11 -0300)]
[media] media: drx39xyj - fix to return actual error codes instead of -EIO

Several functions ignore the return values in error legs and always
return -EIO. This makes it hard to debug and take proper action in
calling routines.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media: drx39xyj - add resume support
Shuah Khan [Thu, 24 Jul 2014 16:02:15 +0000 (13:02 -0300)]
[media] media: drx39xyj - add resume support

drx39xyj driver lacks resume support. Add support by changing
its fe ops init interface to detect the resume status by checking
fe exit flag and do the necessary initialization. With this change,
driver resume correctly in both dvb adapter is not in use and in use
by an application cases.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media: dvb-core add new flag exit flag value for resume
Shuah Khan [Thu, 24 Jul 2014 16:02:14 +0000 (13:02 -0300)]
[media] media: dvb-core add new flag exit flag value for resume

Some fe drivers will have to do additional initialization
in their fe ops.init interfaces when called during resume.
Without the additional initialization, fe and tuner driver
resume fails. A new fe exit flag value DVB_FE_DEVICE_RESUME
is necessary to detect resume case. This patch adds a new
define and changes dvb_frontend_resume() to set it prior to
calling fe init and tuner init calls and resets it back to
DVB_FE_NO_EXIT once fe and tuner init is done.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media: drx39xyj driver change to check fe exit flag from release
Shuah Khan [Sat, 12 Jul 2014 16:44:14 +0000 (13:44 -0300)]
[media] media: drx39xyj driver change to check fe exit flag from release

Change drx39xyj_release() to check fe exit flag to detect the
device disconnect state and avoid accessing the device after
it has been removed.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media: em28xx-dvb update fe exit flag to indicate device disconnect
Shuah Khan [Sat, 12 Jul 2014 16:44:13 +0000 (13:44 -0300)]
[media] media: em28xx-dvb update fe exit flag to indicate device disconnect

Change em28xx_dvb_fini() to set fe exit flag to DVB_FE_DEVICE_REMOVED
when device is disconnected. em28xx maintains device disconnect status
in em28xx device. fe drivers will be able to now check the fe exit
status to avoid accessing the device, from their release interfaces
when called from disconnect path. This change depends on dvb-core
change that exports fe exit flag by moving it from fepriv to fe.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media: dvb-core move fe exit flag from fepriv to fe for driver access
Shuah Khan [Sat, 12 Jul 2014 16:44:12 +0000 (13:44 -0300)]
[media] media: dvb-core move fe exit flag from fepriv to fe for driver access

Some fe drivers attempt to access the device for power control from
their release routines. When release routines are called after device
is disconnected, the attempts fail. fe drivers should avoid accessing
the device, from their release interfaces when called from disconnect
path. dvb-frontend maintains exit flag to keep track when fe device is
disconnected in its private data structures. Export the flag in fe to
enable drivers to check the device status from their release interfaces.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media: em28xx - fix i2c_xfer to return -ENODEV when dev is removed
Shuah Khan [Fri, 11 Jul 2014 21:25:55 +0000 (18:25 -0300)]
[media] media: em28xx - fix i2c_xfer to return -ENODEV when dev is removed

In em28xx usb disconnect code path, some dvb fe and tuner drivers
attempt i2c transfers from their release interfaces. When device
is removed, return -ENODEV instead of attempting to transfer data
over i2c.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media: em28xx - remove reset_resume interface
Shuah Khan [Wed, 9 Jul 2014 20:36:03 +0000 (17:36 -0300)]
[media] media: em28xx - remove reset_resume interface

em28xx uses resume interface as its reset_resume interface.
If usb device is reset during suspend, reset_resume doesn't
do the necessary initialization which leads to resume failure.
Many systems don't maintain do not maintain suspend current to
the USB host controllers during hibernation. Remove reset_resume
to allow disconnect to be called followed by device restore
sequence.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media: em28xx - add error handling for KWORLD dvb_attach failures
Shuah Khan [Wed, 9 Jul 2014 20:36:23 +0000 (17:36 -0300)]
[media] media: em28xx - add error handling for KWORLD dvb_attach failures

Add error hanlding when EM2870_BOARD_KWORLD_A340 dvb_attach()
for fe and tuner fail in em28xx_dvb_init().

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media: em28xx-dvb - fix em28xx_dvb_resume() to not unregister i2c and dvb
Shuah Khan [Wed, 9 Jul 2014 13:21:27 +0000 (10:21 -0300)]
[media] media: em28xx-dvb - fix em28xx_dvb_resume() to not unregister i2c and dvb

em28xx_dvb_resume() unregisters i2c tuner, i2c demod, and dvb.
This erroneous cleanup results in i2c tuner, i2c demod, and dvb
devices unregistered and removed during resume. This error is a
result of merge conflict between two patches that went into 3.15.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] rtl28xxu: add [1b80:d3b0] Sveon STV21
Sebastian [Thu, 12 Jun 2014 06:22:45 +0000 (03:22 -0300)]
[media] rtl28xxu: add [1b80:d3b0] Sveon STV21

Added Sveon STV21 device based on Realtek RTL2832U and FC0013 tuner

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Acked-by: Antti Palosaari <crope@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] Fix regression in some dib0700 based devices
James Harper [Mon, 9 Jun 2014 00:24:20 +0000 (21:24 -0300)]
[media] Fix regression in some dib0700 based devices

Fix regression in some dib0700 based devices.
Set size_of_priv, and don't call dvb_detach unnecessarily.
This resolves the oops(s) for my "Leadtek Winfast DTV Dongle (STK7700P based)"

Signed-off-by: James Harper <james.harper@ejbdigital.com.au>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] staging: lirc: remove sa1100 support
Arnd Bergmann [Thu, 5 Jun 2014 20:48:11 +0000 (17:48 -0300)]
[media] staging: lirc: remove sa1100 support

The LIRC support for sa1100 appears to have never worked
because it relies on header files that have never been
present in git history. Actually trying to build the
driver on an ARM sa1100 kernel fails, so let's just remove
the broken support.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Jarod Wilson <jarod@wilsonet.com>
Cc: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: Propagate the correct error on devm_request_threaded_irq()
Fabio Estevam [Wed, 4 Jun 2014 18:46:24 +0000 (15:46 -0300)]
[media] coda: Propagate the correct error on devm_request_threaded_irq()

If devm_request_threaded_irq() fails, we should better propagate the real error.

Also, print out the error code in the dev_err message.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: Return the real error on platform_get_irq()
Fabio Estevam [Wed, 4 Jun 2014 18:46:23 +0000 (15:46 -0300)]
[media] coda: Return the real error on platform_get_irq()

No need to return a 'fake' return value on platform_get_irq() failure.

Propagate the real error instead.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] ati_remote: Better default keycodes
George Spelvin [Sun, 11 May 2014 11:19:01 +0000 (08:19 -0300)]
[media] ati_remote: Better default keycodes

This tries to make them more like other remotes, and/or
the button labels.

Notably, the (>>) button is made KEY_FASTFORWARD, which is the
correct opposite of (<<)'s KEY_REVERSE.  (It was KEY_FORWARD,
something else entirely.)

Likewise, KEY_STOP is the Sun keyboard "interrupt program" key;
the media key is KEY_STOPCD.

A restriction is that I try to avoid keycodes above 255, as the X11
client/server protocol is limited to 8-bit key codes.  If not for
this, I would have used the KEY_NUMERIC_x codes for the numbers.

Signed-off-by: George Spelvin <linux@horizon.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] ati_remote: Add comments to keycode table
George Spelvin [Sun, 11 May 2014 11:17:37 +0000 (08:17 -0300)]
[media] ati_remote: Add comments to keycode table

A more detailed description of what the buttons look like and
their intended function makes it easier for people to maintain
this code without access to the hardware.

[m.chehab@samsung.com: Fixed a typo "Mdeia" instead of "Media"]
Signed-off-by: George Spelvin <linux@horizon.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] ati_remote: Sort buttons in top-to-bottom order
George Spelvin [Sun, 11 May 2014 11:16:56 +0000 (08:16 -0300)]
[media] ati_remote: Sort buttons in top-to-bottom order

Since numerical order corresponds to top-left-to-bottom-right
order on the remote, this makes the table easier to read.

Signed-off-by: George Spelvin <linux@horizon.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] ati_remote: Use non-alomic __set_bit
George Spelvin [Sun, 11 May 2014 11:16:15 +0000 (08:16 -0300)]
[media] ati_remote: Use non-alomic __set_bit

There's no reason to use a LOCK prefix here.

Signed-off-by: George Spelvin <linux@horizon.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] ati_remote: Merge some duplicate code
George Spelvin [Sun, 11 May 2014 11:15:44 +0000 (08:15 -0300)]
[media] ati_remote: Merge some duplicate code

The KIND_FILTERED assignment of old_jiffies can't be merged, because
it must precede repeat handling.

Signed-off-by: George Spelvin <linux@horizon.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] ati_remote: Shrink the ati_remote_tbl even more
George Spelvin [Sun, 11 May 2014 11:14:54 +0000 (08:14 -0300)]
[media] ati_remote: Shrink the ati_remote_tbl even more

Get rid of the unnecessary "type" and "value" fields.

Signed-off-by: George Spelvin <linux@horizon.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] ati_remote: Generalize KIND_ACCEL to accept diagonals
George Spelvin [Sun, 11 May 2014 11:14:18 +0000 (08:14 -0300)]
[media] ati_remote: Generalize KIND_ACCEL to accept diagonals

Rather than having special code cases for diagonal mouse
movements, extend the general purpose code used for the
cardinal directions to handle arbitrary (x,y) deltas.

The deltas themselves are stored in translation table's "code"
field; this is also progress toward the goal of eliminating
the "value" element entirely.

Signed-off-by: George Spelvin <linux@horizon.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] ati_remote: Delete superfluous input_sync()
George Spelvin [Sun, 11 May 2014 11:13:30 +0000 (08:13 -0300)]
[media] ati_remote: Delete superfluous input_sync()

It's not necessary, and since both events happen "at the same time"
in response to a single input event, the input device framework prefers
not to have it there.

(It's not a big deal one way or the other, but deleting cruft
is generally a good thing.)

Signed-off-by: George Spelvin <linux@horizon.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] ati_remote: Shrink ati_remote_tbl structure
George Spelvin [Sun, 11 May 2014 11:12:55 +0000 (08:12 -0300)]
[media] ati_remote: Shrink ati_remote_tbl structure

The variable types are simply larger than they need to be.
Shrink to signed and unsigned chars.

Signed-off-by: George Spelvin <linux@horizon.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] ati_remote: Check the checksum
George Spelvin [Sun, 11 May 2014 11:12:09 +0000 (08:12 -0300)]
[media] ati_remote: Check the checksum

An input report is 4 bytes long, but there are only 12 bits
of actual payload.  The 4 bytes are:
data[0] = 0x14
data[1] = data[2] + data[3] + 0xd5 (a checksum byte)
data[2] = the raw scancode (plus toggle bit in msbit)
data[3] = channel << 4 (the low 4 bits must be zero)

Ignore reports with a bad checksum.

Signed-off-by: George Spelvin <linux@horizon.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] rc-core: don't use dynamic_pr_debug for IR_dprintk()
Mauro Carvalho Chehab [Sat, 26 Jul 2014 02:25:36 +0000 (23:25 -0300)]
[media] rc-core: don't use dynamic_pr_debug for IR_dprintk()

The hole point of IR_dprintk() is that, once a level is
given at debug parameter, all enabled IR parsers will show their
debug messages.

While converting it to dynamic_printk might be a good idea,
right now it just makes very hard to debug the drivers, as
one needs to both pass debug=1 or debug=2 to rc-core and
to use the dynamic printk to enable all the desired lines.

That doesn't make sense!

So, revert to the old way, as a single line is changed,
and the debug parameter will now work as expected.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] rc-core: fix various sparse warnings
David Härdeman [Thu, 3 Apr 2014 23:34:53 +0000 (20:34 -0300)]
[media] rc-core: fix various sparse warnings

Fix various sparse warnings under drivers/media/rc/*.c, mostly
by making functions static.

Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] rc-core: rename ir-raw.c
David Härdeman [Thu, 3 Apr 2014 23:34:28 +0000 (20:34 -0300)]
[media] rc-core: rename ir-raw.c

Better to be coherent and prefix this file with rc-, in order to
help to identify to what subsystem it belongs.

This is in preparaton for a latter patch that will transform the
raw handling into a separate module.

Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] radio-miropcm20: fix a compilation warning
Mauro Carvalho Chehab [Fri, 25 Jul 2014 22:33:40 +0000 (19:33 -0300)]
[media] radio-miropcm20: fix a compilation warning

drivers/media/radio/radio-miropcm20.c: In function 'sanitize':
drivers/media/radio/radio-miropcm20.c:216:3: warning: comparison is always false due to limited range of data type [-Wtype-limits]
   if (p[i] < 32 || p[i] >= 128) {
   ^

As p is declared as a char array, it is signed. So, it can never
be bigger than 127.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] Kconfig: rtl2832_sdr must depend on USB
Antti Palosaari [Fri, 25 Jul 2014 09:31:32 +0000 (06:31 -0300)]
[media] Kconfig: rtl2832_sdr must depend on USB

Fixes error:
[next:master 7435/8702] ERROR: "usb_alloc_urb
[drivers/media/dvb-frontends/rtl2832_sdr.ko] undefined!

rtl2832_sdr driver implements own USB streaming for SDR data.
Logically that functionality belongs to USB interface driver, but
currently it is implemented here.

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] Kconfig: fix tuners build warnings
Antti Palosaari [Fri, 25 Jul 2014 09:17:59 +0000 (06:17 -0300)]
[media] Kconfig: fix tuners build warnings

[next:master 7472/8702] warning: (USB_MSI2500) selects
MEDIA_TUNER_MSI001 which has unmet direct dependencies
((MEDIA_ANALOG_TV_SUPPORT || ..) && ..)

[next:master 7698/8702] warning: (MEDIA_TUNER && ..) selects
MEDIA_TUNER_XC5000 which has unmet direct dependencies
((MEDIA_ANALOG_TV_SUPPORT || ..) && ..)

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] radio-miropcm20: add RDS support
Hans Verkuil [Mon, 21 Jul 2014 13:45:43 +0000 (10:45 -0300)]
[media] radio-miropcm20: add RDS support

Once upon a time the radio-miropcm20 driver had RDS support. However, after
some internal kernel changes that support was removed. Now that we have a
nice RDS API I have been working on adding back this support. It has been
tested with the si4713 RDS transmitter and it is working quite nicely.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] DocBook/media: document the new RDS RX controls
Hans Verkuil [Mon, 21 Jul 2014 13:45:41 +0000 (10:45 -0300)]
[media] DocBook/media: document the new RDS RX controls

Document the new RDS receiver controls. This will be used by the radio-miropcm20
driver.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l2-ctrls: add RX RDS controls
Hans Verkuil [Mon, 21 Jul 2014 13:45:40 +0000 (10:45 -0300)]
[media] v4l2-ctrls: add RX RDS controls

The radio-miropcm20 driver has firmware that decodes the RDS signals. So in that
case the RDS data becomes available in the form of controls.

Add support for these controls to the control framework, allowing the miro driver
to use them.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] si4713: add the missing RDS functionality
Hans Verkuil [Mon, 21 Jul 2014 13:45:39 +0000 (10:45 -0300)]
[media] si4713: add the missing RDS functionality

Not all the RDS features of the si4713 were supported. Add
the missing bits to fully support the hardware capabilities.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Eduardo Valentin <edubezval@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] DocBook/media: document the new RDS TX controls
Hans Verkuil [Mon, 21 Jul 2014 13:45:38 +0000 (10:45 -0300)]
[media] DocBook/media: document the new RDS TX controls

Document the new RDS features that will be supported by the si4713 driver.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Eduardo Valentin <edubezval@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l2-ctrls: add new RDS TX controls
Hans Verkuil [Mon, 21 Jul 2014 13:45:37 +0000 (10:45 -0300)]
[media] v4l2-ctrls: add new RDS TX controls

The si4713 supports several RDS features not yet implemented in the driver.

This patch adds the missing RDS functionality to the list of RDS controls.

The ALT_FREQS control is a compound control containing an array of up
to 25 (the maximum according to the RDS standard) frequencies. To support
that the V4L2_CTRL_TYPE_U32 was added.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Eduardo Valentin <edubezval@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] vb2: fix vb2_poll for output streams
Hans Verkuil [Thu, 24 Jul 2014 12:19:37 +0000 (09:19 -0300)]
[media] vb2: fix vb2_poll for output streams

vb2_poll should always return POLLOUT | POLLWRNORM as long as there
are fewer buffers queued than there are buffers available. Poll for
an output stream should only wait if all buffers are queued and nobody
is dequeuing them.

Signed-off-by: Hans Verkuil <hansverk@cisco.com>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] vb2: fix videobuf2-core.h comments
Hans Verkuil [Wed, 23 Jul 2014 06:17:06 +0000 (03:17 -0300)]
[media] vb2: fix videobuf2-core.h comments

A lot of work was done in vb2 to regulate how drivers and the vb2 core handle
buffer ownership, but inexplicably the videobuf2-core.h comments were never
updated. Do so now. The same was true for the replacement of the -ENOBUFS
mechanism by the min_buffers_needed field.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l2-ctrls: add support for setting string controls
Hans Verkuil [Mon, 21 Jul 2014 13:45:42 +0000 (10:45 -0300)]
[media] v4l2-ctrls: add support for setting string controls

Rather than always having to use a v4l2_ext_control struct to set
a control value from within a driver, switch to just setting the
new value. This is faster and it makes it possible to set more
complex types such as a string control as is added by this
patch.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] Docbook/media: improve data_offset/bytesused documentation
Hans Verkuil [Mon, 21 Jul 2014 13:16:47 +0000 (10:16 -0300)]
[media] Docbook/media: improve data_offset/bytesused documentation

This patch explicitly documents the relationship between bytesused and data_offset.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] rc-core: merge rc5 and streamzap decoders
David Härdeman [Thu, 3 Apr 2014 23:32:31 +0000 (20:32 -0300)]
[media] rc-core: merge rc5 and streamzap decoders

Now that the protocol is part of the scancode, it is pretty easy to merge
the rc5 and streamzap decoders. An additional advantage is that the decoder
is now stricter as it waits for the trailing silence before determining that
a command is a valid rc5/streamzap command (which avoids collisions that I've
seen with e.g. Sony protocols).

Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] rc-core: rename dev->scanmask to dev->scancode_mask
David Härdeman [Thu, 3 Apr 2014 23:32:26 +0000 (20:32 -0300)]
[media] rc-core: rename dev->scanmask to dev->scancode_mask

We already have dev->scancode_filter and dev->scancode_wakeup_filter
so rename dev->scanmask to dev->scancode_mask for consistency.

Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] rc-core: remove protocol arrays
David Härdeman [Thu, 3 Apr 2014 23:32:21 +0000 (20:32 -0300)]
[media] rc-core: remove protocol arrays

The basic API of rc-core used to be:

dev = rc_allocate_device();
dev->x = a;
dev->y = b;
dev->z = c;
rc_register_device();

which is a pretty common pattern in the kernel, after the introduction of
protocol arrays the API looks something like:

dev = rc_allocate_device();
dev->x = a;
rc_set_allowed_protocols(dev, RC_BIT_X);
dev->z = c;
rc_register_device();

There's no real need for the protocols to be an array, so change it
back to be consistent (and in preparation for the following patches).

[m.chehab@samsung.com: added missing changes at some files]
Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] rc-core: simplify sysfs code
David Härdeman [Thu, 3 Apr 2014 23:32:16 +0000 (20:32 -0300)]
[media] rc-core: simplify sysfs code

Simplify and cleanup the sysfs code a bit.

[m.chehab@samsung.com: rebased and fixed a CodingStyle issue]
Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] saa7134: NEC scancode fix
David Härdeman [Thu, 3 Apr 2014 23:32:01 +0000 (20:32 -0300)]
[media] saa7134: NEC scancode fix

This driver codes the two address bytes in reverse order when compared to the
other drivers, so make it consistent (and update the keymap, note that the
result is a prefix change from 0x6b86 -> 0x866b, and the latter is pretty
common among the NECX keymaps. While not conclusive, it's still a strong hint
that the change is correct).

Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] rc-core: document the protocol type
David Härdeman [Thu, 3 Apr 2014 23:31:30 +0000 (20:31 -0300)]
[media] rc-core: document the protocol type

Right now the protocol information is not preserved, rc-core gets handed a
scancode but has no idea which protocol it corresponds to.

This patch (which required reading through the source/keymap for all drivers,
not fun) makes the protocol information explicit which is important
documentation and makes it easier to e.g. support multiple protocols with one
decoder (think rc5 and rc-streamzap). The information isn't used yet so there
should be no functional changes.

[m.chehab@samsung.com: rebased, added cxusb and removed bad whitespacing]
Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] dib0700: NEC scancode cleanup
David Härdeman [Thu, 3 Apr 2014 23:31:51 +0000 (20:31 -0300)]
[media] dib0700: NEC scancode cleanup

the RC RX packet is defined as:

        struct dib0700_rc_response {
...
                                u8 not_system;
                                u8 system;
...
                u8 data;
                u8 not_data;

The NEC protocol transmits in the order:
        system
        not_system
        data
        not_data

Note that the code defines the NEC extended scancode as:

        scancode = be16_to_cpu(poll_reply->system16) << 8 | poll_reply->data;

i.e.

        scancode = poll_reply->not_system << 16 |
                   poll_reply->system     << 8  |
                   poll_reply->data;

Which, if the order *is* reversed, would mean that the scancode that
gets defined is in reality:

        scancode = poll_reply->system     << 16 |
                   poll_reply->not_system << 8  |
                   poll_reply->data;

Which is the same as the order used in drivers/media/rc/ir-nec-decoder.c.

This patch changes the code to match my assumption (the generated scancode
should, however, not change).

[m.chehab@samsung.com: rebased and fixed the decoding error message]
Signed-off-by: David Härdeman <david@hardeman.nu>
CC: Patrick Boettcher <pboettcher@kernellabs.com>
Tested-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] rc-core: improve ir-kbd-i2c get_key functions
David Härdeman [Thu, 3 Apr 2014 23:31:25 +0000 (20:31 -0300)]
[media] rc-core: improve ir-kbd-i2c get_key functions

The arguments used for ir-kbd-i2c's get_key() functions are not
really suited for rc-core and the ir_raw/ir_key distinction is
just confusing.

Convert all of them to return a protocol/scancode/toggle triple instead.

Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] bt8xx: fixup RC5 decoding
David Härdeman [Thu, 3 Apr 2014 23:31:20 +0000 (20:31 -0300)]
[media] bt8xx: fixup RC5 decoding

The bt8xx driver does RC5 decoding for Nebula digi hardware, but includes
some pointless limitations (both start bits must be one, the
device/address/system must be 0x00). Remove those limitations and update
the keymap to use the full RC5 scancode (fortunately the 0x00 address
means that this is perfectly backwards compatible).

Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] staging: lirc: remove redundant NULL check in unregister_from_lirc()
Daeseok Youn [Wed, 2 Apr 2014 09:49:03 +0000 (06:49 -0300)]
[media] staging: lirc: remove redundant NULL check in unregister_from_lirc()

"ir" is already checked before calling unregister_from_lirc().

Signed-off-by: Daeseok Youn <daeseok.youn@gmail.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] cxusb: increase buffer length to 80 bytes
Mauro Carvalho Chehab [Mon, 30 Jun 2014 14:56:33 +0000 (11:56 -0300)]
[media] cxusb: increase buffer length to 80 bytes

As reported by Vincent:
[   16.332247] xc2028 0-0061: Loading firmware for type=BASE F8MHZ (3), id 0000000000000000.
[   16.344378] cxusb: i2c wr: len=64 is too big!

64 bytes is too short for firmware load on this device. So, increase it
to 80 bytes.

Reported-by: Vincent McIntyre <vincent.mcintyre@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] DocBook: Fix ISDB-T Interleaving property
Mauro Carvalho Chehab [Sat, 12 Jul 2014 00:37:46 +0000 (21:37 -0300)]
[media] DocBook: Fix ISDB-T Interleaving property

The DocBook documentation is incorrect: on ISDB-T, interleaving
time is always a power of 2. Fix it and provides a table showing
the actual interleaving length for each mode.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] xc4000: Fix get_frequency()
Mauro Carvalho Chehab [Mon, 21 Jul 2014 16:28:15 +0000 (13:28 -0300)]
[media] xc4000: Fix get_frequency()

The programmed frequency on xc4000 is not the middle
frequency, but the initial frequency on the bandwidth range.
However, the DVB API works with the middle frequency.

This works fine on set_frontend, as the device calculates
the needed offset. However, at get_frequency(), the returned
value is the initial frequency. That's generally not a big
problem on most drivers, however, starting with changeset
6fe1099c7aec, the frequency drift is taken into account at
dib7000p driver.

This broke support for PCTV 340e, with uses dib7000p demod and
xc4000 tuner.

Cc: stable@vger.kernel.org
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] xc5000: Fix get_frequency()
Mauro Carvalho Chehab [Mon, 21 Jul 2014 17:21:18 +0000 (14:21 -0300)]
[media] xc5000: Fix get_frequency()

The programmed frequency on xc5000 is not the middle
frequency, but the initial frequency on the bandwidth range.
However, the DVB API works with the middle frequency.

Cc: stable@vger.kernel.org
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] xc4000: add module meta-tag with the firmware names
Mauro Carvalho Chehab [Mon, 21 Jul 2014 16:28:14 +0000 (13:28 -0300)]
[media] xc4000: add module meta-tag with the firmware names

This meta-tag is used by some distros to help them package
the firmware and generate proper initrd images.

So, add the firmware names there.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] xc4000: Update firmware name
Mauro Carvalho Chehab [Mon, 21 Jul 2014 16:28:13 +0000 (13:28 -0300)]
[media] xc4000: Update firmware name

The firmware name at:
   http://www.kernellabs.com/firmware/xc4000/

Is different from the one at the Kernel. Update it
try first the new name, falling back to the previous one
if the new name can't be found.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] dib7000m: Remove unnecessary null test
Himangi Saraogi [Tue, 15 Jul 2014 21:31:17 +0000 (18:31 -0300)]
[media] dib7000m: Remove unnecessary null test

This patch removes the null test on ch. ch is initialized at the
beginning of the function to &demod->dtv_property_cache. Since demod
is dereferenced prior to the null test, demod must be a valid pointer,
and &demod->dtv_property_cache cannot be null.

The following Coccinelle script is used for detecting the change:

@r@
expression e,f;
identifier g,y;
statement S1,S2;
@@

*e = &f->g
<+...
 f->y
 ...+>
*if (e != NULL || ...)
 S1 else S2

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] mb86a20s: Fix the code that estimates the measurement interval
Mauro Carvalho Chehab [Sat, 12 Jul 2014 00:37:48 +0000 (21:37 -0300)]
[media] mb86a20s: Fix the code that estimates the measurement interval

Instead of looking at the guard interval field, it was using
the interval length, with is wrong. Fix it.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] mb86a20s: Fix Interleaving
Mauro Carvalho Chehab [Sat, 12 Jul 2014 00:37:47 +0000 (21:37 -0300)]
[media] mb86a20s: Fix Interleaving

Interleaving code was wrong at mb86a20s: instead, it was looking
at the Guard Interval. Fix it.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] mb86a20s: fix ISDB-T mode handling
Mauro Carvalho Chehab [Mon, 21 Jul 2014 17:55:05 +0000 (14:55 -0300)]
[media] mb86a20s: fix ISDB-T mode handling

The driver was reporting an incorrect mode, when mode 2
is selected.

While testing it, noticed that neither mode 1 or guard
interval 1/32 is supported by this device. Document it,
and ensure that it will report _AUTO when it doesn't lock,
in order to not report a wrong detection to userspace.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] m88ds3103: implement BER
Antti Palosaari [Thu, 10 Jul 2014 11:17:59 +0000 (08:17 -0300)]
[media] m88ds3103: implement BER

Implement read_ber for BER estimate.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] m88ds3103: fix SNR reporting on 32-bit arch
Antti Palosaari [Thu, 10 Jul 2014 11:17:58 +0000 (08:17 -0300)]
[media] m88ds3103: fix SNR reporting on 32-bit arch

There was 32-bit calculation overflow. Use div_u64.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] xc4000: remove unnecessary break after goto
Fabian Frederick [Tue, 8 Jul 2014 18:16:51 +0000 (15:16 -0300)]
[media] xc4000: remove unnecessary break after goto

Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] xc5000: remove unnecessary break after goto
Fabian Frederick [Tue, 8 Jul 2014 18:17:41 +0000 (15:17 -0300)]
[media] xc5000: remove unnecessary break after goto

Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] dvb-frontends: remove unnecessary break after goto
Fabian Frederick [Tue, 8 Jul 2014 17:23:01 +0000 (14:23 -0300)]
[media] dvb-frontends: remove unnecessary break after goto

Cc: Antti Palosaari <crope@iki.fi>
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] xc2028: remove unnecessary break after goto
Fabian Frederick [Tue, 8 Jul 2014 17:25:17 +0000 (14:25 -0300)]
[media] xc2028: remove unnecessary break after goto

Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] r820t: remove unnecessary break after goto
Fabian Frederick [Tue, 8 Jul 2014 17:20:37 +0000 (14:20 -0300)]
[media] r820t: remove unnecessary break after goto

Cc: Antti Palosaari <crope@iki.fi>
Cc: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] Cleanup line > 80 character violations
Emil Goode [Tue, 24 Jun 2014 21:42:28 +0000 (18:42 -0300)]
[media] Cleanup line > 80 character violations

This cleans up some line over 80 character violations.

Signed-off-by: Emil Goode <emilgoode@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] Remove checks of struct member addresses
Emil Goode [Tue, 24 Jun 2014 21:42:27 +0000 (18:42 -0300)]
[media] Remove checks of struct member addresses

This removes checks of struct member addresses since they likely result
in the condition always being true. Also in the stb6100_get_bandwidth
and tda8261_get_bandwidth functions the pointers frontend_ops and
tuner_ops are assigned the same addresses twice.

Signed-off-by: Emil Goode <emilgoode@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media: dib9000: avoid out of bound access
Heinrich Schuchardt [Thu, 19 Jun 2014 14:49:40 +0000 (11:49 -0300)]
[media] media: dib9000: avoid out of bound access

This updated patch also fixes out of bound access to b[].

In dib9000_risc_apb_access_write() an out of bound access to mb[].

The current test to avoid out of bound access to mb[] is insufficient.
For len = 19 non-existent mb[10] will be accessed.

For odd values of len b[] is accessed out of bounds.

For large values of len an of bound access to mb[] may occur in
dib9000_mbx_send_attr.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] dvb-frontends: decimal vs hex typo in ChannelConfiguration()
Dan Carpenter [Thu, 6 Feb 2014 07:49:47 +0000 (04:49 -0300)]
[media] dvb-frontends: decimal vs hex typo in ChannelConfiguration()

>From the context this should be hex 0x80 instead of decimal 80.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] si2168: Fix a badly solved merge conflict
Mauro Carvalho Chehab [Tue, 22 Jul 2014 19:25:33 +0000 (16:25 -0300)]
[media] si2168: Fix a badly solved merge conflict

changeset a733291d6934 didn't merge the fixes well. It ended by
restoring some bad logic removed there.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Acked-by: Antti Palosaari <crope@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] tuners/Kconfig: fix build when just DTV or SDR is enabled
Mauro Carvalho Chehab [Tue, 22 Jul 2014 17:22:01 +0000 (14:22 -0300)]
[media] tuners/Kconfig: fix build when just DTV or SDR is enabled

As reported by Kbuildtest:
warning: (VIDEO_PVRUSB2 && VIDEO_TLG2300 && VIDEO_USBVISION && VIDEO_GO7007 && VIDEO_AU0828_V4L2 && VIDEO_CX231XX && VIDEO_TM6000 && VIDEO_EM28XX && VIDEO_IVTV && VIDEO_MXB && VIDEO_CX18 && VIDEO_CX23885 && VIDEO_CX88 && VIDEO_BT848 && VIDEO_SAA7134 && VIDEO_SAA7164) selects VIDEO_TUNER which has unmet direct dependencies (MEDIA_SUPPORT && MEDIA_TUNER)

That happens when:

# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
# CONFIG_MEDIA_RADIO_SUPPORT is not set
# CONFIG_MEDIA_SDR_SUPPORT is not set
CONFIG_VIDEO_AU0828_V4L2=y
CONFIG_VIDEO_CX231XX=y
CONFIG_VIDEO_TM6000=y
CONFIG_VIDEO_EM28XX=y
CONFIG_VIDEO_TUNER=y
CONFIG_MEDIA_SUPPORT=y

With means that we need to enable MEDIA_TUNER also when DTV
is enabled. While the above config doesn't cover, if we enable
SDR, the same error can also happen.

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] go7007: move out of staging into drivers/media/usb.
Hans Verkuil [Tue, 22 Jul 2014 04:21:37 +0000 (06:21 +0200)]
[media] go7007: move out of staging into drivers/media/usb.

Now that the custom motion detection API in this driver has been
replaced with a standard API there is no reason anymore to keep it
in staging. So (finally!) move it to drivers/media/usb.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] solo6x10: move out of staging into drivers/media/pci.
Hans Verkuil [Tue, 22 Jul 2014 04:13:07 +0000 (06:13 +0200)]
[media] solo6x10: move out of staging into drivers/media/pci.

Now that the custom motion detection API has been replaced with a
standard API there is no reason anymore to keep it in staging.

So (finally!) move it to drivers/media/pci.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: store IRAM size in struct coda_devtype
Philipp Zabel [Fri, 11 Jul 2014 09:36:43 +0000 (06:36 -0300)]
[media] coda: store IRAM size in struct coda_devtype

Similarly to workbuf_size and tempbuf_size, store iram_size in the
coda_devtype structure. This also decreases the IRAM used on i.MX6DL
to 128 KiB.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: store global temporary buffer size in struct coda_devtype
Philipp Zabel [Fri, 11 Jul 2014 09:36:42 +0000 (06:36 -0300)]
[media] coda: store global temporary buffer size in struct coda_devtype

Similarly to the work buffer size, store the temporary buffer size in the
coda_devtype structure.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: store per-context work buffer size in struct coda_devtype
Philipp Zabel [Fri, 11 Jul 2014 09:36:41 +0000 (06:36 -0300)]
[media] coda: store per-context work buffer size in struct coda_devtype

We had the workbuf_size field since the beginning.
Use it to tighten the code a little bit.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: export auxiliary buffers via debugfs
Philipp Zabel [Fri, 11 Jul 2014 09:36:40 +0000 (06:36 -0300)]
[media] coda: export auxiliary buffers via debugfs

This patch exports all auxiliary buffers, including SRAM, as debugfs binary
blobs for debugging purposes. It shows, for example, that psbuf currently
doesn't seem to be used at all on CODA7541, and that slicebuf and workbuf
usage is far from the maximum. It can also be used to validate SRAM size
allocation.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: increase frame stride to 16 for h.264
Philipp Zabel [Fri, 11 Jul 2014 09:36:39 +0000 (06:36 -0300)]
[media] coda: increase frame stride to 16 for h.264

When encoding into h.264, the input frame stride needs to be a multiple of 16.
During allocation of the input buffers, it may not be known yet whether the
encoder should create h.264 or not. Assume the worst and always use a frame
stride that is a multiple of 16.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: round up internal frames to multiples of macroblock size for h.264
Philipp Zabel [Fri, 11 Jul 2014 09:36:38 +0000 (06:36 -0300)]
[media] coda: round up internal frames to multiples of macroblock size for h.264

CODA7541 only supports encoding h.264 frames with width and height that are
multiples of the macroblock size.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: allow odd width, but still round up bytesperline
Philipp Zabel [Fri, 11 Jul 2014 09:36:37 +0000 (06:36 -0300)]
[media] coda: allow odd width, but still round up bytesperline

Even though the CODA h.264 decoder always decodes complete macroblocks, we can
set the stride to the corresponding multiple of 16 and use a value smaller than
that as real width. Unfortunately the same doesn't work for height, as there
is no vertical linesperframe stride for discontiguous planar YUV frames.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: add bytesperline to queue data
Philipp Zabel [Fri, 11 Jul 2014 09:36:36 +0000 (06:36 -0300)]
[media] coda: add bytesperline to queue data

bytesperline is calculated in multiple places, store it in the coda_q_data
structure. This will be more useful later when adding JPEG support.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: add reset control support
Philipp Zabel [Fri, 11 Jul 2014 09:36:35 +0000 (06:36 -0300)]
[media] coda: add reset control support

On i.MX53 and i.MX6, the CODA VPU can be reset by the System Reset Controller.
We can use this to get out of dire situations, for example after a picture
run timeout.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: rename prescan_failed to hold and stop stream after timeout
Philipp Zabel [Fri, 11 Jul 2014 09:36:34 +0000 (06:36 -0300)]
[media] coda: rename prescan_failed to hold and stop stream after timeout

Rename the per-context prescan_failed variable to hold, as this is what the
flag  does: it temporarily keeps the coda from running until new data is fed
into the bitstream buffer or stop_streaming is called on the input side.
A prescan failure on i.MX5 is one possible reason to enter this state, another
one is a picture run timeout on i.MX6.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: add sequence counter offset
Philipp Zabel [Fri, 11 Jul 2014 09:36:33 +0000 (06:36 -0300)]
[media] coda: add sequence counter offset

The coda h.264 decoder also counts PIC_RUNs where no frame was decoded but
a frame was rotated out / marked as ready to be displayed. This causes an
offset between the incoming encoded frame's sequence number and the decode
sequence number returned by the coda. This patch introduces a sequence
counter offset variable to keep track of the difference.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: alert userspace about macroblock errors
Philipp Zabel [Fri, 11 Jul 2014 09:36:32 +0000 (06:36 -0300)]
[media] coda: alert userspace about macroblock errors

If the CODA reports macroblock errors, also set the VB2_BUF_STATE_ERROR flag
to alert userspace.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: add decoder timestamp queue
Philipp Zabel [Fri, 11 Jul 2014 09:36:31 +0000 (06:36 -0300)]
[media] coda: add decoder timestamp queue

The coda driver advertises timestamp_type V4L2_BUF_FLAG_TIMESTAMP_COPY on
both queues, so we have to copy timestamps from input v4l2 buffers to the
corresponding destination v4l2 buffers. Since the h.264 decoder can reorder
frames, a timestamp queue is needed to keep track of and assign the correct
timestamp to destination buffers.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: try to schedule a decode run after a stop command
Michael Olbrich [Fri, 11 Jul 2014 09:36:30 +0000 (06:36 -0300)]
[media] coda: try to schedule a decode run after a stop command

In case no further buffers are queued after the stop command, restart
job scheduling explicitly.

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l2-mem2mem: export v4l2_m2m_try_schedule
Michael Olbrich [Tue, 22 Jul 2014 12:36:04 +0000 (09:36 -0300)]
[media] v4l2-mem2mem: export v4l2_m2m_try_schedule

Some drivers might allow to decode remaining frames from an internal ringbuffer
after a decoder stop command. Allow those to call v4l2_m2m_try_schedule
directly.

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: add cyclic intra refresh control
Philipp Zabel [Fri, 11 Jul 2014 09:36:28 +0000 (06:36 -0300)]
[media] coda: add cyclic intra refresh control

Allow userspace to enable cyclic intra refresh by setting the number of
intra macroblocks per frame to a non-zero value.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: add h.264 deblocking filter controls
Philipp Zabel [Fri, 11 Jul 2014 09:36:27 +0000 (06:36 -0300)]
[media] coda: add h.264 deblocking filter controls

This adds controls for the h.264 deblocking loop filter.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: add h.264 min/max qp controls
Philipp Zabel [Fri, 11 Jul 2014 09:36:26 +0000 (06:36 -0300)]
[media] coda: add h.264 min/max qp controls

If the bitrate control is set, the encoder works in CBR mode, dynamically
changing the quantization parameters to achieve a constant bitrate.
With the min/max QP controls the quantization parameters can be limited
to a given range.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: select GENERIC_ALLOCATOR
Philipp Zabel [Fri, 11 Jul 2014 09:36:25 +0000 (06:36 -0300)]
[media] coda: select GENERIC_ALLOCATOR

The driver uses the genalloc API, which doesn't have stubs in
case GENERIC_ALLOCATOR is disabled.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: split firmware version check out of coda_hw_init
Philipp Zabel [Fri, 11 Jul 2014 09:36:24 +0000 (06:36 -0300)]
[media] coda: split firmware version check out of coda_hw_init

This adds a new function coda_check_firmware that does the firmware
version checks so that this can be done only once from coda_probe
instead of every time the runtime pm framework resumes the coda.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: Add runtime pm support
Philipp Zabel [Fri, 11 Jul 2014 09:36:23 +0000 (06:36 -0300)]
[media] coda: Add runtime pm support

This patch allows to use the runtime pm and generic pm domain frameworks
to completely gate power to the VPU if it is unused. This functionality
is available on i.MX6.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: use ctx->fh.m2m_ctx instead of ctx->m2m_ctx
Philipp Zabel [Fri, 11 Jul 2014 09:36:22 +0000 (06:36 -0300)]
[media] coda: use ctx->fh.m2m_ctx instead of ctx->m2m_ctx

v4l2_fh already contains a mem2mem context pointer. Use it.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] coda: Use mem-to-mem ioctl helpers
Philipp Zabel [Fri, 11 Jul 2014 09:36:21 +0000 (06:36 -0300)]
[media] coda: Use mem-to-mem ioctl helpers

Use the mem2mem helpers introduced to get rid of some duplicated code.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>