]> Pileus Git - ~andy/linux/log
~andy/linux
11 years ago[media] gscpa_gl860: Convert to the control framework
Hans de Goede [Tue, 19 Feb 2013 10:19:17 +0000 (07:19 -0300)]
[media] gscpa_gl860: Convert to the control framework

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] gspca_sonixj: Convert to the control framework
Hans Verkuil [Mon, 11 Feb 2013 09:31:12 +0000 (06:31 -0300)]
[media] gspca_sonixj: Convert to the control framework

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] s5p-g2d: Add DT based discovery support
Sachin Kamat [Wed, 6 Feb 2013 04:29:43 +0000 (01:29 -0300)]
[media] s5p-g2d: Add DT based discovery support

This patch adds device tree based discovery support to the G2D driver.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] s3c-camif: Fail on insufficient number of allocated buffers
Sylwester Nawrocki [Thu, 7 Feb 2013 21:36:12 +0000 (18:36 -0300)]
[media] s3c-camif: Fail on insufficient number of allocated buffers

Ensure the driver gets always at least its minimum required
number of buffers allocated by checking actual number of
allocated buffers in vb2_reqbufs(). And free any partially
allocated buffer queue with signaling an error to user space.
Without this patch applications may wait forever to dequeue
a filled buffer, because the hardware didn't even start after
VIDIOC_STREAMON, VIDIOC_QBUF calls, due to insufficient number
of empty buffers.

Reported-by: Alexander Nestorov <alexandernst@gmail.com>
Signed-off-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] vb2: Add support for non monotonic timestamps
Kamil Debski [Fri, 25 Jan 2013 09:29:57 +0000 (06:29 -0300)]
[media] vb2: Add support for non monotonic timestamps

Not all drivers use monotonic timestamps. This patch adds a way to set the
timestamp type per every queue.
In addition, set proper timestamp type in drivers that I am sure that use
either MONOTONIC or COPY timestamps. Other drivers will correctly report
UNKNOWN timestamp type instead of assuming that all drivers use monotonic
timestamps.

Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] v4l: Define video buffer flag for the COPY timestamp type
Kamil Debski [Fri, 25 Jan 2013 09:29:56 +0000 (06:29 -0300)]
[media] v4l: Define video buffer flag for the COPY timestamp type

Define video buffer flag for the COPY timestamp. In this case the timestamp
value is copied from the OUTPUT to the corresponding CAPTURE buffer.

Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] stk-webcam: implement support for count == 0 when calling REQBUFS
Hans Verkuil [Sun, 10 Feb 2013 17:37:58 +0000 (14:37 -0300)]
[media] stk-webcam: implement support for count == 0 when calling REQBUFS

The spec specifies that setting count to 0 in v4l2_requestbuffers
should result in releasing any streaming resources and the stream
ownership. Implement this.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Tested-by: Arvydas Sidorenko <asido4@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] stk-webcam: s_fmt shouldn't grab ownership
Hans Verkuil [Sun, 10 Feb 2013 17:36:41 +0000 (14:36 -0300)]
[media] stk-webcam: s_fmt shouldn't grab ownership

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Tested-by: Arvydas Sidorenko <asido4@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] stk-webcam: fix read() handling when reqbufs was already called
Hans Verkuil [Wed, 6 Feb 2013 07:23:01 +0000 (04:23 -0300)]
[media] stk-webcam: fix read() handling when reqbufs was already called

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Tested-by: Arvydas Sidorenko <asido4@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] stk-webcam: enable core-locking
Hans Verkuil [Mon, 4 Feb 2013 12:27:32 +0000 (09:27 -0300)]
[media] stk-webcam: enable core-locking

This makes it possible to switch to unlocked_ioctl.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Tested-by: Arvydas Sidorenko <asido4@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] stk-webcam: zero the priv field of v4l2_pix_format
Hans Verkuil [Mon, 4 Feb 2013 12:18:14 +0000 (09:18 -0300)]
[media] stk-webcam: zero the priv field of v4l2_pix_format

The priv field should be set to 0. In this case the driver abused the priv
field for internal housekeeping. Modify the code so priv is no longer used
for that purpose.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Tested-by: Arvydas Sidorenko <asido4@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] stk-webcam: fix querycap and simplify s_input
Hans Verkuil [Sun, 10 Feb 2013 17:32:52 +0000 (14:32 -0300)]
[media] stk-webcam: fix querycap and simplify s_input

