]> git.karo-electronics.de Git - linux-beck.git/log
linux-beck.git
10 years ago[media] em28xx: check if a device has audio earlier"
Frank Schaefer [Fri, 27 Dec 2013 03:16:13 +0000 (00:16 -0300)]
[media] em28xx: check if a device has audio earlier"

GIT_AUTHOR_DATE=1409603039
This reverts

commit b99f0aadd33fad269c8e62b5bec8b5c012a44a56
Author: Mauro Carvalho Chehab <m.chehab@samsung.com>

    [media] em28xx: check if a device has audio earlier

    Better to split chipset detection from the audio setup. So, move the
    detection code to em28xx_init_dev().

It broke analog audio of the Hauppauge winTV HVR 900 and very likely many other
em28xx devices.

Background:
The local variable has_audio in em28xx_usb_probe() describes if the currently
probed _usb_interface_ has an audio endpoint, while dev->audio_mode.has_audio
means that the _device_ as a whole provides analog audio.
Hence it is wrong to set dev->audio_mode.has_audio = has_audio in em28xx_usb_probe().
As result, audio support is no longer detected and configured on devices which
have the audio endpoint on a separate interface, because em28xx_audio_setup()
bails out immediately at the beginning.

Revert the faulty commit to restore the old audio detection procedure, which checks
the chip configuration register to determine if the device has analog audio.

Cc: <stable@vger.kernel.org> # 3.14 to 3.16
Reported-by: Oravecz Csaba <oravecz@nytud.mta.hu>
Tested-by: Oravecz Csaba <oravecz@nytud.mta.hu>
Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] mceusb: add support for more cx231xx devices
Matthias Schwarzott [Sun, 31 Aug 2014 11:35:10 +0000 (08:35 -0300)]
[media] mceusb: add support for more cx231xx devices

Add support for the si2161-based cx231xx devices:
[2040:b138] Hauppauge WinTV HVR-900-H (model 111xxx)
[2040:b139] Hauppauge WinTV HVR-901-H (model 1114xx)

They're similar to the already supported:
[2040:b130] Hauppauge WinTV 930C-HD (model 1113xx)

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: Add support for Hauppauge WinTV-HVR-901H (1114xx)
Matthias Schwarzott [Sun, 31 Aug 2014 11:35:09 +0000 (08:35 -0300)]
[media] cx231xx: Add support for Hauppauge WinTV-HVR-901H (1114xx)

Add support for:
[2040:b139] Hauppauge WinTV HVR-901H (1114xx)

According to the inf file, the hardware is similar to [2040:b131] Hauppauge WinTV 930C-HD (model 1114xx)
The only difference is the demod Si2161 instead of Si2165 (but both are
supported by the si2165 driver).

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx231xx: Add support for Hauppauge WinTV-HVR-900H (111xxx)
Matthias Schwarzott [Sun, 31 Aug 2014 11:35:08 +0000 (08:35 -0300)]
[media] cx231xx: Add support for Hauppauge WinTV-HVR-900H (111xxx)

Add support for:
[2040:b138] Hauppauge WinTV HVR-900H (111xxx)

The hardware is similar to [2040:b130] Hauppauge WinTV 930C-HD (model 1113xx)
The only difference is the demod Si2161 instead of Si2165 (but both are
supported by the si2165 driver).

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] si2165: enable Si2161 support
Matthias Schwarzott [Sun, 31 Aug 2014 11:35:07 +0000 (08:35 -0300)]
[media] si2165: enable Si2161 support

Additionally print chip name with revision symbolically.
This is a preparation for supporting new Hauppauge WinTV-HVR-900-H based
on cx231xx.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] si2165: Load driver for all hardware revisions
Matthias Schwarzott [Sun, 31 Aug 2014 11:35:06 +0000 (08:35 -0300)]
[media] si2165: Load driver for all hardware revisions

Current firmware is only for revision D.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] v4l: ti-vpe: Remove casting the return value which is a void pointer
Jingoo Han [Fri, 29 Aug 2014 03:49:43 +0000 (00:49 -0300)]
[media] v4l: ti-vpe: Remove casting the return value which is a void pointer

Casting the return value which is a void pointer is redundant.
The conversion from void pointer to any other pointer type is
guaranteed by the C programming language.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] vpfe_standards[] can be static
Fengguang Wu [Thu, 28 Aug 2014 01:12:43 +0000 (22:12 -0300)]
[media] vpfe_standards[] can be static

make vpfe_standards[] static.

Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] MAINTAINERS: add sp2 entry
Olli Salonen [Fri, 22 Aug 2014 16:50:42 +0000 (13:50 -0300)]
[media] MAINTAINERS: add sp2 entry

Add a maintainer for the new CIMaX SP2 driver.

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] dib0700_devices: Use c99 initializers for structures.
Mauro Carvalho Chehab [Mon, 22 Sep 2014 21:57:45 +0000 (18:57 -0300)]
[media] dib0700_devices: Use c99 initializers for structures.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@decl@
identifier i1,fld;
type T;
field list[n] fs;
@@

struct i1 {
 fs
 T fld;
 ...};

@bad@
identifier decl.i1,i2;
expression e;
initializer list[decl.n] is;
@@

struct i1 i2 = { is,
+ .fld = e
- e
 ,...};
// </smpl>

Not sure why, but some tables are still using the old way,
but at least several of them got fixed.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] v4l: ti-vpe: use c99 initializers in structures
Julia Lawall [Sat, 23 Aug 2014 11:20:23 +0000 (08:20 -0300)]
[media] v4l: ti-vpe: use c99 initializers in structures

