pandora-kernel.git
13 years ago[media] gspca - sonixj: Same init for all bridges but the sn9c102p
Jean-François Moine [Thu, 10 Feb 2011 11:00:40 +0000 (08:00 -0300)]
[media] gspca - sonixj: Same init for all bridges but the sn9c102p

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] gspca - sonixj: Simplify GPIO setting when audio present
Jean-François Moine [Thu, 10 Feb 2011 10:52:58 +0000 (07:52 -0300)]
[media] gspca - sonixj: Simplify GPIO setting when audio present

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] gspca - sonixj: Adjust autogain for sensor mt9v111
Jean-François Moine [Thu, 10 Feb 2011 10:49:32 +0000 (07:49 -0300)]
[media] gspca - sonixj: Adjust autogain for sensor mt9v111

The gain/expo adjustment was too long.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] gspca - sonixj: Fix start sequence of sensor mt9v111
Jean-François Moine [Thu, 10 Feb 2011 10:44:59 +0000 (07:44 -0300)]
[media] gspca - sonixj: Fix start sequence of sensor mt9v111

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] gspca - sonixj: Update the JPEG quality for best image transfer
Jean-François Moine [Thu, 10 Feb 2011 10:38:58 +0000 (07:38 -0300)]
[media] gspca - sonixj: Update the JPEG quality for best image transfer

During image capture, the filling rate of the isoc packets is computed.
It is then used by a work queue to update the current JPEG quality.

Tested-by: Franck Bourdonnec <fbourdonnec@chez.com>
Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] gspca - sonixj: Have the same JPEG quality for encoding and decoding
Jean-François Moine [Thu, 10 Feb 2011 10:30:03 +0000 (07:30 -0300)]
[media] gspca - sonixj: Have the same JPEG quality for encoding and decoding

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] gspca - sonixj: Better scanning of isochronous packets
Jean-François Moine [Thu, 10 Feb 2011 10:15:24 +0000 (07:15 -0300)]
[media] gspca - sonixj: Better scanning of isochronous packets

A marker 'ff ff 00 c4 c4 96' indicates an end of frame.
It is 62 bytes long and may be splitted on 2 packets.
It contains a flag 'USB full' which indicates that the frame is truncated.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] gspca - sonixj: Move the avg lum computation to a separate function
Jean-François Moine [Thu, 10 Feb 2011 10:01:30 +0000 (07:01 -0300)]
[media] gspca - sonixj: Move the avg lum computation to a separate function

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] Remove compatibility layer from multi-planar API documentation
Pawel Osciak [Sun, 16 Jan 2011 16:53:31 +0000 (13:53 -0300)]
[media] Remove compatibility layer from multi-planar API documentation

This feature will probably be moved to libv4l2.

Signed-off-by: Pawel Osciak <pawel@osciak.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] v4l2-ctrls: Fix control enumeration for multiple subdevs with ctrl
Hans Verkuil [Tue, 22 Feb 2011 15:31:07 +0000 (12:31 -0300)]
[media] v4l2-ctrls: Fix control enumeration for multiple subdevs with ctrl

v4l2-ctl and qv4l2 enumerate controls using V4L2_CTRL_FLAG_NEXT_CTRL,
falling back to the old method if the flag isn't supported.

The v4l2_subdev_queryctrl function will currently handle that flag, but
for the controls of the subdev only. This isn't right, it should refuse
this flag, otherwise v4l2-ctl will only see the controls of the first
subdev.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] em28xx: properly handle subdev controls
Mauro Carvalho Chehab [Tue, 22 Feb 2011 04:00:58 +0000 (01:00 -0300)]
[media] em28xx: properly handle subdev controls

Subdev controls return codes are evil, as they return -EINVAL to mean
both unsupported and invalid arguments. Due to that, we need to use a
trick to identify what controls are supported by a subdev.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] em28xx: Fix return value for s_ctrl
Mauro Carvalho Chehab [Tue, 22 Feb 2011 03:27:41 +0000 (00:27 -0300)]
[media] em28xx: Fix return value for s_ctrl

On some cases, driver returns 1. This should be OK, but qv4l2 is too
strict about return values.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tvp5150: device detection should be done only once
Mauro Carvalho Chehab [Tue, 22 Feb 2011 03:10:22 +0000 (00:10 -0300)]
[media] tvp5150: device detection should be done only once

Having the device detection happening at reset is bad, as every time,
it will produce a message like:
tvp5150 2-005c: tvp5150am1 detected.

This only polutes the log and for an accidental kernel hacker, it looks
like a real problem. So, move those printk's to happen during device
probe.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner: Remove remaining usages of T_DIGITAL_TV
Mauro Carvalho Chehab [Tue, 22 Feb 2011 00:03:59 +0000 (21:03 -0300)]
[media] tuner: Remove remaining usages of T_DIGITAL_TV