Add device_caps support to querycap, fill in bus_info correctly and
do not set the version field (let the core handle that).
Also simplify the s_input ioctl.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Tested-by: Arvydas Sidorenko <asido4@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] stk-webcam: add support for control events and prio handling
Hans Verkuil [Mon, 4 Feb 2013 12:08:41 +0000 (09:08 -0300)]
[media] stk-webcam: add support for control events and prio handling

Also correct the first_init static: this should be part of the stk_camera struct.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Tested-by: Arvydas Sidorenko <asido4@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] stk-webcam: don't use private_data, use video_drvdata
Hans Verkuil [Mon, 4 Feb 2013 12:00:48 +0000 (09:00 -0300)]
[media] stk-webcam: don't use private_data, use video_drvdata

file->private_data is needed to store the pointer to struct v4l2_fh.
So use video_drvdata to get hold of the stk_camera struct.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Tested-by: Arvydas Sidorenko <asido4@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] stk-webcam: convert to the control framework
Hans Verkuil [Mon, 4 Feb 2013 11:53:11 +0000 (08:53 -0300)]
[media] stk-webcam: convert to the control framework

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Tested-by: Arvydas Sidorenko <asido4@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] stk-webcam: add support for struct v4l2_device
Hans Verkuil [Mon, 4 Feb 2013 11:17:42 +0000 (08:17 -0300)]
[media] stk-webcam: add support for struct v4l2_device

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Tested-by: Arvydas Sidorenko <asido4@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] stk-webcam: remove bogus STD support
Hans Verkuil [Mon, 4 Feb 2013 12:30:49 +0000 (09:30 -0300)]
[media] stk-webcam: remove bogus STD support

It's a webcam, the STD API is not applicable to webcams.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Tested-by: Arvydas Sidorenko <asido4@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] stk-webcam: add ASUS F3JC to upside-down list
Hans Verkuil [Tue, 12 Feb 2013 08:25:38 +0000 (05:25 -0300)]
[media] stk-webcam: add ASUS F3JC to upside-down list

And add an extensive comment relating the history of the upside-down
handling in this driver.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Tested-by: Arvydas Sidorenko <asido4@gmail.com>
Thanks-to: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: fix gpio big-endian problems
Hans Verkuil [Fri, 8 Feb 2013 16:13:12 +0000 (13:13 -0300)]
[media] cx231xx: fix gpio big-endian problems

Tested on my big-endian ppc-based test machine.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: fix big-endian problems
Hans Verkuil [Thu, 7 Feb 2013 18:28:53 +0000 (15:28 -0300)]
[media] cx231xx: fix big-endian problems

Tested on my big-endian ppc-based test machine.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: don't use port 3 on the Conexant video grabber
Hans Verkuil [Fri, 8 Feb 2013 15:43:25 +0000 (12:43 -0300)]
[media] cx231xx: don't use port 3 on the Conexant video grabber

It's not working reliably if port 3 is enabled.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: don't reset width/height on first open
Hans Verkuil [Fri, 8 Feb 2013 14:48:41 +0000 (11:48 -0300)]
[media] cx231xx: don't reset width/height on first open

The last set width/height must be preserved as per the spec.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: disable 417 support from the Conexant video grabber
Hans Verkuil [Thu, 7 Feb 2013 16:22:06 +0000 (13:22 -0300)]
[media] cx231xx: disable 417 support from the Conexant video grabber

The 417 support doesn't work. Until someone can dig into this driver to
figure out why it isn't working the 417 support is disabled.
Sometimes you can actually stream a bit, but very soon the whole machine
crashes, so something is seriously wrong.
For the record, this was not introduced by my recent changes to this driver,
it was broken before that.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: remove bogus driver prefix in log messages
Hans Verkuil [Thu, 7 Feb 2013 14:07:40 +0000 (11:07 -0300)]
[media] cx231xx: remove bogus driver prefix in log messages

The prefix is generated automatically, so no need to provide it again.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx-417: convert to the control framework
Hans Verkuil [Tue, 29 Jan 2013 16:18:09 +0000 (13:18 -0300)]
[media] cx231xx-417: convert to the control framework

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx-417: share ioctls with cx231xx-video
Hans Verkuil [Tue, 29 Jan 2013 16:16:06 +0000 (13:16 -0300)]
[media] cx231xx-417: share ioctls with cx231xx-video

Share tuner, frequency, debug and input ioctls with cx231xx-video.
These are all shared resources, so no need to implement them again.