Use c99 initializers for structures.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@decl@
identifier i1,fld;
type T;
field list[n] fs;
@@

struct i1 {
 fs
 T fld;
 ...};

@bad@
identifier decl.i1,i2;
expression e;
initializer list[decl.n] is;
@@

struct i1 i2 = { is,
+ .fld = e
- e
 ,...};
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] au0828: fill tuner type on all boards
Mauro Carvalho Chehab [Mon, 18 Aug 2014 11:51:29 +0000 (08:51 -0300)]
[media] au0828: fill tuner type on all boards

This is used by the I2C code in order to slow down the
speed to 20 kHz on devices with xc5000 or xc5000c.

So, it needs to be filled for all devices that use either
xc5000 or xc5000c.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] au0828: explicitly identify boards with analog TV
Mauro Carvalho Chehab [Mon, 18 Aug 2014 11:51:28 +0000 (08:51 -0300)]
[media] au0828: explicitly identify boards with analog TV

Right now, the au0828 driver uses .tuner to detect if analog
tv is being used or not. By not filling .tuner fields at the
board struct, the I2C core can't do decisions based on it.

So, add a field to explicitly tell when analog TV is supported.

No functional changes.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] au0828-cards: remove a comment about i2c clock stretching
Mauro Carvalho Chehab [Mon, 22 Sep 2014 20:48:01 +0000 (17:48 -0300)]
[media] au0828-cards: remove a comment about i2c clock stretching

This comment is already at the au0828-i2c where it belongs.
So, remove it from a board's entry. It doesn't make any sense
there, as we're setting the clock to 250kHz there, slowing it
down only at the au0828-i2c.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] stv0367: Remove an unused parameter
Mauro Carvalho Chehab [Mon, 22 Sep 2014 20:36:53 +0000 (17:36 -0300)]
[media] stv0367: Remove an unused parameter

cab_state->modulation is initialized with a wrong value:

drivers/media/dvb-frontends/stv0367.c:3000:42: warning: mixing different enum types
drivers/media/dvb-frontends/stv0367.c:3000:42:     int enum fe_modulation  versus
drivers/media/dvb-frontends/stv0367.c:3000:42:     int enum stv0367cab_mod

as it was declared as "enum stv0367cab_mod". While it could be fixed,
there's no value on it, as this is never used.

So, just remove the modulation from cab_state structure.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: stv0367: fix frontend modulation initialization with FE_CAB_MOD_QAM256
Maks Naumov [Fri, 15 Aug 2014 19:23:20 +0000 (16:23 -0300)]
[media] media: stv0367: fix frontend modulation initialization with FE_CAB_MOD_QAM256

It was using the wrong constant for QAM256 on get_frontend.

Signed-off-by: Maks Naumov <maksqwe1@ukr.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] em28xx-input: i2c IR decoders: improve i2c_client handling
Frank Schaefer [Fri, 15 Aug 2014 18:16:58 +0000 (15:16 -0300)]
[media] em28xx-input: i2c IR decoders: improve i2c_client handling

Instead of using a temporary stack allocated i2c_client in em28xx_i2c_ir_handle_key(),
allocate/free the i2c_client at module init/uninit and hook it into struct em28xx_IR
(if the device has an i2c IR decoder).
This reduces the frame size of function em28xx_i2c_ir_handle_key() and speeds
it up a bit.
Also make sure that all fields of struct i2c_client are initialized properly.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] rc-core: use USB API functions rather than constants
Himangi Saraogi [Fri, 15 Aug 2014 16:22:35 +0000 (13:22 -0300)]
[media] rc-core: use USB API functions rather than constants

This patch introduces the use of !usb_endpoint_dir_in(epd) and
!usb_endpoint_xfer_int(epd).

The Coccinelle semantic patch that makes these changes is as follows:

- ((epd->bEndpointAddress & \(USB_ENDPOINT_DIR_MASK\|0x80\)) !=
-  \(USB_DIR_IN\|0x80\))
+ !usb_endpoint_dir_in(epd)

@@ struct usb_endpoint_descriptor *epd; @@

- ((epd->bmAttributes & \(USB_ENDPOINT_XFERTYPE_MASK\|3\)) !=
- \(USB_ENDPOINT_XFER_INT\|3\))
+ !usb_endpoint_xfer_int(epd)

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media/rc/imon.c: use USB API functions rather than constants
Himangi Saraogi [Fri, 15 Aug 2014 16:18:53 +0000 (13:18 -0300)]
[media] media/rc/imon.c: use USB API functions rather than constants

This patch introduces the use of the function usb_endpoint_type.

The Coccinelle semantic patch that makes these changes is as follows:

@@ struct usb_endpoint_descriptor *epd; @@

- (epd->bmAttributes & \(USB_ENDPOINT_XFERTYPE_MASK\|3\))
+ usb_endpoint_type(epd)

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] dvb: return the error from i2c_transfer if negative
Hans Wennborg [Thu, 7 Aug 2014 05:42:04 +0000 (02:42 -0300)]
[media] dvb: return the error from i2c_transfer if negative

Just returns whatever error that was returned by the i2c core,
in the case of errors, only returning -EREMOTEIO if the transfer size
is not what it was expected.

Signed-off-by: Hans Wennborg <hans@hanshq.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] dvb: remove 0x prefix from decimal value in printf
Hans Wennborg [Thu, 7 Aug 2014 05:41:45 +0000 (02:41 -0300)]
[media] dvb: remove 0x prefix from decimal value in printf