A few places used T_DIGITAL_TV internally. Remove the usage of this
obsolete mode mask.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-core: Don't touch at standby during tuner_lookup
Mauro Carvalho Chehab [Tue, 15 Feb 2011 12:31:01 +0000 (10:31 -0200)]
[media] tuner-core: Don't touch at standby during tuner_lookup

It makes no sense that tuner_lookup would touch at the standby
state. Remove it.

Thanks-to: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-core: Rearrange some functions to better document
Mauro Carvalho Chehab [Tue, 15 Feb 2011 12:27:03 +0000 (10:27 -0200)]
[media] tuner-core: Rearrange some functions to better document

Group a few functions together and add/fix comments for each
block of the driver.

This is just a cleanup patch meant to improve driver readability.
No functional changes in this patch.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-core: Improve function documentation
Mauro Carvalho Chehab [Tue, 15 Feb 2011 12:15:19 +0000 (10:15 -0200)]
[media] tuner-core: Improve function documentation

This driver is complex, and used by everyone. Better to have it
properly documented.

No functional changes are done in this patch.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-core: remove usage of DIGITAL_TV
Mauro Carvalho Chehab [Tue, 15 Feb 2011 11:30:50 +0000 (09:30 -0200)]
[media] tuner-core: remove usage of DIGITAL_TV

tuner-core has no business to do with digital TV. So, don't use
T_DIGITAL_TV on it, as it has no code to distinguish between
them, and nobody fills T_DIGITAL_TV right.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] Remove the remaining usages for T_STANDBY
Mauro Carvalho Chehab [Mon, 14 Feb 2011 20:53:12 +0000 (18:53 -0200)]
[media] Remove the remaining usages for T_STANDBY

tda9887 used to use the T_STANDBY type internally, while tea5761
used it to put the device to sleep. Fix the code for it to work
properly with the tuner core changes and remove this flag from
tuner.h.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-core: Fix a few comments on it
Mauro Carvalho Chehab [Tue, 15 Feb 2011 04:10:20 +0000 (01:10 -0300)]
[media] tuner-core: Fix a few comments on it

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-core: dead code removal
Mauro Carvalho Chehab [Tue, 15 Feb 2011 03:55:18 +0000 (00:55 -0300)]
[media] tuner-core: dead code removal

Remove the now obsolete set_freq. Also merge set_addr and set_type_addr.

In the past, it used to have two different setup calls, one to set just
the tuner type to any tuner found, and another to set the type only if
the address matches. Those two internal calls were grouped together,
but the functions weren't merged, making the code uglier.

No functional changes are done in this patch.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-core: Don't use a static var for xc5000_cfg
Mauro Carvalho Chehab [Fri, 4 Feb 2011 15:56:39 +0000 (12:56 -0300)]
[media] tuner-core: Don't use a static var for xc5000_cfg

A static var is evil, especially if a device has two boards with
xc5000. Instead, just like the other drivers, use stack to store
its config during setup.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-core: CodingStyle cleanups
Mauro Carvalho Chehab [Fri, 4 Feb 2011 14:28:00 +0000 (11:28 -0300)]
[media] tuner-core: CodingStyle cleanups

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-core: do the right thing for suspend/resume
Mauro Carvalho Chehab [Fri, 4 Feb 2011 14:15:21 +0000 (11:15 -0300)]
[media] tuner-core: do the right thing for suspend/resume

Power down tuners at suspend. At resume, if the tuner is in standby,
calls set_mode, that will turn it on and set the latest frequencies.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-core: Better implement standby mode
Mauro Carvalho Chehab [Fri, 4 Feb 2011 13:42:09 +0000 (10:42 -0300)]
[media] tuner-core: Better implement standby mode

In the past, T_STANDBY were used on devices with a separate radio tuner to
mark a tuner that were disabled. With the time, it got newer meanings.

Also, due to a bug at the logic, the driver might incorrectly return
T_STANDBY to userspace.

So, instead of keeping the abuse, just use a boolean for storing
such information.

We can't remove T_STANDBY yet, as this is used on two other drivers. A
latter patch will address its usage outside tuner-core.

Thanks-to: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-core: Some cleanups at check_mode/set_mode
Mauro Carvalho Chehab [Fri, 4 Feb 2011 13:09:07 +0000 (10:09 -0300)]
[media] tuner-core: Some cleanups at check_mode/set_mode

Properly document those functions and do some cleanups around that.
There's just one behavior change on this patchset: it will now restore
TV frequency when changing from radio to TV mode.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-core: Reorganize the functions internally
Mauro Carvalho Chehab [Fri, 4 Feb 2011 02:32:07 +0000 (23:32 -0300)]
[media] tuner-core: Reorganize the functions internally

This is a big patch with no functional changes. It just
rearranges everything inside the driver, and prepares to
break TV and Radio into two separate fops groups.