[mchehab@redhat.com: Fix merge conflict and a checkpatch issue]
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx-417: checkpatch cleanups
Hans Verkuil [Tue, 29 Jan 2013 15:59:50 +0000 (12:59 -0300)]
[media] cx231xx-417: checkpatch cleanups

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx-417: fix g/try_fmt compliance problems
Hans Verkuil [Tue, 29 Jan 2013 16:02:15 +0000 (13:02 -0300)]
[media] cx231xx-417: fix g/try_fmt compliance problems

Colorspace, field and priv were not set, and sizeimage was calculated
using the wrong values (dev->ts1.ts_packet_size and dev->ts1.ts_packet_count
can be 0 at module load).

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx-417: use one querycap for all device nodes
Hans Verkuil [Tue, 29 Jan 2013 15:52:33 +0000 (12:52 -0300)]
[media] cx231xx-417: use one querycap for all device nodes

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx-417: remove empty functions
Hans Verkuil [Tue, 29 Jan 2013 15:50:18 +0000 (12:50 -0300)]
[media] cx231xx-417: remove empty functions

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: improve std handling
Hans Verkuil [Tue, 29 Jan 2013 13:50:54 +0000 (10:50 -0300)]
[media] cx231xx: improve std handling

Set the initial standard of subdevices instead of leaving it undefined.
Also update the width and height when a new standard is chosen and
return -EBUSY when attempting to change the standard while videobuf is
busy.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: get rid of a bunch of unused cx231xx_fh fields
Hans Verkuil [Mon, 28 Jan 2013 15:57:47 +0000 (12:57 -0300)]
[media] cx231xx: get rid of a bunch of unused cx231xx_fh fields

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: replace ioctl by unlocked_ioctl
Hans Verkuil [Mon, 17 Sep 2012 12:26:46 +0000 (09:26 -0300)]
[media] cx231xx: replace ioctl by unlocked_ioctl

There was already a core lock, so why wasn't ioctl already replaced by
unlock_ioctl?
This patch switches to unlocked_ioctl.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: remove current_norm usage
Hans Verkuil [Mon, 17 Sep 2012 11:30:07 +0000 (08:30 -0300)]
[media] cx231xx: remove current_norm usage

The use of this field is deprecated since it will not work when multiple
device nodes reference the same video input (the video and vbi nodes in
this case). The norm field should be a device-global value.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: add struct v4l2_fh to get prio and event support
Hans Verkuil [Mon, 17 Sep 2012 10:31:04 +0000 (07:31 -0300)]
[media] cx231xx: add struct v4l2_fh to get prio and event support

Required to resolve v4l2-compliance failures.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: convert to the control framework
Hans Verkuil [Mon, 17 Sep 2012 10:22:09 +0000 (07:22 -0300)]
[media] cx231xx: convert to the control framework

This is needed to resolve the v4l2-compliance complaints about the control
ioctls.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: fix vbi compliance issues
Hans Verkuil [Sat, 9 Feb 2013 09:41:11 +0000 (06:41 -0300)]
[media] cx231xx: fix vbi compliance issues

Various v4l2-compliance fixes: remove unused sliced VBI functions, zero the
reserved fields of struct v4l2_vbi_format and implement the missing s_fmt_vbi_cap.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: fix frequency clamping
Hans Verkuil [Sat, 9 Feb 2013 09:40:33 +0000 (06:40 -0300)]
[media] cx231xx: fix frequency clamping

Let the tuner clamp the frequency and store that clamped value.
This fixes a v4l2_compliance failure.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: zero priv field and use right width in try_fmt
Hans Verkuil [Sat, 9 Feb 2013 09:35:02 +0000 (06:35 -0300)]
[media] cx231xx: zero priv field and use right width in try_fmt

The priv field of v4l2_pix_format must be zeroed. Also fix a bug in try_fmt
where the current width was used instead of the width passed to try_fmt.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: fix tuner compliance issues
Hans Verkuil [Thu, 13 Sep 2012 15:54:36 +0000 (12:54 -0300)]
[media] cx231xx: fix tuner compliance issues

The g_tuner call wasn't passed on to the subdevices, g_frequency didn't
check for invalid tuners and a low-level function that was expected to
return 0 or a negative error returned a positive number instead, causing
s_frequency to return bogus errors.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: remove broken audio input support from the driver
Hans Verkuil [Thu, 13 Sep 2012 09:17:47 +0000 (06:17 -0300)]
[media] cx231xx: remove broken audio input support from the driver