The returned code is 0, 1 or an error. It doesn't make sense to
print it in hexadecimal.

Signed-off-by: Hans Wennborg <hans@hanshq.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] drivers/media/dvb-frontends/stv0900_sw.c: Fix break placement
Andrey Utkin [Mon, 4 Aug 2014 20:04:52 +0000 (17:04 -0300)]
[media] drivers/media/dvb-frontends/stv0900_sw.c: Fix break placement

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

Reported-by: David Binderman <dcb314@hotmail.com>
Signed-off-by: Andrey Utkin <andrey.krieger.utkin@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] em28xx: Get rid of some unused modprobe parameters at vbi code
Mauro Carvalho Chehab [Fri, 19 Sep 2014 16:02:11 +0000 (13:02 -0300)]
[media] em28xx: Get rid of some unused modprobe parameters at vbi code

There are two modprobe parameters for VBI that aren't used
anywhere (one for debug, the other one related to the buffer
size). Get rid of them!

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] sn9c20x: fix checkpatch warning: sizeof cmatrix should be sizeof(cmatrix)
Morgan Phillips [Mon, 8 Sep 2014 12:49:47 +0000 (09:49 -0300)]
[media] sn9c20x: fix checkpatch warning: sizeof cmatrix should be sizeof(cmatrix)

Signed-off-by: Morgan Phillips <winter2718@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] sn9c20x.c: fix checkpatch error: that open brace { should be on the previous...
Morgan Phillips [Mon, 8 Sep 2014 12:32:22 +0000 (09:32 -0300)]
[media] sn9c20x.c: fix checkpatch error: that open brace { should be on the previous line

Signed-off-by: Morgan Phillips <winter2718@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx23885: fix size helper functions
Hans Verkuil [Sat, 20 Sep 2014 13:19:33 +0000 (10:19 -0300)]
[media] cx23885: fix size helper functions

The norm_swidth function was unused and is dropped. It's not clear
what the purpose of that function was.

The norm_maxh function was changed so it tests for 60 Hz standards
rather than for 50 Hz standards. The is the preferred order.

The norm_maxw function was poorly written and used: it gives the maximum
allowed line width for the given standard. For 60 Hz that's 720, but
for 50 Hz that's 768 which allows for 768x576 which gives you square
pixels. For 60 Hz formats it is 640x480 that gives square pixels, so
there is no need to go beyond 720.

The initial width was set using norm_maxh(), which was wrong. Just set
to 720, that's what you normally use. Since the initial standard was
NTSC anyway the initial width was always 720 anyway.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] cx23885: fix VBI support
Hans Verkuil [Sat, 20 Sep 2014 13:19:32 +0000 (10:19 -0300)]
[media] cx23885: fix VBI support

Tested VBI support and discovered that the wrong offset was used.
After this change it is now working. Verified with CC/XDS for NTSC
and WSS/Teletext on PAL.

It also reported the wrong start lines for the second field. That's
now fixed as well.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] adv7604/adv7842: fix il_vbackporch typo and zero the struct
Hans Verkuil [Sat, 20 Sep 2014 10:36:39 +0000 (07:36 -0300)]
[media] adv7604/adv7842: fix il_vbackporch typo and zero the struct

Both adv7604 and adv7842 had the same typo in the code that sets
the vertical backporch for the second interlaced field: it was
assigned to vbackporch instead of il_vbackporch.

In addition, the timings struct wasn't zeroed in the adv7842 driver,
leaving several fields to undefined values causing the timing match
function to fail.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] v4l2-dv-timings: only check standards if non-zero
Hans Verkuil [Sat, 20 Sep 2014 10:36:38 +0000 (07:36 -0300)]
[media] v4l2-dv-timings: only check standards if non-zero

If one or both of the timings being compared have the standards field
with value 0, then accept that. Only check for matching standards if
both timings have actually filled in that field.

Otherwise no match will ever be found since when timings are detected
the standards field will typically be set to 0 by the driver.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] vivid: add teletext support to VBI capture
Hans Verkuil [Sat, 20 Sep 2014 09:11:44 +0000 (06:11 -0300)]
[media] vivid: add teletext support to VBI capture

This is useful to test teletext capture applications like alevt and mtt.

It also fixes a previously undetected bug where the PAL VBI start line
of the second field was off by one. Using the new field start defines
helps a lot fixing such bugs.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] DocBook media: fix wrong prototype
Hans Verkuil [Sat, 13 Sep 2014 09:28:02 +0000 (06:28 -0300)]
[media] DocBook media: fix wrong prototype

G_EDID is an RW ioctl, so the struct v4l2_edid isn't const.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] v4l2: uvcvideo: Allow using larger buffers
Guennadi Liakhovetski [Tue, 9 Sep 2014 07:42:43 +0000 (04:42 -0300)]
[media] v4l2: uvcvideo: Allow using larger buffers

A test in uvc_video_decode_isoc() checks whether an image has been
received from the camera completely. For this the data amount is compared
to the buffer length, which, however, doesn't have to be equal to the
image size. Switch to using formats .sizeimage field for an exact
expected image size.

[Renamed image_size to frame_size]

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] hackrf: Fix a long constant
Mauro Carvalho Chehab [Sun, 21 Sep 2014 23:35:05 +0000 (20:35 -0300)]
[media] hackrf: Fix a long constant