Currently, it has an heuristics logic to determine if the
call came from radio or video. However, the caller driver
knows for sure, so tuner-core shouldn't try to guess it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-core: move some messages to the proper place
Mauro Carvalho Chehab [Fri, 4 Feb 2011 02:03:19 +0000 (23:03 -0300)]
[media] tuner-core: move some messages to the proper place

Move the frequency set debug printk's to the code that actually
are changing it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-core: remove the legacy is_stereo() call
Mauro Carvalho Chehab [Fri, 4 Feb 2011 01:18:14 +0000 (22:18 -0300)]
[media] tuner-core: remove the legacy is_stereo() call

Nobody is using this legacy call. Just remove it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-core: Remove V4L1/V4L2 API switch
Mauro Carvalho Chehab [Fri, 4 Feb 2011 01:05:23 +0000 (22:05 -0300)]
[media] tuner-core: Remove V4L1/V4L2 API switch

V4L1 was removed. So, the code there is just dead code.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] cx88: Don't allow opening a device while it is not ready
Mauro Carvalho Chehab [Mon, 14 Feb 2011 10:01:51 +0000 (07:01 -0300)]
[media] cx88: Don't allow opening a device while it is not ready

After registering the cdev, it would be possible do have an open on it.
In a matter of fact, some versions of udev do this. So, move registration
to the end and protect it with a mutex.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] cx88: use unlocked_ioctl for cx88-video.
Mauro Carvalho Chehab [Mon, 14 Feb 2011 00:52:02 +0000 (21:52 -0300)]
[media] cx88: use unlocked_ioctl for cx88-video.

cx88-video has locks. don't use the locked ioctl version, as
it is not needed.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] cx231xx: Add support for PV Xcapture USB
Mauro Carvalho Chehab [Tue, 1 Feb 2011 01:18:21 +0000 (22:18 -0300)]
[media] cx231xx: Add support for PV Xcapture USB

Adds support for Pixelviex Xcapture USB grabber device.
This device has one composite and one s-video entry
only, plus a button.

For now, the button is not supported.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] cx231xx: Allow some boards to not use I2C port 3
Mauro Carvalho Chehab [Mon, 31 Jan 2011 19:25:39 +0000 (16:25 -0300)]
[media] cx231xx: Allow some boards to not use I2C port 3

Some devices don't need to use it. So allow to just disable this logic.
Having it enabled on some devices cause power management to complain,
generating error -71.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] cx231xx: Use parameters to describe some board variants
Mauro Carvalho Chehab [Tue, 1 Feb 2011 01:12:15 +0000 (22:12 -0300)]
[media] cx231xx: Use parameters to describe some board variants

Instead of per-model tests all over the code, use some parameters
at the board entries to describe the model variants for:
- devices with 417 MPEG encoder;
- devices that use external AV;
- devices where vbi VANC endpoint doesn't work;
- devices with xc5000 that require different IF
  initialization (and probably will cover also
  xc3028).
- devices with xceive tuner that require a reset
  during init.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] cx231xx: Use a generic check for TUNER_XC5000
Mauro Carvalho Chehab [Sun, 30 Jan 2011 12:03:24 +0000 (09:03 -0300)]
[media] cx231xx: Use a generic check for TUNER_XC5000

The check for xc5000 assumes that the tuner will always
be using the same bus and will have the same address.
As those are configurable via dev->board, it should use,
instead, the values defined there.

Also, a similar type of test will be needed by other
tuners (for example, for TUNER_XC2028)

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] cx231xx: Simplify interface checking logic at probe
Mauro Carvalho Chehab [Sun, 30 Jan 2011 01:10:56 +0000 (22:10 -0300)]
[media] cx231xx: Simplify interface checking logic at probe

Just a cleanup patch. Removes one indent level by moving
the return -ENODEV to happen before the device register
logic, if the interface is not the audio/video (int 1).

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-xc2028: More firmware loading retries
Alina Friedrichsen [Sun, 23 Jan 2011 15:27:05 +0000 (12:27 -0300)]
[media] tuner-xc2028: More firmware loading retries

My Hauppauge WinTV HVR-1400 needs sometimes more then only one retry to load the firmware successfully.

Signed-off-by: Alina Friedrichsen <x-alina@gmx.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] double mutex lock in drivers/media/radio/si470x/radio-si470x-
iceberg [Fri, 21 Jan 2011 18:00:25 +0000 (15:00 -0300)]
[media] double mutex lock in drivers/media/radio/si470x/radio-si470x-

KERNEL_VERSION: 2.6.37
common.c in function ssize_t si470x_fops_read.

1. First mutex_lock on &radio->lock in line 441
2. Second in line 462