The audio selection code is broken. Audio and video indices were
mixed up and s_audio would reject changing the audio input to
something else anyway, so what's the point?
All the audio input code has been removed.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: clean up radio support
Hans Verkuil [Tue, 29 Jan 2013 15:32:20 +0000 (12:32 -0300)]
[media] cx231xx: clean up radio support

Radio should not use video or audio inputs.
In addition, fix a bug in radio_g_tuner where s_tuner was called in the tuner
subdev instead of g_tuner.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: add required VIDIOC_DBG_G_CHIP_IDENT support
Hans Verkuil [Thu, 13 Sep 2012 08:37:11 +0000 (05:37 -0300)]
[media] cx231xx: add required VIDIOC_DBG_G_CHIP_IDENT support

This fixes a v4l2_compliance failure.

[mchehab@redhat.com: CodingStyle fixes]
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: add device_caps support to QUERYCAP
Hans Verkuil [Thu, 13 Sep 2012 08:29:12 +0000 (05:29 -0300)]
[media] cx231xx: add device_caps support to QUERYCAP

This fixes a v4l2_compliance failure.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: remove g/s_audio since there is only one audio input
Hans Verkuil [Fri, 15 Feb 2013 09:56:48 +0000 (06:56 -0300)]
[media] bttv: remove g/s_audio since there is only one audio input

Note that the current driver does not implement enumaudio (so apps cannot
tell that audio inputs are present), it does not set V4L2_CAP_AUDIO, nor
does it set audioset when calling ENUM_INPUT. And G_AUDIO doesn't set the
stereo flag either. So these g/s_audio ioctls are quite pointless and
misleading. Especially since some surveillance boards do not have audio
at all.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: do not switch to the radio tuner unless it is accessed
Hans Verkuil [Sun, 10 Feb 2013 12:24:14 +0000 (09:24 -0300)]
[media] bttv: do not switch to the radio tuner unless it is accessed

Just opening the radio tuner should not cause a switch to the radio tuner.
Only after calling g/s_tuner or g/s_frequency should this happen.
This prevents audio being unmuted as soon as the driver is loaded because
some process opens /dev/radioX just to see what sort of node it is, which
switches on the radio tuner and unmutes audio.
This code can be improved further by actually keeping track of who owns the
tuner and returning -EBUSY if switching tuner modes will cause problems.
But for now just fix the annoying case where on boot the radio turns on
automatically.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: fix try_fmt_vid_overlay and setup initial overlay size
Hans Verkuil [Thu, 7 Feb 2013 10:56:11 +0000 (07:56 -0300)]
[media] bttv: fix try_fmt_vid_overlay and setup initial overlay size

try_fmt_vid_overlay should map incorrect sizes and fields to valid values.
It also expects that an initial overlay size is defined so g_fmt_vid_overlay
returns valid information.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: fix g_tuner capabilities override
Hans Verkuil [Wed, 6 Feb 2013 15:44:07 +0000 (12:44 -0300)]
[media] bttv: fix g_tuner capabilities override

The capability field of v4l2_tuner should be ORed by the various subdevs
and by the main driver. In this case the stereo capability was dropped.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: there may be multiple tvaudio/tda7432 devices
Hans Verkuil [Wed, 6 Feb 2013 15:43:37 +0000 (12:43 -0300)]
[media] bttv: there may be multiple tvaudio/tda7432 devices

Probe for additional tvaudio devices, and allow tvaudio+tda7432 to
co-exist. My STB TV PCI FM bttv card has a tda7432, a tda9850 and a
tea6420 and with this patch it finally works again (probably for the
first time in many years).

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: use centralized std and implement g_std
Hans Verkuil [Wed, 6 Feb 2013 15:43:07 +0000 (12:43 -0300)]
[media] bttv: use centralized std and implement g_std

The 'current_norm' field cannot be used if multiple device nodes (video and
vbi in this case) set the same std.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: fix priority handling
Hans Verkuil [Wed, 6 Feb 2013 15:42:40 +0000 (12:42 -0300)]
[media] bttv: fix priority handling

Replace the - incorrect - manual priority handling with the core priority
implementation.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: add support for control events
Hans Verkuil [Wed, 6 Feb 2013 15:42:13 +0000 (12:42 -0300)]
[media] bttv: add support for control events

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: convert to the control framework
Hans Verkuil [Wed, 6 Feb 2013 15:40:28 +0000 (12:40 -0300)]
[media] bttv: convert to the control framework