drivers/media/usb/hackrf/hackrf.c:64:3: warning: this decimal constant is unsigned only in ISO C90 [enabled by default]
   .rangehigh  = 4294967294, /* max u32, hw goes over 7GHz */
   ^

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] MAINTAINERS: add HackRF SDR driver
Antti Palosaari [Wed, 10 Sep 2014 07:20:15 +0000 (04:20 -0300)]
[media] MAINTAINERS: add HackRF SDR driver

HackRF SDR driver. Video4Linux USB device.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] hackrf: HackRF SDR driver
Antti Palosaari [Sat, 23 Aug 2014 07:40:01 +0000 (04:40 -0300)]
[media] hackrf: HackRF SDR driver

V4L2 driver for HackRF SDR. Very basic version, with reduced
feature set. Driver implements receiver only, hardware supports
also transmitter.

USB ID 1d50:6089. Model HackRF One

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] v4l: Fix ARGB32 fourcc value in the documentation
Laurent Pinchart [Mon, 21 Jul 2014 22:36:58 +0000 (19:36 -0300)]
[media] v4l: Fix ARGB32 fourcc value in the documentation

The ARGB32 pixel format's fourcc value is defined to 'BA24' in the
videodev2.h header, but documented as 'AX24'. Fix the documentation.

Reported-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] v4l: Add ARGB555X and XRGB555X pixel formats
Laurent Pinchart [Mon, 21 Jul 2014 20:06:33 +0000 (17:06 -0300)]
[media] v4l: Add ARGB555X and XRGB555X pixel formats

The existing RGB555X pixel format is ill-defined in respect to its alpha
bit and its meaning is driver dependent. Create new standard ARGB555X
and XRGB555X variants with clearly defined meanings and make the
existing variant deprecated.

The new pixel formats 4CC values have been selected to match the DRM
4CCs for the same in-memory formats.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: Use strlcpy instead of custom code
Laurent Pinchart [Thu, 17 Jul 2014 11:52:08 +0000 (08:52 -0300)]
[media] media: Use strlcpy instead of custom code

Replace strncpy + manually setting the terminating '\0' with an strlcpy
call.

Reported-by: Joe Perches <joe@perches.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: usb: uvc: add a quirk for Dell XPS M1330 webcam
Paul Fertser [Sun, 8 Jun 2014 15:16:48 +0000 (12:16 -0300)]
[media] media: usb: uvc: add a quirk for Dell XPS M1330 webcam

As reported on [1], this device needs this quirk to be able to
reliably initialise the webcam.

[1] http://ubuntuforums.org/showthread.php?t=2145996

Cc: stable@vger.kernel.org
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] uvcvideo: Work around buggy Logitech C920 firmware
William Manley [Thu, 13 Mar 2014 12:38:48 +0000 (09:38 -0300)]
[media] uvcvideo: Work around buggy Logitech C920 firmware

The uvcvideo webcam driver exposes the v4l2 control "Exposure (Absolute)"
which allows the user to control the exposure time of the webcam,
essentially controlling the brightness of the received image.  By default
the webcam automatically adjusts the exposure time automatically but the
if you set the control "Exposure, Auto"="Manual Mode" the user can fix
the exposure time.

Unfortunately it seems that the Logitech C920 has a firmware bug where
it will forget that it's in manual mode temporarily during initialisation.
This means that the camera doesn't respect the exposure time that the user
requested if they request it before starting to stream video.  They end up
with a video stream which is either too bright or too dark and must reset
the controls after video starts streaming.

This patch introduces the quirk UVC_QUIRK_RESTORE_CTRLS_ON_INIT which
causes the cached controls to be re-uploaded to the camera immediately
after initialising the camera.  This quirk is applied to the C920 to work
around this camera bug.

Signed-off-by: William Manley <will@williammanley.net>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] v4l: uvcvideo: Add support for pan/tilt speed controls
Vincent Palatin [Thu, 4 Sep 2014 00:47:48 +0000 (21:47 -0300)]
[media] v4l: uvcvideo: Add support for pan/tilt speed controls

Map V4L2_CID_TILT_SPEED and V4L2_CID_PAN_SPEED to the standard UVC
CT_PANTILT_RELATIVE_CONTROL terminal control request.

Tested by plugging a Logitech ConferenceCam C3000e USB camera
and controlling pan/tilt from the userspace using the VIDIOC_S_CTRL ioctl.
Verified that it can pan and tilt at the same time in both directions.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] v4l: Add camera pan/tilt speed controls
Vincent Palatin [Wed, 3 Sep 2014 19:38:39 +0000 (16:38 -0300)]
[media] v4l: Add camera pan/tilt speed controls

The V4L2_CID_PAN_SPEED and V4L2_CID_TILT_SPEED controls allow to move the
camera by setting its rotation speed around its axis.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: davinci: remove unneeded dependency ARCH_OMAP3
Prabhakar Lad [Sat, 16 Aug 2014 20:33:18 +0000 (17:33 -0300)]
[media] media: davinci: remove unneeded dependency ARCH_OMAP3

this patch removes unneeded dependency of ARCH_OMAP3
on VIDEO_DM6446_CCDC.
Also the top level platform Makefile descended into
davinci/ without any dependency so just drop the
dependency obj-y, as obj-$(CONFIG_ARCH_DAVINCI)
already exists.

Reported-by: Andreas Ruprecht <rupran@einserver.de>
Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: davinci: vpif_capture: fix the check on suspend/resume callbacks
Prabhakar Lad [Sat, 6 Sep 2014 15:26:51 +0000 (12:26 -0300)]
[media] media: davinci: vpif_capture: fix the check on suspend/resume callbacks