I think that mutex in line 462 is not needed.

 433static ssize_t si470x_fops_read(struct file *file, char __user *buf,
 434                size_t count, loff_t *ppos)
 435{
....
 441        mutex_lock(&radio->lock);
 442        if ((radio->registers[SYSCONFIG1] & SYSCONFIG1_RDS) == 0)
 443                si470x_rds_on(radio);
 444
 445        /* block if no new data available */
 446        while (radio->wr_index == radio->rd_index) {
 447                if (file->f_flags & O_NONBLOCK) {
 448                        retval = -EWOULDBLOCK;
 449                        goto done;
 450                }
 451                if (wait_event_interruptible(radio->read_queue,
 452                        radio->wr_index != radio->rd_index) < 0) {
 453                        retval = -EINTR;
 454                        goto done;
 455                }
 456        }
 457
 458        /* calculate block count from byte count */
 459        count /= 3;
 460
 461        /* copy RDS block out of internal buffer and to user buffer */
 462        mutex_lock(&radio->lock);

Found by Linux Device Drivers Verification Project

Remove second mutex.

Signed-off-by: Alexander Strakh <strakh@ispras.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tm6000: add/rework reg.defines
Dmitri Belimov [Thu, 20 Jan 2011 06:05:08 +0000 (03:05 -0300)]
[media] tm6000: add/rework reg.defines

Rework registers defines. Add TM6000 specific registers defines.
Add marks and comments for TM6010 specific registers.

Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] cpia2: convert to video_ioctl2
Hans Verkuil [Sat, 22 Jan 2011 09:36:02 +0000 (06:36 -0300)]
[media] cpia2: convert to video_ioctl2

Unable to test this due to lack of hardware.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] pwc: convert to video_ioctl2
Hans Verkuil [Sat, 22 Jan 2011 09:34:55 +0000 (06:34 -0300)]
[media] pwc: convert to video_ioctl2

Tested with a Logitech QuickCam Pro 4000.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] pwc: convert to core-assisted locking
Hans Verkuil [Thu, 13 Jan 2011 08:05:36 +0000 (05:05 -0300)]
[media] pwc: convert to core-assisted locking

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] vivi: fix compiler warning
Hans Verkuil [Tue, 11 Jan 2011 20:32:28 +0000 (17:32 -0300)]
[media] vivi: fix compiler warning

drivers/media/video/vivi.c:1059: warning: this decimal constant is unsigned only in ISO C90

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] vivi: convert to the control framework and add test controls
Hans Verkuil [Sun, 23 Jan 2011 14:33:16 +0000 (12:33 -0200)]
[media] vivi: convert to the control framework and add test controls

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tvp7002: use control framework
Hans Verkuil [Sun, 12 Dec 2010 11:46:15 +0000 (08:46 -0300)]
[media] tvp7002: use control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] vpx3220: use control framework
Hans Verkuil [Sun, 12 Dec 2010 11:45:59 +0000 (08:45 -0300)]
[media] vpx3220: use control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tvp5150: use the control framework
Hans Verkuil [Sun, 12 Dec 2010 11:45:43 +0000 (08:45 -0300)]
[media] tvp5150: use the control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tvp514x: use the control framework
Hans Verkuil [Sun, 12 Dec 2010 11:45:22 +0000 (08:45 -0300)]
[media] tvp514x: use the control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tlv320aic23b: use control framework
Hans Verkuil [Sun, 12 Dec 2010 11:45:04 +0000 (08:45 -0300)]
[media] tlv320aic23b: use control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] saa7110: use control framework
Hans Verkuil [Sun, 12 Dec 2010 11:27:48 +0000 (08:27 -0300)]
[media] saa7110: use control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] bt819: use control framework
Hans Verkuil [Sun, 12 Dec 2010 11:19:41 +0000 (08:19 -0300)]
[media] bt819: use control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] adv7343: use control framework
Hans Verkuil [Sun, 12 Dec 2010 11:19:16 +0000 (08:19 -0300)]
[media] adv7343: use control framework

Also fixed a memory leak in the probe function if an error occurred.
The gain control range was also fixed (a proper range from -64 to 64).

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] cx18: Use the control framework
Hans Verkuil [Fri, 31 Dec 2010 13:22:52 +0000 (10:22 -0300)]
[media] cx18: Use the control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] cs5345: use the control framework
Hans Verkuil [Sun, 12 Dec 2010 10:53:28 +0000 (07:53 -0300)]
[media] cs5345: use the control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] technisat-usb2: CodingStyle cleanups
Mauro Carvalho Chehab [Wed, 10 Nov 2010 00:31:40 +0000 (22:31 -0200)]
[media] technisat-usb2: CodingStyle cleanups

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] add support for Encore FM3
Mauro Carvalho Chehab [Wed, 19 Jan 2011 18:25:17 +0000 (16:25 -0200)]
[media] add support for Encore FM3

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] saa7134: Properly report when a board doesn't have eeprom
Mauro Carvalho Chehab [Wed, 19 Jan 2011 18:11:58 +0000 (16:11 -0200)]
[media] saa7134: Properly report when a board doesn't have eeprom

When a device is not detected, the driver prints a warning message.
That's ok, except for the fact that, even on newer devices that have
eeprom but aren't yet supported, it prints a message saying that the
device doesn't have eeprom.