Note that the private chroma agc control has been replaced with the standard
CHROMA_AGC control.
Also fixes a mute/automute problem where closing the file handle would force
mute on. That's not what you want since that would make the mute state out of
sync with the mute control. Instead check against the user count.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tda7432: convert to the control framework
Hans Verkuil [Tue, 5 Feb 2013 15:17:38 +0000 (12:17 -0300)]
[media] tda7432: convert to the control framework

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: fix field handling inside TRY_FMT
Hans Verkuil [Wed, 6 Feb 2013 15:03:30 +0000 (12:03 -0300)]
[media] bttv: fix field handling inside TRY_FMT

- don't return -EINVAL for invalid field types, handle those as if it
  was FIELD_ANY.
- the handling of FIELD_SEQ_BT/TB was wrong as well: if such field formats
  aren't supported, then fall back to FIELD_ANY instead of returning an error.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: fill in fb->flags for VIDIOC_G_FBUF
Hans Verkuil [Wed, 6 Feb 2013 15:00:03 +0000 (12:00 -0300)]
[media] bttv: fill in fb->flags for VIDIOC_G_FBUF

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: fill in colorspace
Hans Verkuil [Wed, 6 Feb 2013 14:58:59 +0000 (11:58 -0300)]
[media] bttv: fill in colorspace

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: G_PARM: set readbuffers
Hans Verkuil [Sun, 9 Sep 2012 13:27:57 +0000 (10:27 -0300)]
[media] bttv: G_PARM: set readbuffers

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: set initial tv/radio frequencies
Hans Verkuil [Wed, 6 Feb 2013 14:49:14 +0000 (11:49 -0300)]
[media] bttv: set initial tv/radio frequencies

Set an initial frequencies when the driver is loaded. That way G_FREQUENCY will
give a frequency that corresponds with reality.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: disable g/s_tuner and g/s_freq when no tuner present, fix return codes
Hans Verkuil [Wed, 6 Feb 2013 14:43:07 +0000 (11:43 -0300)]
[media] bttv: disable g/s_tuner and g/s_freq when no tuner present, fix return codes

If no tuner is present, then disable the tuner and frequency ioctls.
We can remove a number of checks from those ioctls testing for the presence
of a tuner.
Also remove some tuner type checks (now done by the core) and fix an
error return when the prio check fails.
Finally some 'unlikely' statements are removed since those only make sense
in tightly often executed loops, otherwise they just clutter up the code.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: fix ENUM_INPUT and S_INPUT
Hans Verkuil [Thu, 31 Jan 2013 11:45:13 +0000 (08:45 -0300)]
[media] bttv: fix ENUM_INPUT and S_INPUT

- Fix ENUM_INPUT audioset.
- Fix incorrect input check in s_input.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: add VIDIOC_DBG_G_CHIP_IDENT
Hans Verkuil [Sun, 9 Sep 2012 12:23:31 +0000 (09:23 -0300)]
[media] bttv: add VIDIOC_DBG_G_CHIP_IDENT

VIDIOC_DBG_G_CHIP_IDENT is a prerequisite for the G/S_REGISTER ioctls.
In addition, add support to call G/S_REGISTER for supporting i2c devices.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] bttv: fix querycap and radio v4l2-compliance issues
Hans Verkuil [Sun, 9 Sep 2012 12:03:29 +0000 (09:03 -0300)]
[media] bttv: fix querycap and radio v4l2-compliance issues

The querycap ioctl didn't support V4L2_CAP_DEVICE_CAPS and the radio device
implemented audio and video inputs and s_std, which are not part of the radio
API.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: update MAINTAINERS file
Hans Verkuil [Thu, 7 Feb 2013 12:26:14 +0000 (09:26 -0300)]
[media] tlg2300: update MAINTAINERS file

Remove two maintainers: telegent.com no longer exists, so those email
addresses are invalid as well.
Added myself as co-maintainer and change the status to 'Odd Fixes'.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: Remove logs() macro
Hans Verkuil [Thu, 31 Jan 2013 09:39:09 +0000 (06:39 -0300)]
[media] tlg2300: Remove logs() macro

ioctl debugging can now be done through the debug parameter in sysfs.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: allow multiple opens
Hans Verkuil [Mon, 16 Jul 2012 14:52:41 +0000 (11:52 -0300)]
[media] tlg2300: allow multiple opens