It is possible to call STREAMON without having any buffers queued.
So vb2_is_streaming() can return true without start_streaming()
having been called. Only after at least one buffer has been
queued will start_streaming be called.

The check vb2_is_streaming() is incorrect as this would start
the DMA without having proper DMA pointers set up. this patch
uses vb2_start_streaming_called() instead to check is streaming
was called.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: davinci: vpif_display: fix the check on suspend/resume callbacks
Prabhakar Lad [Sat, 6 Sep 2014 15:26:50 +0000 (12:26 -0300)]
[media] media: davinci: vpif_display: fix the check on suspend/resume callbacks

It is possible to call STREAMON without having any buffers queued.
So vb2_is_streaming() can return true without start_streaming()
having been called. Only after at least one buffer has been
queued will start_streaming be called.

The check vb2_is_streaming() is incorrect as this would start
the DMA without having proper DMA pointers set up. this patch
uses vb2_start_streaming_called() instead to check is streaming
was called.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: videobuf2-core.h: add a helper to get status of start_streaming()
Prabhakar Lad [Sat, 6 Sep 2014 15:26:49 +0000 (12:26 -0300)]
[media] media: videobuf2-core.h: add a helper to get status of start_streaming()

this patch adds a helper to get the status if start_streaming()
was called successfully.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Cc: Pawel Osciak <pawel@osciak.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: davinci: vpif_capture: drop setting of vb2 buffer state to ACTIVE
Prabhakar Lad [Sat, 6 Sep 2014 15:26:48 +0000 (12:26 -0300)]
[media] media: davinci: vpif_capture: drop setting of vb2 buffer state to ACTIVE

this patch drops setting of vb2 buffer state to VB2_BUF_STATE_ACTIVE,
as any buffer queued to the driver is marked ACTIVE by the vb2 core.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] media: davinci: vpif_display: drop setting of vb2 buffer state to ACTIVE
Prabhakar Lad [Sat, 6 Sep 2014 15:26:47 +0000 (12:26 -0300)]
[media] media: davinci: vpif_display: drop setting of vb2 buffer state to ACTIVE

this patch drops setting of vb2 buffer state to VB2_BUF_STATE_ACTIVE,
as any buffer queued to the driver is marked ACTIVE by the vb2 core.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] videobuf: Allow reqbufs(0) to free current buffers
Hans de Goede [Sun, 31 Aug 2014 10:19:21 +0000 (07:19 -0300)]
[media] videobuf: Allow reqbufs(0) to free current buffers

All the infrastructure for this is already there, and despite our desires for
the old videobuf code to go away, it is currently still in use in 18 drivers.

Allowing reqbufs(0) makes these drivers behave consistent with modern drivers,
making live easier for userspace, see e.g. :
https://bugzilla.gnome.org/show_bug.cgi?id=735660

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] videobuf2-core: take mmap_sem before calling __qbuf_userptr
Hans Verkuil [Mon, 25 Aug 2014 11:57:59 +0000 (08:57 -0300)]
[media] videobuf2-core: take mmap_sem before calling __qbuf_userptr

(Changes since v2: dropped local variable as suggested by Laurent)

Commit f035eb4e976ef5a059e30bc91cfd310ff030a7d3 (videobuf2: fix lockdep warning)
unfortunately removed the mmap_sem lock that is needed around the call to
__qbuf_userptr. Amazingly nobody noticed this (especially me as the author)
until Jan Kara pointed this out to me.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Reported-by: Jan Kara <jack@suse.cz>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] drivers: media: i2c: adv7343_regs.h: Fix typo in #ifndef
Rasmus Villemoes [Fri, 22 Aug 2014 16:45:17 +0000 (13:45 -0300)]
[media] drivers: media: i2c: adv7343_regs.h: Fix typo in #ifndef

Test for definedness of the macro which is actually defined, and which
matches the name of the file.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] drivers: media: b2c2: flexcop.h: Fix typo in include guard
Rasmus Villemoes [Fri, 22 Aug 2014 16:41:56 +0000 (13:41 -0300)]
[media] drivers: media: b2c2: flexcop.h: Fix typo in include guard

Three trailing underscores is one too many.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] tvp7002: Don't update device->streaming if write to register fails
Axel Lin [Sat, 16 Aug 2014 06:57:30 +0000 (03:57 -0300)]
[media] tvp7002: Don't update device->streaming if write to register fails

This ensures device->streaming has correct status.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] radio-si470x-usb: use USB API functions rather than constants
Himangi Saraogi [Fri, 15 Aug 2014 16:21:15 +0000 (13:21 -0300)]
[media] radio-si470x-usb: use USB API functions rather than constants

This patch introduces the use of the function usb_endpoint_is_int_in.

The Coccinelle semantic patch that makes these changes is as follows:

@@ struct usb_endpoint_descriptor *epd; @@

- ((epd->bEndpointAddress & \(USB_ENDPOINT_DIR_MASK\|0x80\)) ==
-  \(USB_DIR_IN\|0x80\))
+ usb_endpoint_dir_in(epd)

@@ struct usb_endpoint_descriptor *epd; @@

- ((epd->bmAttributes & \(USB_ENDPOINT_XFERTYPE_MASK\|3\)) ==
- \(USB_ENDPOINT_XFER_INT\|3\))
+ usb_endpoint_xfer_int(epd)

@@ struct usb_endpoint_descriptor *epd; @@

- (usb_endpoint_xfer_int(epd) && usb_endpoint_dir_in(epd))
+ usb_endpoint_is_int_in(epd)

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] tda18212: convert to RegMap API
Antti Palosaari [Mon, 4 Aug 2014 04:00:46 +0000 (01:00 -0300)]
[media] tda18212: convert to RegMap API