Fix it by having a separate message for devices with eeprom, but not
yet known by the driver.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] tuner-simple: add support for Tena TNF5337 MFD
Mauro Carvalho Chehab [Wed, 19 Jan 2011 18:05:30 +0000 (16:05 -0200)]
[media] tuner-simple: add support for Tena TNF5337 MFD

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] DocBook/v4l: fix validation errors
Hans Verkuil [Sun, 16 Jan 2011 20:21:02 +0000 (17:21 -0300)]
[media] DocBook/v4l: fix validation errors

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] v4l: vivi: port to videobuf2
Pawel Osciak [Wed, 19 Jan 2011 15:02:29 +0000 (13:02 -0200)]
[media] v4l: vivi: port to videobuf2

Make vivi use videobuf2 in place of videobuf.

Signed-off-by: Pawel Osciak <p.osciak@samsung.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
CC: Pawel Osciak <pawel@osciak.com>
Reviewed-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] ngene: Fix compilation when cxd2099 is not enabled
Mauro Carvalho Chehab [Tue, 18 Jan 2011 00:18:02 +0000 (22:18 -0200)]
[media] ngene: Fix compilation when cxd2099 is not enabled

drivers/media/dvb/ngene/ngene-i2c.o: In function `cxd2099_attach':
ngene-i2c.c:(.text+0x195): multiple definition of `cxd2099_attach'
drivers/media/dvb/ngene/ngene-core.o:ngene-core.c:(.text+0x100): first defined here
drivers/media/dvb/ngene/ngene-cards.o: In function `cxd2099_attach':
ngene-cards.c:(.text+0x116): multiple definition of `cxd2099_attach'
drivers/media/dvb/ngene/ngene-core.o:ngene-core.c:(.text+0x100): first defined here
drivers/media/dvb/ngene/ngene-dvb.o: In function `cxd2099_attach':
ngene-dvb.c:(.text+0x7ad): multiple definition of `cxd2099_attach'
drivers/media/dvb/ngene/ngene-core.o:ngene-core.c:(.text+0x100): first defined here

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] Move CI cxd2099 driver to staging
Mauro Carvalho Chehab [Mon, 17 Jan 2011 16:20:49 +0000 (14:20 -0200)]
[media] Move CI cxd2099 driver to staging

This driver is abusing the kernel<=>userspace API, due to the lack of a
proper solution for it. A discussion were done at:
http://www.mail-archive.com/linux-media@vger.kernel.org/msg22196.html
But there's not a solution for it yet. So, move the driver to staging, while
we don't have a final solution.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] stv090x: 22kHz workaround must also be performed for the 2nd frontend
Oliver Endriss [Mon, 10 Jan 2011 09:36:24 +0000 (06:36 -0300)]
[media] stv090x: 22kHz workaround must also be performed for the 2nd frontend

22kHz workaround must also be performed for the 2nd frontend.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] ngene: Improved channel initialisation and release
Oliver Endriss [Mon, 10 Jan 2011 09:36:23 +0000 (06:36 -0300)]
[media] ngene: Improved channel initialisation and release

Refactored code for channel initialisation and release:
- Do not create device nodes which are not required.
- Better error handling.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] stv090x: Fix losing lock in dual DVB-S2 mode
Oliver Endriss [Mon, 10 Jan 2011 09:36:22 +0000 (06:36 -0300)]
[media] stv090x: Fix losing lock in dual DVB-S2 mode

Do not clear registers ACLC/BCLC in DVB-S2 mode for Cut <= 20.
Otherwise, the demod could lose the lock periodically.
Verified with cineS2 and Duoflex.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] stv090x: Fixed typos in register macros
Oliver Endriss [Mon, 10 Jan 2011 09:36:21 +0000 (06:36 -0300)]
[media] stv090x: Fixed typos in register macros

Fixed typos in register macros.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] ngene: Fix copy-paste error
Oliver Endriss [Mon, 10 Jan 2011 09:36:20 +0000 (06:36 -0300)]
[media] ngene: Fix copy-paste error

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] get_dvb_firmware: ngene_18.fw added
Oliver Endriss [Mon, 10 Jan 2011 09:36:19 +0000 (06:36 -0300)]
[media] get_dvb_firmware: ngene_18.fw added

Add download link for ngene firmware rev 18.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] ngene: Enable CI for Mystique SaTiX-S2 Dual (v2)
Oliver Endriss [Mon, 10 Jan 2011 09:36:18 +0000 (06:36 -0300)]
[media] ngene: Enable CI for Mystique SaTiX-S2 Dual (v2)

Enable CI for Mystique SaTiX-S2 Dual (v2).

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] ngene: Add net device
Ralph Metzler [Mon, 10 Jan 2011 09:36:17 +0000 (06:36 -0300)]
[media] ngene: Add net device