Due to a poor administration of the driver state it wasn't possible to open
a video or vbi device multiple times.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: remove empty vidioc_try_fmt_vid_cap, add missing g_std
Hans Verkuil [Thu, 31 Jan 2013 09:33:35 +0000 (06:33 -0300)]
[media] tlg2300: remove empty vidioc_try_fmt_vid_cap, add missing g_std

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: implement the control framework
Hans Verkuil [Mon, 16 Jul 2012 13:22:48 +0000 (10:22 -0300)]
[media] tlg2300: implement the control framework

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: fix missing audioset
Hans Verkuil [Mon, 16 Jul 2012 13:03:34 +0000 (10:03 -0300)]
[media] tlg2300: fix missing audioset

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: fix frequency handling
Hans Verkuil [Thu, 31 Jan 2013 09:27:37 +0000 (06:27 -0300)]
[media] tlg2300: fix frequency handling

The usual set of problems: the frequency isn't clamped to the frequency range,
no tuner index check and the frequency isn't initialized properly on module
load.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: fix querycap
Hans Verkuil [Thu, 31 Jan 2013 09:42:03 +0000 (06:42 -0300)]
[media] tlg2300: fix querycap

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: embed video_device
Hans Verkuil [Mon, 16 Jul 2012 11:17:58 +0000 (08:17 -0300)]
[media] tlg2300: embed video_device

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: add missing video_unregister_device
Hans Verkuil [Mon, 16 Jul 2012 11:17:34 +0000 (08:17 -0300)]
[media] tlg2300: add missing video_unregister_device

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: fix radio querycap
Hans Verkuil [Thu, 31 Jan 2013 09:17:52 +0000 (06:17 -0300)]
[media] tlg2300: fix radio querycap

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: switch to v4l2_fh
Hans Verkuil [Mon, 16 Jul 2012 10:53:36 +0000 (07:53 -0300)]
[media] tlg2300: switch to v4l2_fh

This switch to v4l2_fh resolves the last v4l2_compliance issues with respect
to control events and priority handling.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: add control handler for radio device node
Hans Verkuil [Thu, 12 Jul 2012 15:56:47 +0000 (12:56 -0300)]
[media] tlg2300: add control handler for radio device node

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: embed video_device instead of allocating it
Hans Verkuil [Thu, 12 Jul 2012 15:39:58 +0000 (12:39 -0300)]
[media] tlg2300: embed video_device instead of allocating it

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: remove ioctls that are invalid for radio devices
Hans Verkuil [Thu, 31 Jan 2013 09:16:41 +0000 (06:16 -0300)]
[media] tlg2300: remove ioctls that are invalid for radio devices

The input and audio ioctls are only valid for video/vbi nodes.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: switch to unlocked_ioctl
Hans Verkuil [Thu, 12 Jul 2012 15:33:41 +0000 (12:33 -0300)]
[media] tlg2300: switch to unlocked_ioctl

The driver already does locking, so it is safe to switch to unlocked_ioctl.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: fix tuner and frequency handling of the radio device
Hans Verkuil [Thu, 12 Jul 2012 15:33:41 +0000 (12:33 -0300)]
[media] tlg2300: fix tuner and frequency handling of the radio device

This driver now passes the tuner and frequency tests of v4l2-compliance.
It's the usual bugs: frequency wasn't clamped to the valid frequency range,
incorrect tuner capabilities and tuner fields not filled in, missing test
for invalid tuner index, no initial frequency and incorrect error handling.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tlg2300: use correct device parent
Hans Verkuil [Thu, 7 Feb 2013 12:31:33 +0000 (09:31 -0300)]
[media] tlg2300: use correct device parent

Set the correct parent for v4l2_device_register and don't set the name
anymore (that's now deduced from the parent). Also remove an unnecessary
forward reference and fix two weird looking log messages.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] em28xx: enable tveeprom for device Hauppauge HVR-930C
Frank Schaefer [Sun, 3 Mar 2013 18:37:44 +0000 (15:37 -0300)]
[media] em28xx: enable tveeprom for device Hauppauge HVR-930C

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] mb86a20s: Don't assume a 32.57142MHz clock
Mauro Carvalho Chehab [Mon, 4 Mar 2013 11:15:49 +0000 (08:15 -0300)]
[media] mb86a20s: Don't assume a 32.57142MHz clock