Use RegMap API to handle all the boring I2C register access
boilerplate stuff.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] tda18212: rename state from 'priv' to 'dev'
Antti Palosaari [Mon, 4 Aug 2014 02:40:23 +0000 (23:40 -0300)]
[media] tda18212: rename state from 'priv' to 'dev'

foo_dev seems to be most correct term for the structure holding data
of each device instance. It is most used term in Kernel codebase and also
examples from book Linux Device Drivers, Third Edition, uses it.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] tda18212: clean logging
Antti Palosaari [Mon, 4 Aug 2014 02:26:27 +0000 (23:26 -0300)]
[media] tda18212: clean logging

There is no need to print module name nor function name as those
are done by kernel logging system when dev_xxx logging is used and
driver is proper I2C driver.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] tda18212: convert driver to I2C binding
Antti Palosaari [Mon, 4 Aug 2014 02:05:31 +0000 (23:05 -0300)]
[media] tda18212: convert driver to I2C binding

Convert driver from DVB proprietary model to common I2C model.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] em28xx: convert tda18212 tuner to I2C client
Antti Palosaari [Mon, 4 Aug 2014 01:35:03 +0000 (22:35 -0300)]
[media] em28xx: convert tda18212 tuner to I2C client

Used tda18212 tuner is implemented as a I2C driver. Use em28xx
tuner I2C client for tda18212 driver.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] anysee: convert tda18212 tuner to I2C client
Antti Palosaari [Mon, 4 Aug 2014 00:47:10 +0000 (21:47 -0300)]
[media] anysee: convert tda18212 tuner to I2C client

Used tda18212 tuner is implemented as I2C driver. Implement I2C
client to anysee and use it for tda18212.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] tda18212: prepare for I2C client conversion
Antti Palosaari [Mon, 4 Aug 2014 01:43:26 +0000 (22:43 -0300)]
[media] tda18212: prepare for I2C client conversion

We need carry pointer to frontend via config struct
(I2C platform_data ptr) when I2C model is used. Add that pointer
first in order to keep build unbreakable during conversion.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: init DVBv5 statistics
Antti Palosaari [Sat, 6 Sep 2014 14:24:14 +0000 (11:24 -0300)]
[media] af9033: init DVBv5 statistics

We need to init supported stats here in order signal app which
stats are supported.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9035: remove I2C client differently
Antti Palosaari [Thu, 4 Sep 2014 21:35:59 +0000 (18:35 -0300)]
[media] af9035: remove I2C client differently

It crash kernel when device was removed while it was streaming.
That is because we removed driver and frontend thread was still
running. Use new callback which allows I2C driver removal just
after frontend is unregistered.

V2: fixed by reported by Daniel

Reported-by: Daniel Glöckner <daniel-gl@gmx.net>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] dvb-usb-v2: add tuner_detach callback
Antti Palosaari [Thu, 4 Sep 2014 21:31:40 +0000 (18:31 -0300)]
[media] dvb-usb-v2: add tuner_detach callback

Add tuner_detach callback in order to allow custom detach. It is
needed when tuner driver is implemented I2C client or some other
kernel bus, but not proprietary dvb_attach / dvb_detach.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] dvb-usb-v2: add frontend_detach callback
Antti Palosaari [Thu, 4 Sep 2014 20:04:44 +0000 (17:04 -0300)]
[media] dvb-usb-v2: add frontend_detach callback

Add frontend_detach callback in order to allow custom detach. It is
needed when demod driver is implemented I2C client or some other
kernel bus, but not proprietary dvb_attach / dvb_detach.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: remove all DVBv3 stat calculation logic
Antti Palosaari [Thu, 4 Sep 2014 02:30:44 +0000 (23:30 -0300)]
[media] af9033: remove all DVBv3 stat calculation logic

Statistics are now calculated for DVBv5 and those DVBv5 values are
returned for legacy DVBv3 calls also. So we could remove all old
statistics calculation logic.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: wrap DVBv3 BER to DVBv5 BER
Antti Palosaari [Thu, 4 Sep 2014 02:22:53 +0000 (23:22 -0300)]
[media] af9033: wrap DVBv3 BER to DVBv5 BER

DVBv5 BER is calculated anyway, so just return it for legacy
read_ber() API too.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: wrap DVBv3 UCB to DVBv5 UCB stats
Antti Palosaari [Thu, 4 Sep 2014 02:07:39 +0000 (23:07 -0300)]
[media] af9033: wrap DVBv3 UCB to DVBv5 UCB stats

Remove 'duplicate' DVBv3 read UCB implementation and return value,
calculated already for DVBv5 statistics.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: implement DVBv5 post-Viterbi BER
Antti Palosaari [Tue, 2 Sep 2014 11:29:46 +0000 (08:29 -0300)]
[media] af9033: implement DVBv5 post-Viterbi BER

Implement following DTV API commands:
DTV_STAT_POST_ERROR_BIT_COUNT
DTV_STAT_POST_TOTAL_BIT_COUNT

These will provide post-Viterbi bit error rate reporting.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: implement DVBv5 stat block counters
Antti Palosaari [Tue, 2 Sep 2014 11:01:10 +0000 (08:01 -0300)]
[media] af9033: implement DVBv5 stat block counters

Implement following API commands:
DTV_STAT_ERROR_BLOCK_COUNT
DTV_STAT_TOTAL_BLOCK_COUNT