Add dvb net device.
Note that the physical address must be setup manually.

Signed-off-by: Ralph Metzler <rjkm@metzlerbros.de>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] ngene: Shutdown workaround
Ralph Metzler [Mon, 10 Jan 2011 09:36:16 +0000 (06:36 -0300)]
[media] ngene: Shutdown workaround

Implement shutdown workaround for some chipsets.

Signed-off-by: Ralph Metzler <rjkm@metzlerbros.de>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] ngene: CXD2099AR Common Interface driver
Ralph Metzler [Mon, 10 Jan 2011 09:36:15 +0000 (06:36 -0300)]
[media] ngene: CXD2099AR Common Interface driver

Driver for the Common Interface Controller CXD2099AR.
Supports the CI of the cineS2 DVB-S2.

For now, data is passed through '/dev/dvb/adapterX/sec0':
- Encrypted data must be written to 'sec0'.
- Decrypted data can be read from 'sec0'.
- Setup the CAM using device 'ca0'.

Signed-off-by: Ralph Metzler <rjkm@metzlerbros.de>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] ngene: Clean-up driver initialisation (part 1)
Oliver Endriss [Mon, 10 Jan 2011 09:36:14 +0000 (06:36 -0300)]
[media] ngene: Clean-up driver initialisation (part 1)

If tuner initialisation failed, the frontend node was not removed.
When the frontend was opened, a kernel oops occurred...

This is the first step to improve error handling during initialisation.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] ngene: Support up to 4 tuners
Oliver Endriss [Mon, 10 Jan 2011 09:36:13 +0000 (06:36 -0300)]
[media] ngene: Support up to 4 tuners

Support up to 4 tuners for cineS2 v5, duoflex & mystique v2.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] ngene: Fixes for TS input over I2S
Oliver Endriss [Mon, 10 Jan 2011 09:36:12 +0000 (06:36 -0300)]
[media] ngene: Fixes for TS input over I2S

Fix TS input over I2S.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] ngene: Firmware 18 support
Oliver Endriss [Mon, 10 Jan 2011 09:36:11 +0000 (06:36 -0300)]
[media] ngene: Firmware 18 support

Small modifications for firmware 18.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] stv090x: Optional external lock routine
Oliver Endriss [Mon, 10 Jan 2011 09:36:10 +0000 (06:36 -0300)]
[media] stv090x: Optional external lock routine

Card driver may supply its own lock routine now.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] stv090x: make sleep/wakeup specific to the demod path
Andreas Regel [Mon, 10 Jan 2011 09:36:09 +0000 (06:36 -0300)]
[media] stv090x: make sleep/wakeup specific to the demod path

The STV0900 features two demodulator paths in one chip. Thus it is not
possible to use the generic power off function of the chip when sending
one of them to standby. The other path will stop working in that case.

The sleep function now switches off functionality specific to the demod
path. The global stuff is only switched off, when both paths are in
sleep mode. The wakeup function always turns on the global functionality
and then works specific to the path.

Signed-off-by: Andreas Regel <andreas.regel@gmx.de>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] dib8000: Fix some wrong alignments
Mauro Carvalho Chehab [Sun, 16 Jan 2011 15:02:52 +0000 (13:02 -0200)]
[media] dib8000: Fix some wrong alignments

Something went wrong with the alignments for the if clause at line 2113.
Instead of using one tab for alignments, it used 3 tabs, plus one space
character.