Now that some devices initialize register 0x2a with different
values, add the calculus formula, instead of hardcoding it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] mb86a20s: Implement set_frontend cache logic
Mauro Carvalho Chehab [Mon, 4 Mar 2013 10:10:06 +0000 (07:10 -0300)]
[media] mb86a20s: Implement set_frontend cache logic

Up to now, the driver was simply assuming TV mode, 13 segs.
Implement the logic to control the ISDB operational mode.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] em28xx-dvb: Don't put device in suspend mode at feed stop
Mauro Carvalho Chehab [Sun, 3 Mar 2013 12:34:41 +0000 (09:34 -0300)]
[media] em28xx-dvb: Don't put device in suspend mode at feed stop

Putting em28xx in suspend mode when a feed stops is just plain
wrong. Every time a new PES filter is changed, the DVB demux
code will stop the current feed, and then start a new one.
If are there any code that switches off the frontend, via
some GPIO setting, this would make the DVB fail.
This condition was actually trigged with one device, during
DVB scan, as, during scan, it is common that userspace apps
to change the filter several times, in order to get all
tables.
Also, this is not needed at all, since the em28xx code already
hooks into ops.ts_bus_ctrl(). This warrants that em28xx can
check there if DVB frontend is in usage or not. The code there
already puts the device on suspend mode, if the DVB frontend
is not used (closed).

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] cx231xx: Improve signal reception for PV SBTVD
Mauro Carvalho Chehab [Sun, 3 Mar 2013 10:49:50 +0000 (07:49 -0300)]
[media] cx231xx: Improve signal reception for PV SBTVD

Instead of using 3.3 MHz IF, use 4MHz. That's the standard
value for the demod, and, while it can be adjusted, 3.3 MHz
is out of the recommended range. So, let's stick with the
default.
With regards to the IF voltage level, instead of using
0.5 V(p-p) for IF, use 2V, giving a 12dB gain.
The rationale is that, on PixelView SBTVD Hybrid,
even 2V(p-p) would be in the nominal range for IF,
as the maximum range on this particular device is 3V.
A higher gain here should help to improve reception under
weak signals.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] mb86a20s: cleanup the status at set_frontend()
Mauro Carvalho Chehab [Sat, 2 Mar 2013 18:02:23 +0000 (15:02 -0300)]
[media] mb86a20s: cleanup the status at set_frontend()

As the device got re-initialized, the stats should vanish
until the device gets lock again.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] mb86a20s: Don't reset strength with the other stats
Mauro Carvalho Chehab [Sat, 2 Mar 2013 17:54:49 +0000 (14:54 -0300)]
[media] mb86a20s: Don't reset strength with the other stats

Signal strength is always available. There's no reason to reset
it, as it has its own logic to reset it already.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] mb86a20s: Always reset the frontend with set_frontend
Mauro Carvalho Chehab [Sat, 2 Mar 2013 16:45:31 +0000 (13:45 -0300)]
[media] mb86a20s: Always reset the frontend with set_frontend

Always init the frontend when set_frontend is called. The rationale
is: it was noticed that, on some devices, it fails to lock with a
different channel. It seems that some other registers need to be
restored to its initial state, when the channel changes.
As it is better to reset everything, even wasting a few more
miliseconds than to loose channel lock, let's change the logic
to always reset.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] mb86a20s: change AGC tuning parameters
Mauro Carvalho Chehab [Fri, 1 Mar 2013 18:20:25 +0000 (15:20 -0300)]
[media] mb86a20s: change AGC tuning parameters

Use the AGC settings present on a newer device.
The initial settings were taken from one of the first devices with
mb86a20s, and there are several reports that this is not working
properly on some places.
So, instead of keeping using it, get the parameters taken from a
newer device. Tests are welcomed.
Tested also with cx231xx PixelView SBTVD Hybrid with no regressions
noticed so far.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] mb86a20s: don't allow updating signal strength too fast
Mauro Carvalho Chehab [Sat, 2 Mar 2013 13:15:30 +0000 (10:15 -0300)]
[media] mb86a20s: don't allow updating signal strength too fast

Getting signal strength requires some loop poking with I2C.
Don't let it happen too fast.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] mb86a20s: Fix signal strength calculus
Mauro Carvalho Chehab [Fri, 1 Mar 2013 19:15:16 +0000 (16:15 -0300)]
[media] mb86a20s: Fix signal strength calculus