These returns total and uncorrected error packets from outer FEC.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: wrap DVBv3 read SNR to DVBv5 CNR
Antti Palosaari [Tue, 2 Sep 2014 08:03:21 +0000 (05:03 -0300)]
[media] af9033: wrap DVBv3 read SNR to DVBv5 CNR

Remove 'duplicate' DVBv3 read SNR implementation and return value,
calculated already by DVBv5 CNR, from the cache.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: implement DVBv5 statistics for CNR
Antti Palosaari [Tue, 2 Sep 2014 07:24:41 +0000 (04:24 -0300)]
[media] af9033: implement DVBv5 statistics for CNR

Return CNR via DVBv5 statistics API.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: implement DVBv5 statistics for signal strength
Antti Palosaari [Tue, 2 Sep 2014 06:55:21 +0000 (03:55 -0300)]
[media] af9033: implement DVBv5 statistics for signal strength

Let the demod firmware estimate RF signal strength and return it
to the app as a dBm. To handle that, use thread which reads signal
strengths from firmware in 2 sec intervals when device is active.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] MAINTAINERS: IT913X driver filenames
Antti Palosaari [Mon, 1 Sep 2014 22:44:59 +0000 (19:44 -0300)]
[media] MAINTAINERS: IT913X driver filenames

I removed tuner_ prefix from the driver file names. Update
maintainers entry according to that.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9035: replace PCTV device model numbers with name
Antti Palosaari [Mon, 1 Sep 2014 03:38:01 +0000 (00:38 -0300)]
[media] af9035: replace PCTV device model numbers with name

Use device names for recent PCTV Systems devices:
PCTV AndroiDTV (78e)
PCTV microStick (79e)

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: remove I2C addr from config
Antti Palosaari [Mon, 1 Sep 2014 01:57:26 +0000 (22:57 -0300)]
[media] af9033: remove I2C addr from config

I2C driver address is passed as a i2c_new_device() parameter when
device is created. Thus no need to keep it in config struct.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9035: few small I2C master xfer changes
Antti Palosaari [Mon, 1 Sep 2014 01:17:12 +0000 (22:17 -0300)]
[media] af9035: few small I2C master xfer changes

Biggest problem of that function is complexity. Try reduce complexity:

* define macros to detect all 3 supported xfers
* remove duplicate message maximum size checks

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: clean up logging
Antti Palosaari [Mon, 1 Sep 2014 00:08:09 +0000 (21:08 -0300)]
[media] af9033: clean up logging

It uses I2C client so logging system prints module name
automatically. Function name is also added automatically, if it is
requested from dynamic debug by setting proper format.
Because of that, we could simplify logging in our driver.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: convert to I2C client
Antti Palosaari [Sun, 31 Aug 2014 23:57:05 +0000 (20:57 -0300)]
[media] af9033: convert to I2C client

Convert driver to kernel I2C model.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: rename 'state' to 'dev'
Antti Palosaari [Sun, 31 Aug 2014 05:18:34 +0000 (02:18 -0300)]
[media] af9033: rename 'state' to 'dev'

foo_dev seems to be most correct term for the structure holding data
of each device instance. It is most used term in Kernel codebase and also
examples from book Linux Device Drivers, Third Edition, uses it.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: fix firmware version logging
Antti Palosaari [Sun, 31 Aug 2014 05:03:05 +0000 (02:03 -0300)]
[media] af9033: fix firmware version logging

AF9030 and IT9130 series has different memory location for firmware
version. Choose correct location according to chip type.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] it913x: replace udelay polling with jiffies
Antti Palosaari [Sun, 31 Aug 2014 03:29:33 +0000 (00:29 -0300)]
[media] it913x: replace udelay polling with jiffies

udelay based I/O polling loop is a bad idea, especially system
performance point of view. Kernel jiffies are preferred solution
for such situations. Use it instead.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] it913x: refactor code largely
Antti Palosaari [Sun, 31 Aug 2014 02:52:48 +0000 (23:52 -0300)]
[media] it913x: refactor code largely

Refactor code largely.

Try to keep order of register read/write same as windows driver does as
it makes comparing sniffs easier.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] it913x: get rid of script loader and and private header file
Antti Palosaari [Thu, 28 Aug 2014 05:07:08 +0000 (02:07 -0300)]
[media] it913x: get rid of script loader and and private header file

Used script loader is quite useless and hides register numbers
making code hard to understand. Get rid of it and use standard
RegMap register write functions directly.

it913x_priv.h file leaves empty after that change and is also
removed.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] it913x: remove dead code
Antti Palosaari [Thu, 28 Aug 2014 04:45:52 +0000 (01:45 -0300)]
[media] it913x: remove dead code

Remove unused tuner set template.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] it913x: re-implement sleep
Antti Palosaari [Wed, 27 Aug 2014 06:59:27 +0000 (03:59 -0300)]
[media] it913x: re-implement sleep

Re-implement sleep. Based USB sniffs taken from the latest Hauppauge
windows driver version 07/10/2014, 14.6.23.32191.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] it913x: convert to RegMap API
Antti Palosaari [Wed, 27 Aug 2014 00:45:33 +0000 (21:45 -0300)]
[media] it913x: convert to RegMap API

Use RegMap API to cover I2C register access routines.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] it913x: rename 'state' to 'dev'
Antti Palosaari [Tue, 26 Aug 2014 23:11:08 +0000 (20:11 -0300)]
[media] it913x: rename 'state' to 'dev'