WARNING: suspect code indent for conditional statements (8, 33)
+ if ((state->fe[0]->dtv_property_cache.delivery_system != SYS_ISDBT) ||
[...]
+  int i = 80000;

WARNING: suspect code indent for conditional statements (33, 41)
+  for (index_frontend = 0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) {
+  dib8000_set_bandwidth(state->fe[index_frontend], fe->dtv_property_cache.bandwidth_hz / 1000);

WARNING: suspect code indent for conditional statements (33, 41)
+  do {
+  msleep(20);

WARNING: suspect code indent for conditional statements (41, 49)
+  for (index_frontend = 0; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) {
+  if (((tune_failed >> index_frontend) & 0x1) == 0) {

WARNING: suspect code indent for conditional statements (49, 57)
+  if (((tune_failed >> index_frontend) & 0x1) == 0) {
+  found = dib8000_autosearch_irq(state->fe[index_frontend]);

WARNING: suspect code indent for conditional statements (41, 49)
+  if ((nbr_pending == 0) && (exit_condition == 0))
+  exit_condition = 1;

Cc: Patrick Boettcher <pboettcher@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] dib7000p: Fix 4-byte wrong alignments for some case statements
Mauro Carvalho Chehab [Sun, 16 Jan 2011 15:01:20 +0000 (13:01 -0200)]
[media] dib7000p: Fix 4-byte wrong alignments for some case statements

ERROR: switch and case should be at the same indent
  switch (ch->u.ofdm.transmission_mode) {
[...]
+    case TRANSMISSION_MODE_4K:

WARNING: please, no spaces at the start of a line
+    case TRANSMISSION_MODE_4K:$

ERROR: switch and case should be at the same indent
  switch (ch->u.ofdm.transmission_mode) {
[...]
+    case TRANSMISSION_MODE_4K:

WARNING: please, no spaces at the start of a line
+    case TRANSMISSION_MODE_4K:$

ERROR: switch and case should be at the same indent
  switch (ch->u.ofdm.transmission_mode) {
[...]
+    case TRANSMISSION_MODE_4K:

WARNING: please, no spaces at the start of a line
+    case TRANSMISSION_MODE_4K:$

Cc: Patrick Boettcher <pboettcher@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] DiBxxxx: Codingstype updates
Olivier Grenie [Tue, 4 Jan 2011 16:08:14 +0000 (13:08 -0300)]
[media] DiBxxxx: Codingstype updates

This patchs fix several conding-style violations.

Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] DiB0700: add support for several board-layouts
Olivier Grenie [Tue, 4 Jan 2011 08:42:19 +0000 (05:42 -0300)]
[media] DiB0700: add support for several board-layouts

This patchs adds support for DiBcom's NIM8096MD, NIM9090M, NIM9090MD,
NIM7090, TFE7090PVR (no diversity) reference designs.

Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] DiB7090: add support for the dib7090 based
Olivier Grenie [Tue, 4 Jan 2011 07:54:31 +0000 (04:54 -0300)]
[media] DiB7090: add support for the dib7090 based

This patch adds support for the SoC DiB7090 DVB-T demodulator and its
melt-in UHF/VHF RF tuner.

Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] DIB9000: initial support added
Olivier Grenie [Tue, 4 Jan 2011 07:28:59 +0000 (04:28 -0300)]
[media] DIB9000: initial support added

This patchs add initial support for the DiB9000-device. This
demodulator is firmware-driven.

Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] DiB0090: misc improvements
Olivier Grenie [Tue, 4 Jan 2011 07:27:11 +0000 (04:27 -0300)]
[media] DiB0090: misc improvements

This patch adds several performance improvements and prepares the
usage of firmware-based devices.

Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] DiBx000: add addition i2c-interface names
Olivier Grenie [Mon, 3 Jan 2011 18:39:35 +0000 (15:39 -0300)]
[media] DiBx000: add addition i2c-interface names

This patch adds the possibitity to use different I2C-ports to talk to
slave-devices than the standard ones.

Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] DiB8000: add diversity support
Olivier Grenie [Mon, 3 Jan 2011 18:33:37 +0000 (15:33 -0300)]
[media] DiB8000: add diversity support

This patch adds a set a functions which allow the handling of multiple
demodulator in a diversity reception chain.

Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] DiB0700: add function to change I2C-speed
Olivier Grenie [Mon, 3 Jan 2011 18:30:14 +0000 (15:30 -0300)]
[media] DiB0700: add function to change I2C-speed

This commit adds a function to the DiB0700 USB driver which allows
drivers to change the I2C clock speed.

Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] Add v4l2 subdev driver for NOON010PC30L image sensor
Sylwester Nawrocki [Mon, 3 Jan 2011 11:07:30 +0000 (08:07 -0300)]
[media] Add v4l2 subdev driver for NOON010PC30L image sensor

Add I2C/V4L2 subdev driver for Siliconfile NOON010PC30 CIF camera.
The driver implements basic functionality, i.e. CIF/QCIF/QQCIF
resolution and color format selection, automatic/manual color
balance control. Other functions like cropping, rotation/flip,
exposure etc. can be easily implemented if needed.

Reviewed-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] Add chip identity for NOON010PC30 camera sensor
Sylwester Nawrocki [Tue, 30 Nov 2010 15:54:56 +0000 (12:54 -0300)]
[media] Add chip identity for NOON010PC30 camera sensor

Add ID for NOON010PC30 camera chip and reserve ID range for
Siliconfile sensors.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] s5p-fimc: fimc_stop_capture bug fix
Sungchun Kang [Thu, 30 Dec 2010 05:35:28 +0000 (02:35 -0300)]
[media] s5p-fimc: fimc_stop_capture bug fix

When is called fimc_stop_capture, it seems that wait_event_timeout
used improperly. It should be wake up by irq handler.

Reviewed-by Jonghun Han <jonghun.han@samsung.com>

Signed-off-by: Sungchun Kang <sungchun.kang@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] s5p-fimc: fix MSCTRL.FIFO_CTRL for performance enhancement
Hyunwoong Kim [Wed, 29 Dec 2010 10:08:32 +0000 (07:08 -0300)]
[media] s5p-fimc: fix MSCTRL.FIFO_CTRL for performance enhancement

This patch fixes the value of FIFO_CTRL in MSCTRL.
Main-scaler has the value to specify a basis FIFO control of input DMA.