A register typo made the calculation to not work. Fix it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] mb86a20s: provide CNR stats before FE_HAS_SYNC
Mauro Carvalho Chehab [Sat, 2 Mar 2013 12:06:17 +0000 (09:06 -0300)]
[media] mb86a20s: provide CNR stats before FE_HAS_SYNC

State 9 means TS started to be output, and it should be
associated with FE_HAS_SYNC.
The mb86a20scan get CNR statistics at state 7, when frame sync
is obtained.
As CNR may help to adjust the antenna, provide it earlier.
A latter patch could eventually start outputing MER measures
earlier, but that would require a bigger change, and probably
won't be better than the current way, as the time between
changing from state 8 to 9 is generally lower than the time
to get the stats collected.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] mb86a20s: adjust IF based on what's set on the tuner
Mauro Carvalho Chehab [Thu, 28 Feb 2013 19:45:39 +0000 (16:45 -0300)]
[media] mb86a20s: adjust IF based on what's set on the tuner

Instead of hardcoding a fixed IF frequency of 3.3 MHz, use
the IF frequency provided by the tuner driver.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] mb86a20s: don't pollute dmesg with debug messages
Mauro Carvalho Chehab [Sat, 2 Mar 2013 12:05:42 +0000 (09:05 -0300)]
[media] mb86a20s: don't pollute dmesg with debug messages

There are a few debug tests that are shown with dev_err() or
dev_info(). Replace them by dev_dbg().

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] em28xx: extract the device configuration dataset from eeproms with 16 bit...
Frank Schaefer [Sun, 3 Mar 2013 18:37:43 +0000 (15:37 -0300)]
[media] em28xx: extract the device configuration dataset from eeproms with 16 bit address width

The new eeproms with 16 address width still have the the device config dataset
(the content of the old 8 bit eeproms) embedded.
Hauppauge also continues to include the tveeprom data structure inside this
dataset in their devices.
The start address of the dataset depends on the start address of the microcode
and a variable additional offset.
It should be mentioned that Camera devices seem to use a different dataset type,
which is not yet supported.
Tested with devices "Hauppauge HVR-930C". I've also checked the USB-log from the
"MSI Digivox ATSC" and it works the same way.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] em28xx: do not store eeprom content permanently
Frank Schaefer [Sun, 3 Mar 2013 18:37:42 +0000 (15:37 -0300)]
[media] em28xx: do not store eeprom content permanently

We currently reserve an array of 256 bytes for the eeprom content in the device
struct. For eeproms with 16 bit address width it might even be necessary to
increase the buffer size further.
Having such a big chunk of memory reserved even if the device has no eeprom and
keeping it after it has already been processed seems to be a waste of memory.
Change the code to allocate + free the eeprom memory dynamically.
This also makes it possible to handle different dataset sizes depending on what
is stored/found in the eeprom.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] em28xx: add helper function for reading data blocks from i2c clients
Frank Schaefer [Sun, 3 Mar 2013 18:37:41 +0000 (15:37 -0300)]
[media] em28xx: add helper function for reading data blocks from i2c clients

Add a helper function for reading data blocks from i2c devices with 8 or 16 bit
address width and 8 bit register width.
This allows us to reduce the size of new code added by the following patches.
Works only for devices with activated register auto incrementation.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] em28xx: add basic support for eeproms with 16 bit address width
Frank Schaefer [Sun, 3 Mar 2013 18:37:40 +0000 (15:37 -0300)]
[media] em28xx: add basic support for eeproms with 16 bit address width

Newer devices (em2874, em2884, em28174, em25xx, em27[6,7,8]x) use eeproms with
16 bit instead of 8 bit address width.
The used eeprom type depends on the chip type, which makes sure eeproms can't
be damaged.
This patch adds basic support for 16 bit eeproms only, which includes
- reading the content
- calculating the eeprom hash
- displaying the content
The eeprom content uses a different format, for which support will be added with
subsequent patches.
Tested with the "Hauppauge HVR-930C" and the "Speedlink VAD Laplace webcam"
(with additional experimental patches).

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] em28xx: fix eeprom data endianess
Frank Schaefer [Sun, 3 Mar 2013 18:37:38 +0000 (15:37 -0300)]
[media] em28xx: fix eeprom data endianess

The data is stored as little endian in the eeprom.
Hence the correct data types should be used and the data should be converted
to the machine endianess before using it.
The eeprom id (key) also isn't a 32 bit value but 4 separate bytes instead.

[mchehab@redhat.com: Fix CodingStyle]
Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>