foo_dev seems to be most correct term for the structure holding data
of each device instance. It is most used term in Kernel and also
examples from book Linux Device Drivers, Third Edition, uses it.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] it913x: change reg read/write routines more common
Antti Palosaari [Tue, 26 Aug 2014 21:56:46 +0000 (18:56 -0300)]
[media] it913x: change reg read/write routines more common

Change register write and read routines to similar which are
typically used. We have to add processor core as a part of register
address in order to simplify register access. Chip has two cores,
called link and ofdm. As for now, use address bit 24 to address used
core. Bits 15:0 are register address in given core.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] it913x: convert to I2C driver
Antti Palosaari [Tue, 26 Aug 2014 20:14:16 +0000 (17:14 -0300)]
[media] it913x: convert to I2C driver

Change the it913x driver to use the I2C high lever tuner
binding model. As af9035 depends on it, add a code there
to do the binding.

[mchehab@osg.samsung.com: Merge 3 patches into one, because
 we don't want to break bisect due to the conversion]
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] it913x: rename tuner_it913x => it913x
Antti Palosaari [Tue, 26 Aug 2014 03:08:16 +0000 (00:08 -0300)]
[media] it913x: rename tuner_it913x => it913x

Remove tuner_ prefix from module name and file names. Prefix was
added due to file name conflict on media out-tree build system.
Demodulator having same name does not exists anymore. So lets
remove dumb prefix.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] it913x: make checkpatch.pl happy
Antti Palosaari [Sat, 9 Aug 2014 18:02:14 +0000 (15:02 -0300)]
[media] it913x: make checkpatch.pl happy

Correct issues reported by checkpatch.pl

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: make checkpatch.pl happy
Antti Palosaari [Sat, 9 Aug 2014 17:59:53 +0000 (14:59 -0300)]
[media] af9033: make checkpatch.pl happy

Correct issues reported by checkpatch.pl.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9035: make checkpatch.pl happy
Antti Palosaari [Sat, 9 Aug 2014 17:49:46 +0000 (14:49 -0300)]
[media] af9035: make checkpatch.pl happy

Correct issues reported by checkpatch.pl.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9035: remove AVerMedia eeprom override
Antti Palosaari [Sat, 9 Aug 2014 17:16:29 +0000 (14:16 -0300)]
[media] af9035: remove AVerMedia eeprom override

Reverts commit 3ab25123373270152a9fae98e3c48ef1b2a878c0
[media] af9035: override tuner for AVerMedia A835B devices

Original commit itself is correct, but it was replaced by more
general solution (commit 1cbbf90d0406913ad4b44194b07f4f41bde84e54).
This old solution was committed by a accident and is not needed
anymore.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] it913x: fix IT9135 AX sleep
Antti Palosaari [Sat, 9 Aug 2014 16:39:16 +0000 (13:39 -0300)]
[media] it913x: fix IT9135 AX sleep

Old IT9135 AX needs a little bit different register settings for
sleep than newer IT9135 BX. This has been broken always, as power
management of the whole driver, but it started to be problem as I
fixed clock. Earlier clock was disabled very first on sleep and
rest of the commands were skipped by the chip as no clock, leaving
tuner full power state. When I fixed clocks these PM bugs started
raising out as I/O errors.

Cc: Bimow Chen <Bimow.Chen@ite.com.tw>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] it913x: avoid division by zero on error case
Antti Palosaari [Sat, 9 Aug 2014 15:35:00 +0000 (12:35 -0300)]
[media] it913x: avoid division by zero on error case

Error on init leaves some internal divisor zero, which causes oops
later. Fix it by populating divisors even it fails.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] it913x: fix tuner sleep power leak
Antti Palosaari [Sat, 9 Aug 2014 03:15:05 +0000 (00:15 -0300)]
[media] it913x: fix tuner sleep power leak

IT913x tuner driver disables own clock, provided by demod core, as
very a first operation when tuner is put on *sleep*. That likely
causes failure of all the rest commands on sleep sequence, which
leads situation where tuner is not actually on sleep, but consuming
a lot of power.

I measured 102mA current consumption from the USB before change
and after change it was only 32mA. Used device was single tuner
IT9135 BX.

Second reason to remove that register from tuner driver is reason
it is simply on wrong driver (demod vs. tuner), breaking the
principle of correct driver.

Clock is now provided more correctly af9033 demod driver as a
config option.

Cc: Bimow Chen <Bimow.Chen@ite.com.tw>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9035: enable AF9033 demod clock source for IT9135
Antti Palosaari [Sat, 9 Aug 2014 03:08:57 +0000 (00:08 -0300)]
[media] af9035: enable AF9033 demod clock source for IT9135

Integrated RF tuner of IT9135 is connected to demod clock source
named dyn0_clk. Enable that clock source in order to provide stable
clock early enough.

Cc: Bimow Chen <Bimow.Chen@ite.com.tw>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
10 years ago[media] af9033: provide dyn0_clk clock source
Antti Palosaari [Sat, 9 Aug 2014 02:56:49 +0000 (23:56 -0300)]
[media] af9033: provide dyn0_clk clock source

AF903x/IT913x demod provides clock source(s). It seems that this
clock source is used for integrated RF tuner of IT913x. It is
enabled by default, but firmware disables it automatically when
suspend is requested (suspend_flag (0x004c) + trigger_ofsm
(0x0000)). Automatic disable behavior seems to be similar for both
AF903x and IT913x I tested, though there is no likely any real
clock user in a case of AF903x.

Cc: Bimow Chen <Bimow.Chen@ite.com.tw>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>