The description of FIFO_CTRL has been changed as below.
0 = FIFO Empty (Next burst transaction is possible when FIFO is empty)
1 = FIFO Full (Next burst transaction is possible except Full FIFO)

Value '1' is recommended to enhance the FIMC operation performance.

Reviewed-by: Jonghun Han <jonghun.han@samsung.com>
Signed-off-by: Hyunwoong Kim <khw0178.kim@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] s5p-fimc: Support stop_streaming and job_abort
Hyunwoong Kim [Wed, 29 Dec 2010 07:47:49 +0000 (04:47 -0300)]
[media] s5p-fimc: Support stop_streaming and job_abort

This patch adds callback functions, stop_streaming and job_abort,
to abort or finish any DMA in progress. stop_streaming is called
by videobuf2 framework and job_abort is called by m2m framework.
ST_M2M_PEND state is added to discard the next job.

Reviewed-by: Jonghun Han <jonghun.han@samsung.com>
Signed-off-by: Hyunwoong Kim <khw0178.kim@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] s5p-fimc: update checking scaling ratio range
Hyunwoong Kim [Wed, 29 Dec 2010 01:12:43 +0000 (22:12 -0300)]
[media] s5p-fimc: update checking scaling ratio range

Horizontal and vertical scaling range are according to the following equations.
If (SRC_Width >= 64 x DST_Width) { Exit(-1);  /* Out of Horizontal scale range}
If (SRC_Height >= 64 x DST_Height) { Exit(-1);  /* Out of Vertical scale range}

fimc_check_scaler_ratio() is used to check if horizontal and vertical
scale range are valid or not. To use fimc_check_scaler_ratio,
source and destination format should be set by VIDIOC_S_FMT.
And in case of scaling up, it doesn't have to check the scale range.

Reviewed-by: Jonghun Han <jonghun.han@samsung.com>
Signed-off-by: Hyunwoong Kim <khw0178.kim@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] s5p-fimc: Move scaler details handling to the register API file
Sylwester Nawrocki [Tue, 28 Dec 2010 14:37:55 +0000 (11:37 -0300)]
[media] s5p-fimc: Move scaler details handling to the register API file

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] s5p-fimc: Configure scaler registers depending on FIMC version
Hyunwoong Kim [Tue, 28 Dec 2010 14:27:13 +0000 (11:27 -0300)]
[media] s5p-fimc: Configure scaler registers depending on FIMC version

The main scaler has four SFRs for main scaler ratio depending on FIMC version.
FIMC 4.x has only two SFRs and FIMC 5.x has four SFRs for main scaler.
Those are MainHorRatio, MainHorRatio_ext, MainVerRatio and MainverRatio_ext.

The FIMC 5.x has 15 bit resolution for scaling ratio as below.
{MainHorRatio,MainHorRatio_ext} = {[14:6],[5:0]}.
{MainVerRatio,MainVerRatio_ext} = {[14:6],[5:0]}.
MainHorRatio = CISCCTRL[24:16], MainHorRatio_ext = CIEXTEN[15:10]
MainVerRatio = CISCCTRL[8:0],   MainVerRatio_ext = CIEXTEN[5:0]

This patch supports FIMC 4.x and FIMC 5.x using platform_device_id::driver_data.

Reviewed-by: Jonghun Han <jonghun.han@samsung.com>
Signed-off-by: Hyunwoong Kim <khw0178.kim@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] s5p-fimc: fix the value of YUV422 1-plane formats
Hyunwoong Kim [Wed, 22 Dec 2010 03:56:05 +0000 (00:56 -0300)]
[media] s5p-fimc: fix the value of YUV422 1-plane formats

Some color formats are mismatched in s5p-fimc driver.
CIOCTRL[1:0], order422_out, should be set 2b'00 not 2b'11
to use V4L2_PIX_FMT_YUYV. Because in V4L2 standard V4L2_PIX_FMT_YUYV means
"start + 0: Y'00 Cb00 Y'01 Cr00 Y'02 Cb01 Y'03 Cr01". According to datasheet
2b'00 is right value for V4L2_PIX_FMT_YUYV.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] s5p-fimc: Add control of the external sensor clock
Sylwester Nawrocki [Mon, 27 Dec 2010 18:34:43 +0000 (15:34 -0300)]
[media] s5p-fimc: Add control of the external sensor clock

Manage the camera sensor clock in the host driver rather than
leaving this task for sensor drivers. The clock frequency
must be passed in the sensor's and host driver's platform data.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
13 years ago[media] s5p-fimc: Enable simultaneous rotation and flipping
Sylwester Nawrocki [Mon, 27 Dec 2010 17:47:32 +0000 (14:47 -0300)]
[media] s5p-fimc: Enable simultaneous rotation and flipping

Map all (0, 90, 180, 270) deg counterclockwise rotation and
horizontal and vertical flip controls to (0, 90) deg rotation,
horizontal and vertical flip transformations available
in the device.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>