History log of /drivers/media/video/cx25840/cx25840-core.c
Revision Date Author Comments
c6e8d86fffd8edf1bfccbd441b1812ee919fe3d5 12-Feb-2012 Axel Lin <axel.lin@gmail.com> [media] convert drivers/media/* to use module_i2c_driver()

This patch converts the drivers in drivers/media/* to use the
module_i2_driver() macro which makes the code smaller and a bit simpler.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Heungjun Kim <riverful.kim@samsung.com>
Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: Andrew Chew <achew@nvidia.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Michael Grzeschik <m.grzeschik@pengutronix.de>
Cc: Johannes Obermaier <johannes.obermaier@gmail.com>
Cc: Steven Toth <stoth@kernellabs.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Acked-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
a21df45df0c41f3eb7d0ec6676c7d14b20842bc2 06-Jan-2012 Steven Toth <stoth@kernellabs.com> [media] cx25840: Add support for g_input_status

Allow bridge drivers to query status.

Signed-off-by: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
3308e2b53a6737d28782c89e6d2dd80237fde3e3 05-Jan-2012 Mauro Carvalho Chehab <mchehab@redhat.com> [media] cx25840: Fix compilation for i386 architecture

WARNING: "__udivdi3" [/home/v4l/new_build/v4l/cx25840.ko] undefined!

64 bits division need to call do_div & friends, in order to allow
it to compile with 32 bits kernels

Cc: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
51ada787b89828314f09cb6b2f401c209db88917 05-Jan-2012 Steven Toth <stoth@kernellabs.com> [media] cx25840: Added g_std support to the video decoder driver

Making the detected video standard available to the core driver
and for user query.

Signed-off-by: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
74900b4715bb2092bf0c88dc673008935b8151d2 05-Jan-2012 Steven Toth <stoth@kernellabs.com> [media] cx25840: Hauppauge HVR1850 Analog driver support

Adding support for the CX23888 DIF.
Changes regression tested against the HVR1700 and HVR1800.

Split out much of the set and init handling of the cx23885 based
cards into their own functions. Added the DIF initialization code
for each supported IF.

Updated the cx23885 code to correctly initialize cx23888 based
video/audio decoders.

Enabled Closed Caption support for CX23885 based cards during
initialization.

Signed-off-by: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
52422e3cb146ef643fc0dbe74fa80f1abbe5fc37 10-Oct-2011 Steven Toth <stoth@kernellabs.com> [media] cx25840: Ensure AUDIO6 and AUDIO7 trigger line-in baseband use

Signed-off-by: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2ccdd9a59b3a1ff3bd1be6390c4b1989a008e61c 10-Oct-2011 Steven Toth <stoth@kernellabs.com> [media] cx25840: Enable support for non-tuner LR1/LR2 audio inputs

The change effects cx23885 boards only and preserves support for existing
boards. Essentially, if we're using baseband audio into the cx23885 AV
core then we have to patch registers. The cx23885 driver will call
with either CX25840_AUDIO8 to signify tuner audio or AUDIO7 to
signify baseband audio. If/When we become more comfortable with this change
across a series of products then we may decide to relax the cx23885 only
restriction.

[liplianin@netup.ru: fix missing state declaration]

Signed-off-by: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Igor M. Liplianin <liplianin@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
99d389095f3270aaeb021370e01057910d3ef24d 10-Oct-2011 Steven Toth <stoth@kernellabs.com> [media] cx25840: enable raw cc processing only for the cx23885 hardware

This change is probably good for other boards also, but the change
has limited scope and is reasonably safe.

Signed-off-by: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
25985edcedea6396277003854657b5f3cb31a628 31-Mar-2011 Lucas De Marchi <lucas.demarchi@profusion.mobi> Fix common misspellings

Fixes generated by 'codespell' and manually reviewed.

Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
1e6406b8f0dc1ae7d7c39c9e1ac6ca78e016ebfb 14-Feb-2011 Sven Barth <pascaldragon@googlemail.com> [media] cx25840: fix probing of cx2583x chips

Fix the probing of cx2583x chips, because two controls were clustered
that are not created for these chips.

This regression was introduced in 2.6.36.

Signed-off-by: Sven Barth <pascaldragon@googlemail.com>
Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Cc: stable@kernel.org
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
3c7c9370fb645f4713e0fbbe69425d8db9b47a13 08-Jan-2011 Hans Verkuil <hverkuil@xs4all.nl> [media] v4l2-subdev: remove core.s_config and v4l2_i2c_new_subdev_cfg()

The core.s_config op was meant for legacy drivers that needed to work with old
pre-2.6.26 kernels. This is no longer relevant. Unfortunately, this op was
incorrectly called from several drivers.

Replace those occurences with proper i2c_board_info structs and call
v4l2_i2c_new_subdev_board.

After these changes v4l2_i2c_new_subdev_cfg() was no longer used, so remove
that function as well.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
f23b7952d37c69c0caa6c8dfb85dbf2eb9e5fcaa 05-Dec-2010 Andy Walls <awalls@md.metrocast.net> [media] cx25840: Prevent device probe failure due to volume control ERANGE error

This patch fixes a regression that crept into 2.6.36.

The volume control scale in the cx25840 driver has an unusual mapping
from register values to v4l2 volume control values. Enforce the mapping
limits, so that the default volume control setting does not fall out of
bounds to prevent the cx25840 module device probe from failing.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Cc: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
efba4bc12c7e81b8ece677eed5b8c8bc754802dc 21-Oct-2010 Mauro Carvalho Chehab <mchehab@redhat.com> [media] cx25840: Remove a now unused variable

drivers/media/video/cx25840/cx25840-core.c: In function ‘cx25840_s_frequency’:
drivers/media/video/cx25840/cx25840-core.c:1563: warning: unused variable ‘state’

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
5af79f86db6a29a158510b5dc255d8844d95c4e9 10-Jul-2010 Sven Barth <pascaldragon@googlemail.com> [media] Add support for AUX_PLL on cx2583x chips

This adds support for the AUX_PLL in cx2583x chips which is available in
those although the audio part of the chip is not.
The AUX_PLL is used at least by Terratec in their Grabster AV400 device.

Signed-off-by: Sven Barth <pascaldragon@googlemail.com>
Acked-by: Mike Isely <isely@pobox.com>
Reviewed-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
ad62cdfe396a7f51b200db8c85e75805028889a0 15-Sep-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: cx25840: remove obsolete v4l2-i2c-drv.h header

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
fc00a1d90d7b64e44c2475833cc3021066f67ea7 17-Sep-2010 Andy Walls <awalls@md.metrocast.net> V4L/DVB: cx25840: Fix typo in volume control initialization: 65335 vs. 65535

The wrong value for the volume control limit, 65335 vs. 65535,
prevents proper cx25840 v4l2_subdevice initialization.

Reported-by: Igor M. liplianin <liplianin@me.by>
Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
e34e658b5a42fb1a12fda2112f0b556cf5d1f1c4 06-Aug-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: cx25840: convert to the new control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
72c851b00f6c86353c54fdd9f1ef88d82e8df6c5 06-Aug-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: cx25840/ivtv: replace ugly priv control with s_config

The cx25840 used a private control CX25840_CID_ENABLE_PVR150_WORKAROUND
to be told whether to enable a workaround for certain pvr150 cards.

This is really config data that it needs to get at load time.

Implemented this in cx25840 and ivtv.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
52fd3dda130d03ae5c2bbdcbe81f6e083c051e12 19-Jul-2010 Andy Walls <awalls@md.metrocast.net> V4L/DVB: cx25840: Add support for CX2388[57] A/V core integrated IR controllers

This patch is primarily a port of the integrated IR controller code in
cx23885/cx23888-ir.c. Right now, only the CX2388[57] AV core will
really try to set up IR. This IR support, by design, still requires the
bridge driver to do final IO pin mux configuration and setup of the IR
controller parameters.

For the CX2388[578] chips, enabling the AV Core for IR also starts
sending Audio and Video interrupts to the bridge driver. For
CX2388[578] chips audio and video interrupts are ignored and
acknowledged when they happen.

IR interrupt handling and status logging is exluded for the CX23888
which does not have an IR controller on the AV core.

Note that experimentation reveals that the IR irq enables on the
CX23885 have an inverted logic sense. The CX23887 likely suffers from
the same quirk. For these chips, those irq enable bits are handled
as interrupt disables.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
d06d5777b211112e8355e2f5a700c6a9babfdd6f 19-Jul-2010 Andy Walls <awalls@md.metrocast.net> V4L/DVB: cx25840: Add s_io_pin_config core subdev ops for the CX2388[578]

Add s_io_pin_config core subdev op for the CX2388[578] AV cores.
This is complete for IR_RX, IR_TX, GPIOs 16,19-23, and IRQ_N.
It likely needs work for the I2S signal direction.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
5f272644464bfb8cf8cec958cfc06020283c2f14 18-Jul-2010 Andy Walls <awalls@md.metrocast.net> V4L/DVB: cx25840: Make cx25840 i2c register read transactions atomic

There was a small window between writing the cx25840 register
address over the i2c bus and reading the register contents back from the
cx25840 device that the i2c adapter lock was released. This change ensures the
adapter lock is not released until the register read is done.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
c1658cafd1910cbec1b546ecd1f76e8fc99fc513 08-May-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: cx24850: remove obsolete g/s_fmt ops

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
96fd004fe40b8e3beff2a6e27ae0411a4d315f1e 09-May-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: cx25840: add support for s_mbus_fmt

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
aae6e33f8df8845603880468624ca29edf4bac64 01-May-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: cx18/cx25840/saa7115/tvp5150: remove vbi support from s_fmt

Now that s_fmt is no longer used for VBI format setup in subdevs, remove
the VBI support from s_fmt.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
5393db43f46e3228e4f84dd47050aeadaee23c0b 14-Mar-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: cx25840: support new vbi ops to set/get VBI format

Also removed the bogus zeroing of fmt.sliced when setting up raw VBI.

Switching between raw and sliced VBI changed in 2.6.28 and this memset
should have been removed at that time. It was never noticed because
the bridge driver will fill in the fmt.vbi values anyway.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
32cd527f59f8aa8549067a2c5f989b736f7da79a 14-Mar-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: v4l: move vbi-specific video ops to a new vbi ops struct

Only a relatively small number of video receivers and transmitters actually
support VBI. So start moving the vbi specific ops to an ops struct of their
own.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10e43d90da572f088f15cadfb5cc83cd762041c3 22-Jan-2010 Kusanagi Kouichi <slash@ac.auone-net.jp> V4L/DVB: cx25840: Fix composite detection

If CX25840_VIN1_CH1 and the like is used, input is not detected as composite.
Their value is 0x800000XX and CX25840_COMPONENT_ON is 0x80000200. So

739 else if ((vid_input & CX25840_COMPONENT_ON) == 0)

this condition never be true.

Signed-off-by: Kusanagi Kouichi <slash@ac.auone-net.jp>
Reviewed-by: Andy Walls <awalls@radix.net>
Acked-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
3ccc646b56a3f03029a259c6a8affd9cecc6020e 24-Dec-2009 Andy Walls <awalls@radix.net> V4L/DVB: cx25840, v4l2-subdev, ivtv, pvrusb2: Fix ivtv/cx25840 tinny audio

This change attempts to fix the ivtv tinny audio problem by keeping digitizer
to encoder audio clocks running, while disabling the video clocks as needed to
avoid unpredictable PCI bus hangs.

To accomplish this, for the cx25840 module enabling of audio streaming had
to be separated from enabling video streaming, requiring an additional
v4l2_subdev_audio_op and calls to this new op in the pvrusb2 and ivtv drivers.

The cx231xx and cx23885 driver use the cx25840 module for affecting only
video on s_stream calls, so those drivers needed no change.

The CX23418 hardware does not exhibit either the tinny audio problem nor the PCI
bus hang, so the cx18 driver did not need corresponding changes.

CX2341[56] based cards that are not using the CX2584x family of chips
do not seem to be affected by the tinny audio problem, and this change should
not affect how they are configured. It will delay their first capture by
starting by another 300 msec though.

Many thanks go to Argus <pthorn-ivtvd@styx2002.no-ip.org> and
Martin Dauskardt <martin.dauskardt@gmx.de> whose persistent testing and
investigation of this problem will hopefully fix this problem once and for all
for many ivtv users.

Reported-by: Martin Dauskardt <martin.dauskardt@gmx.de>
Reported-by: Argus <pthorn-ivtvd@styx2002.no-ip.org>
Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
3c3099d5edd719aebfccf63b628b6f11afa59bfe 25-Sep-2009 Aleksandr V. Piskunov <aleksandr.v.piskunov@gmail.com> V4L/DVB (13232): cx25840 6.5MHz carrier detection fixes

cx25840:
Disable 6.5MHz carrier autodetection for PAL, always assume its DK.
Only try to autodetect 6.5MHz carrier for SECAM if user accepts both
system DK and L.

Signed-off-by: Aleksandr V. Piskunov <alexandr.v.piskunov@gmail.com>
Reviewed-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
fb29ab96982baba57b03636e2a894c0d0acd197e 20-Oct-2009 David T.L. Wong <davidtlwong@gmail.com> V4L/DVB (13206): cx25840: add component support

Signed-off-by: David T.L. Wong <davidtlwong@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
8c2d7821d4e3827c29e4e4e345ee25390a141e55 27-Sep-2009 Steven Toth <stoth@kernellabs.com> V4L/DVB (13092): cx25840: Improvements to the cx23885/7/8 chip detection mechanism.

The prior mechanism wasn't reliable with the cx23887. This new mechanism
tests correctly against cx23885, 7 and 8 based products.

Signed-off-by: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
e283d78083271c9faf784daad6367dfb903d0f06 27-Sep-2009 Andy Walls <awalls@radix.net> V4L/DVB (13090): cx25840: Init PLLs properly for CX2388[578] A/V cores

The SYS and AUX PLLs need to be initialized to different values based on
the chip: CX23885, CX23887, CX23888, as each uses a different crystal
frequency: 28.6363 MHz, 25.0 MHz, 50.0 MHz.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2a03f03471d3232037e656570ccaf3ff2ffd01e8 27-Sep-2009 Andy Walls <awalls@radix.net> V4L/DVB (13088): cx25840: Convert chip/core family checks to static inline functions

Change logic to check for various chip or core families to inline functions.
Checks for specific chips should be made against the state->id field now. This
is in preparation for chip/core specific code for setting up PLLs for the
CX2388[578] family of cores, that all run with different crystal frequencies.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
c7dd1ecdc0112b9700ed6ad20a6e4e07d125044b 27-Sep-2009 Andy Walls <awalls@radix.net> V4L/DVB (13087): cx25840: Improve detection of CX2388[578] A/V cores

Add improved logic to detect the exact CX2388[578] A/V core that is being
probed. Also cleaned up detection and logging for CX2310[12], CX2583[67],
and CX2584[0123] cores and chips.

Also added code to identify a CX2388[578] A/V decoder core that is not
responding properly. Typical symptoms include registers 0x00-0xff
responding properly but all other registers returning the same value
(0x13 and 0x5 have been observed). This state will cause proper detection of
'885 vs. '887 vs. '888 to fail and the chip won't respond to get configured
properly anyway. I have no method of reseting the core to a working state at
this time; but I didn't try too hard to work one out either. The problem
likely only occurs in development. I suspect configuring the SYS PLL VCO to
oscillate too slowly (286.3 MHz?) before post divide may be the root cause,
when encountered.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
f3d6f63302bfcd7462d46bd1fe44146c971634d4 23-Jul-2009 Steven Toth <stoth@kernellabs.com> V4L/DVB (12347): cx25840: Bugfix for no DVB-T on the Hauppauge HVR-1700

After the i2c subdev changes the ordering of initialization changed,
causing a total loss of previous GPIO settings and a loss of DTV.
The generic firmware loading routine has now changed to preserve
GPIO values if the device is cx23885 based (safety) and I've
moved the GPIO configuration from probe() into the cx23885 init
func which is a little clearer and fixes the bug.

Tested-by: Sohail Syyed <linuxtv@hubstar.net>
Reviewed-by: Michael Krufky <mkrufky@kernellabs.com>
Signed-off-by: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
5325b4272a53b43f55b82cc369c310c2fcacdca1 02-Apr-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (11380): v4l2-subdev: change s_routing prototype

It is no longer needed to use a struct pointer as argument, since v4l2_subdev
doesn't require that ioctl-like approach anymore. Instead just pass the input,
output and config (new!) arguments directly.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
f41737ece472cd803ffb24ac9f5d6fdd1d871341 01-Apr-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (11370): v4l2-subdev: move s_std from tuner to core.

s_std didn't belong in the tuner ops. Stricly speaking it should be part of
the video ops, but it is used by audio and tuner devices as well, so it is
more efficient to make it part of the core ops.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
cc26b076cf8b1040ccc514302ef9a24042272ec3 30-Mar-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (11369): v4l2-subdev: add load_fw and use that instead of abusing core->init.

The init callback was used in several places to load firmware. Make a separate
load_fw callback for that. This makes the code a lot more understandable.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
00ca732451c8aaec430c84a0c5cd1e1c01227dfa 13-Mar-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (10989): cx25840: cx23885 detection was broken

An earlier commit accidentally broke the detection of the cx25837 part of
the cx23885. Reinstated the commented out code.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
95b14fb23b543e0a9213b4ba3cc4fc640d9e453f 03-Mar-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (10953): cx25840: Fix CodingStyle errors introduced by the last patch

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
149783b58170da0b7ebe9e86995f8cb350f33b6d 03-Mar-2009 Sri Deevi <Srinivasa.Deevi@conexant.com> V4L/DVB (10952): cx25840: prepare it to be used by cx231xx module

cx231xx has a cx25840 inside the chip. However, some different
initializations are used for this variant.

Signed-off-by: Srinivasa Deevi <srinivasa.deevi@conexant.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
7c4673335b5f0508a47763840d7f2403fa6d2773 30-Mar-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (11315): cx25840: fix 'unused variable' warning.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
df1d5ed8a81565b78d45fbdffb6561c75c75ec0d 30-Mar-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (11309): cx25840: cleanup: remove intermediate 'ioctl' step

The audio and vbi functions where still called through an ioctl-like
interface, even though this is no longer needed with v4l2-subdev. Just
change each 'case' into a proper function and call that directly.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
b6198ade556add7a6f1dd1d38dd489b0484cab2d 29-Mar-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (11298): cx25840: remove legacy code for old-style i2c API

All drivers that use cx25840 are now converted to v4l2_subdev, so I can remove
the support for the old-style i2c API.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10afbef15e7bba5e1008f583852077743d28c395 21-Feb-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (10698): v4l2-common: remove v4l2_ctrl_query_fill_std

The v4l2_ctrl_query_fill_std() function wasn't one the best idea I ever had.
It doesn't add anything valuable that cannot be expressed equally well with
v4l2_ctrl_query_fill and only adds overhead.

Replace it with v4l2_ctrl_query_fill() everywhere it is used and remove it
from v4l2_common.c.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
de6476f5f6ae9f792a8828782bdbc47372a021fb 29-Jan-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (10408): v4l2: fix incorrect hue range check

A hue of -128 was rejected due to an incorrect range check, which was
faithfully copy-and-pasted into four drivers...

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
6ca187abb2fc1a52b2a8e0422f3ffce2e3bb7ad0 15-Jan-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (10251): cx25840: add comments explaining what the init() does.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
6d9f13c47a009ccbaf40c2e388ab349690dd8000 27-Jan-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (10314): cx25840: ignore TUNER_SET_CONFIG in the command callback.

These days TUNER_SET_CONFIG is broadcast to the other i2c devices
and that triggers a fw load on the cx25840. Ignore this command
since cx25840 isn't a tuner and you really do not want to load
the firmware that early.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
ba390f005573bdf6ab7fd78bb05119036c2ed539 15-Jan-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (10250): cx25840: fix regression: fw not loaded on first use

With the conversion to v4l2_subdev one bit of code was accidentally dropped:
on receiving the first command the driver has to load the fw. A new init()
command was introduced to do that explicitly for bridge drivers that are
converted to use v4l2_subdev, but old drivers that are not yet converted
no longer worked.

This patch fixes this regression for these old drivers.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
aecde8b53b8ee1330a5a8206200f0d6b8845a6e0 30-Dec-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID.

Since the i2c driver ID will be removed in the near future we have to
modify the v4l2 debugging API to use the driver name instead of driver ID.

Note that this API is not used in applications other than v4l2-dbg.cpp
as it is for debugging and testing only.

Should anyone use the old VIDIOC_G_CHIP_IDENT, then this will be logged
with a warning that it is deprecated and will be removed in 2.6.30.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
9357b31c6cbd3d1c279fb161b3bf179c53062365 29-Nov-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (9823): cx25840: convert to v4l2_subdev.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
6d8976164dd7d10d25fe940b8546265f60ad52cd 03-Sep-2008 Steven Toth <stoth@hauppauge.com> V4L/DVB (8805): Steven Toth email address change

I need this so I can better isolate my linux email from my
corporate email.

Signed-off-by: Steven Toth <stoth@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
fe0d3dff464bdd0cfe56829d86e358438647046c 21-Jul-2008 Adrian Bunk <bunk@kernel.org> V4L/DVB (8494): make cx25840_debug static

cx25840_debug can now become static.

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
ca130eef2ca185739a440b893e69fe36038b87c9 17-Jul-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (8377): ivtv/cx18: ensure the default control values are correct

For several MPEG controls and the volume control the default as returned
by VIDIOC_QUERYCTRL was incorrect and did not match the actual initial
value.

This is now fixed for cx18 and ivtv.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
cb5aa1c62df81ba2cdbae7f7ce469b231d43aba6 17-Jul-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (8376): cx25840: move cx25840_vbi_setup to core.c and rename to cx25840_std_setup

cx25840_vbi_setup has nothing to do with setting up VBI, but everything
with setting up the standard. Move to cx25840-core.c and rename.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
f87086e302300fdff1bd32049deb7a7f3e3de7da 18-Jul-2008 Hans Verkuil <hverkuil@xs4all.nl> v4l-dvb: remove legacy checks to allow support for kernels < 2.6.10

Also remove some blank lines that were used to split compat code at -devel
tree.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
45270a1531a2aa90dd890666913c25a1e6f5e8eb 07-Jun-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (8007): cx18/cx25840: the S-Video LUMA input can use all In1-In8 inputs

The S-Video LUMA input was restricted to the In1-In4 inputs, but it
turns out that it can use the full range of In1-In8.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
af294867a52bf718df835a688e8c786d550bee26 18-May-2008 Jean Delvare <khali@linux-fr.org> i2c: Convert remaining new-style drivers to use module aliasing

Update all the remaining new-style i2c drivers to use standard module
aliasing instead of the old driver_name/type driver matching scheme.

Note that the tuner driver is a bit quirky at the moment, as it
overwrites i2c_client.name with arbitrary strings. We write "tuner"
back on remove, to make sure that driver cycling will work properly,
but there may still be troublesome corner cases.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
d2653e92732bd3911feff6bee5e23dbf959381db 29-Apr-2008 Jean Delvare <khali@linux-fr.org> i2c: Add support for device alias names

Based on earlier work by Jon Smirl and Jochen Friedrich.

This patch allows new-style i2c chip drivers to have alias names using
the official kernel aliasing system and MODULE_DEVICE_TABLE(). At this
point, the old i2c driver binding scheme (driver_name/type) is still
supported.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Jochen Friedrich <jochen@scram.de>
Cc: Jon Smirl <jonsmirl@gmail.com>
Cc: Kay Sievers <kay.sievers@vrfy.org>
2770b7d7136f9c6a51ae7fd1d29fa58caf2bcf1c 19-Apr-2008 Steven Toth <stoth@hauppauge.com> V4L/DVB (7646): cx25840: Ensure GPIO2 is correctly set for cx23885/7/8 based products

cx25840: Ensure GPIO2 is correctly set for cx23885/7/8 based products.

Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
081b496a75fec134657f036f585738a1ca869047 22-Apr-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (7344): cx25840: better PAL-M and NTSC-KR handling

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
f234081bc564c69eb0e2cd4e957ad1cbae4a6144 10-Jan-2008 Steven Toth <stoth@hauppauge.com> V4L/DVB (7002): cx25840: Add basic CX23885 AVCore support

The cx23885/7/8 PCIe bridge has an internal AVCore modelled on
the cx2584x family. Many of the registers positions are identical
but some moved. The register values are also different because
the different bridges run at different clock rates.

Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
4a56eb3f535f92b0585aa01dba05b3f17a547df0 02-Dec-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6743): cx25840: fix endianness inconsistency

cx25840_read4 reads a little-endian 32-bit value whereas cx25840_write4 writes
the 32-bit value as big-endian. Convert write4 to use little-endian as well
(that's the correct endianness).

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
188f3457c21ac7869005021b56b4578293c644bb 16-Sep-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6465): Use correct error codes when chip is not recognized

If the chip isn't recognized, then the correct errors should be returned.
The v4l2_i2c_attach() utility function will return 0 for all errors
except -ENOMEM to provide proper compatibility support for the old I2C
probing function.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
1a39275a3f2fc6fbdb876f5121d67d4b13310c5b 13-Sep-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6459): cx25840: convert to bus-based I2C API

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
f61b48f7a838bb3d089b12fc9d03fd53c9ef5022 01-Sep-2007 Michael Krufky <mkrufky@linuxtv.org> V4L/DVB (6142): cx25840: fix build warning

Fix the following build warning:

CC [M] cx25840-core.o

cx25840-core.c: In function 'init_dll1':
cx25840-core.c:147: warning: implicit declaration of function 'udelay'


Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
38051450b378ef2cb51dff76a6b8299f59129172 28-Aug-2007 Tyler Trafford <ttrafford@gmail.com> V4L/DVB (6124): cx25840: add a few 10 microsecond delays

There were a couple of places in the cx25840 initialization where the
datasheet called for a 10 microsecond delay, which we ignored because
of the 10 usec I2C delay. Put them in anyway now that the I2C delay
was decreased to 5 usec.

Signed-off-by: Tyler Trafford <ttrafford@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
21340ae03a61bded62acb582264660e61c0636b9 26-Aug-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6112): cx25840: use a workqueue to load the firmware

Loading the firmware using the i2c bit-banging code blocks the kernel.
Move the firmware load code into a workqueue so that it plays well with
other processes.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
8267761881d6bb91c168ba4d629b778cf106c485 07-Aug-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6051): cx25840: make proper use of SOFT_RESET

Whenever the 0x80b register is used the microcontroller should be reset.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
39c4ad6ab364354bf76cdcc0081fa5c4422db907 05-Aug-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (5999): cx25840: add radio support.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
87410dab1238623e082e9a78a62f1bbeb6c475e3 05-Aug-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (5997): cx25840: fix audio mute handling and reporting

Audio muting for the tuner input was implemented by stopping the
audio microcontroller and restarting it on unmute. However, it
appears that this method can actually crash the audio firmware.
It's rare and seems to happen with NTSC only.

It has been reimplemented by setting to volume to 0. In addition, the
reporting of the mute state has been improved as well: it used to be
impossible to detect whether the audio was muted by the user or if it
was muted due to the microcontroller trying to detect the audio
standard. This is now clearly stated.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
89fc4eb924fc8da769083e1680e24c182589d789 04-Aug-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (5993): cx25840: resetting also requires reloading the firmware

Resetting without reloading the firmware is not enough. Sometimes the
firmware is 'stuck' and needs to be reloaded.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
c976bc82339437e840f7dbf0b8c89c09d3fcd75e 22-Jul-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (5922): ivtv, cx25840: postpone fw load until first use

The firmware is now loaded when the driver is actually used for the first
time. This allows the driver to be compiled in-kernel instead of as a module.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
ba70d59bb987110c4394e896b299f9726609aa33 29-Apr-2007 Servaas Vandenberghe <vdb128@picaros.org> V4L/DVB (5576): Improve / fix support for PAL-60 in cx25840

This causes the cx25840 module to treat V4L2_STD_PAL_60 similar to
other 60Hz timings, and it fixes a wrongly-named variable (timings are
independant of color system).

Acked-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
3434eb7e14d9587ee56f3462bcfa5726b62dadb9 27-Apr-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (5306): Add support for VIDIOC_G_CHIP_IDENT

VIDIOC_G_CHIP_IDENT improves debugging of card problems: it can be
used to detect which chips are on the board and based on that information
selected register dumps can be made, making it easy to debug complicated
media chips containing tens or hundreds of registers.
This ioctl replaces the internal VIDIOC_INT_G_CHIP_IDENT ioctl.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
f3d092b84a855c44914fea0648695bef7d751266 24-Feb-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (5304): Improve chip matching in v4l2_register

The chip matching in struct v4l2_register for VIDIOC_DBG_G/S_REGISTER
was rather primitive. It could not be extended to other busses besides
i2c and it lacked a way to.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
d55c7aec666658495e5b57a6b194c8c2a1ac255f 15-Feb-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (5255): Fix cx25840 firmware loading.

Due to changes in the i2c handling in 2.6.20 this cx25840 bug surfaced,
causing the firmware load to fail for the ivtv driver. The correct
sequence is to first attach the i2c client, then use the client's
device to load the firmware.
Acked-by: Mike Isely <isely@pobox.com>

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
b7a01e723c9edaefcadb99d42c1409371c01dde1 03-Feb-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (5180): Fix cx2584x revision reporting.

Revisions >= 23 were always reported as revision 23.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
62d50addf0774115adaa9e01e09099c3d7daa13d 31-Jan-2007 Trent Piepho <xyzzy@speakeasy.org> V4L/DVB (5163): Add checks for CAP_SYS_ADMIN to VIDIOC_DBG_G_REGISTER

Before, root privileges were only needed to set hardware registers, not
to read them. On some hardware, reading from the wrong place at the
wrong time can hang the machine. So, to be consistent, root privileges
are required to read registers on all hardware.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
52ebc763d8e0c9f2ab48af89a75e90e2318bac86 24-Jan-2007 Trent Piepho <xyzzy@speakeasy.org> V4L/DVB (5146): Make VIDIOC_INT_[SG]_REGISTER ioctls no longer internal only

The direct register access ioctls were defined as kernel internal only,
but they are very useful for debugging hardware from userspace and are
used as such. Officially export them.

VIDIOC_INT_[SG]_REGISTER is renamed to VIDIOC_DBG_[SG]_REGISTER
Definition of ioctl and struct v4l2_register is moved from v4l2-common.h
to videodev2.h.

Types used in struct v4l2_register are changed to the userspace
exportable versions (u32 -> __u32, etc).

Use of VIDIOC_DBG_S_REGISTER requires CAP_SYS_ADMIN permission, so move
the check into the video_ioctl2() dispatcher so it doesn't need to be
duplicated in each driver's call-back function. CAP_SYS_ADMIN check is
added to pvrusb2 (which doesn't use video_ioctl2).

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
17531c168c7b8138b5379a85de788798fc6696e1 08-Aug-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (4416): Cx25840_read4 has wrong endianness.

cx25840_read4 assembled the bytes in the wrong order.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
18318e00040e0a5c783f6d79c136c2141b779dbd 18-Jun-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (4192): Use control helpers for saa7115, cx25840, msp3400.

Replace hardcoded control description by the standard ones supplied
by v4l2-common.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
839e4a4acb90fd34e3f6765bef6fe03ee82dbc58 04-Jun-2006 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (4067): Fixed cx25840 to work with PAL/M

Sub-carrier frequency for PAL/M is slicely different than NTSC/M.
Without this patch, colors don't work on PAL/M.
Setting method also improved to allow other video standards to be included.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
3e3bf277f1d2487307227e2c5329763cf3af44bc 24-May-2006 Christopher Neufeld <television@cneufeld.ca> V4L/DVB (4050): Add NTSC sliced VBI support to the cx25840 module.

NTSC sliced VBI support by Christopher Neufeld <television@cneufeld.ca>
with additional fixes by Hans Verkuil <hverkuil@xs4all.nl>.

Signed-off-by: Christopher Neufeld <television@cneufeld.ca>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
e2b8cf4ced47465b24d6fe911714827475fb0412 22-Apr-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (4005): Add support for the cx25836/7 video decoder.

Signed-off-by: Scott Alfter <salfter@ssai.us>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
31bc09b579f31331545e694d0a49ec4e6b380989 25-Mar-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3610): Added the new routing commands to cx25840.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
301e22d69140898eddd38a9134da711cb5dfc170 18-Mar-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3584): Implement V4L2_TUNER_MODE_LANG1_LANG2 audio mode

Add a new audio mode V4L2_TUNER_MODE_LANG1_LANG2 (used by VIDIOC_G/S_TUNER).
This mode allows the user to select both languages of a bilingual transmission,
one language on the left, one on the right audio channel. If there is no
bilingual transmission, or it is not supported, then this mode should act like
V4L2_TUNER_MODE_STEREO.
This mode is introduced for PVR-like drivers where it is useful to be able to
record both languages of a bilingual broadcast.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
8bf2f8e747700419cc5bbc56c4496774eb8f2f1f 19-Mar-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3577): Cleanup audio input handling

Cleanup audio input handling in bttv and tvaudio:
- inputs were specified that were never used
- mute was handled as a special input which led to confusing code
- confusing naming made it difficult to see if the setting was for
i2c or gpio.
The old audiochip.h input names moved to tvaudio.h. Currently this
is used both by tvaudio and msp3400 until the msp3400 implements the
new msp3400-specific inputs.
Detect in bttv the tvaudio and msp3400 i2c clients and use these
client pointers to set the inputs directly instead of broadcasting the
command.
Removed AUDC_SET_INPUT. Now replaced by VIDIOC_S_AUDIO. This will be
replaced again later by the new ROUTING commands.
Removed VIDIOC_G_AUDIO implementations in i2c drivers: this command is
a user level command and not to be used internally. It wasn't called at
all anyway.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
73dcddc583c40bcc9e6bf468c78c31930899922c 17-Mar-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3551): Fix saturation bug. Fix NTSC->PAL standard change. Detect NTSC-KR standard.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2175771e154d9faf404b2631be39bf7bd36a035e 27-Feb-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3354): Fix maximum for the saturation and contrast controls.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
ecc0b94742014f21fd1ba331bb6815322800b6c8 27-Feb-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3354): Fix maximum for the saturation and contrast controls.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
d97a11e091a0bf40f1cfb0bbf443ddd7b455b133 07-Feb-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3300): Add standard for South Korean NTSC-M using A2 audio.

South Korea uses NTSC-M but with A2 audio instead of BTSC. Several audio
chips need this information in order to set the correct audio processing
registers.

Acked-by: Mauro Carvalho Chehab <mauro_chehab@yahoo.com.br>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
0dfd812d4b2afc797310943b451608d347854e76 07-Feb-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3300): Add standard for South Korean NTSC-M using A2 audio.

South Korea uses NTSC-M but with A2 audio instead of BTSC. Several audio
chips need this information in order to set the correct audio processing
registers.

Acked-by: Mauro Carvalho Chehab <mauro_chehab@yahoo.com.br>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
8a4b275f9c192921797f45c2d4b5e4bc3875500a 23-Jan-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3427): audmode and rxsubchans fixes (VIDIOC_G/S_TUNER)


- Audmode and rxsubchans fixes in msp3400, tuner, tvaudio and cx25840.
- msp3400 cleanups

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
a9cff90ed9a23e9f73963fe73b71ef7e5de3e822 15-Jan-2006 Adrian Bunk <bunk@stusta.de> V4L/DVB (3377): make some code static

- This patch makes some needlessly global code static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
a5ed425cd30c0c2abac4039ae11b38520aa130c2 13-Jan-2006 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (3355): removed uneeded init on structs like static int foo=0

- Static vars are equal to zero by default. Removed unnecessary =0 from them,
saving some data space

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
b5fc71440f63f653d86c75c2930fe22ad84c909d 12-Jan-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3348): debug renamed to cx25840_debug

- Debug var renamed to cx25840 to avoid conflicts with other
var with the same name at kernel

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
f167cb4e6ee07914b66eb85fc0bf006a409b6838 11-Jan-2006 Mauro Carvalho Chehab <mchehab@brturbo.com.br> V4L/DVB (3345): Fixes some bad global variables


- Debug global var is already used inside kernel.
- v4l_dbg now expects the debug var
- global vars inside msp34xx renamed to msp_*

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
7408187d223f63d46a13b6a35b8f96b032c2f623 11-Jan-2006 Panagiotis Issaris <takis@issaris.org> V4L/DVB (3344a): Conversions from kmalloc+memset to k(z|c)alloc


Conversions from kmalloc+memset to k(z|c)alloc.

Signed-off-by: Panagiotis Issaris <takis@issaris.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
cab462f716cdd522edc71436482d8734e8258489 09-Jan-2006 Mauro Carvalho Chehab <mchehab@brturbo.com.br> V4L/DVB (3307): Some cleanups at I2C modules

- i2c names shorten
- removed obsoleted flags on newer modules
- small cleanups

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
0de71224d17f43101fa20696a8d7a78fb599557e 09-Jan-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3292): Fix signed/unsigned bug in brightness handling of cx25840

- Fix signed/unsigned bug in brightness handling (set to 0 and 128 was returned).

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
c5099a6481d2d0f9455abd15c91f73c2ced57a40 09-Jan-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3291): Fix signed/unsigned bug in hue handling

- Fix signed/unsigned bug in hue handling (set to -127 and 129 was returned).

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
d92c20e0a5b560bbe46d7e68bb47df2366cddf8f 09-Jan-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3279): Added VIDIOC_QUERYCTRL to cx25840.


- Added VIDIOC_QUERYCTRL
- Removed unnecessary inlines.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
fac9e89999a12f378112fe93764b30196bc03f46 09-Jan-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3278): convert diagnostics over to the new v4l2-common.h macros.


- Convert diagnostics over to the new v4l2-common.h macros.
- deprecated tuner_debug option, the new option is debug.
- renamed cx25840_debug to debug.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
3faeeae48348959c58f3121d2a6a4fb0bc626da0 09-Jan-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3256): When in radio mode ignore VIDIOC_G_TUNER


- Detect when AUDC_SET_RADIO is called.
- When in radio mode ignore VIDIOC_G_TUNER.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
a8bbf12ad8a8ad532cea0b67f0127ad90d336b04 09-Jan-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3249): Generalized cx25840 video/audio input handling


- Added VIDIOC_S_AUDIO to set the audio inputs separately.
- Removed AUDC_SET_INPUT.
- Made the video inputs much more general.
- Removed cardtype CID and replaced with a CID to enable
the PVR150 workaround. The cardtype is no longer necessary
with the general video input change.
- Update VIDIOC_LOG_STATUS output to show the video and
audio inputs separately.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
3578d3dd0b1e468a44a76a83efe90476a854625d 09-Jan-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3214): Calculate the saa7115 AMCLK regs instead of using fixed values

- Calculate the audio master clock registers from the actual
frequencies. This simplifies the code and it also prepares
for adding CGC2 support.
- VIDIOC_INT_AUDIO_CLOCK_FREQ now receives an u32 instead of
an enum. It is more generic and actually easier to implement.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
b060c25f70adb20532dacefa72029d1d2db1a7f1 09-Jan-2006 Mauro Carvalho Chehab <mchehab@brturbo.com.br> V4L/DVB (3123a): remove uneeded #if from V4L subsystem

- some uneeded #if were introduced by a previous patch.
this patch removes these.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
2b48716d1d2f2edb1e7cbc5ecf1cb2cb39373e33 07-Dec-2005 Greg Kroah-Hartman <gregkh@suse.de> [PATCH] I2C: Remove .owner setting from i2c_driver as it's no longer needed

Now that i2c_add_driver() doesn't need the module owner to be set by
hand, we can delete it from the drivers. This patch catches all of the
drivers that I found in the current tree (if a driver sets the .owner by
hand, it's not a problem, just not needed.)

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Cc: Jean Delvare <khali@linux-fr.org>
604f28e2b8d34cbaf08f0351374645f161335a82 26-Nov-2005 Laurent Riffard <laurent.riffard@free.fr> [PATCH] i2c: Drop i2c_driver.{owner,name}, 5 of 11

We should use the i2c_driver.driver's .name and .owner fields
instead of the i2c_driver's ones.

This patch updates the drivers/media/video and usb/media drivers.

Signed-off-by: Laurent Riffard <laurent.riffard@free.fr>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
cde7859bda0d1124392b44e50aa11df99707e1d9 26-Nov-2005 Jean Delvare <khali@linux-fr.org> [PATCH] i2c: Rework client usage count, 2 of 3

Make I2C_CLIENT_ALLOW_USE the default for all i2c clients. It doesn't
hurt if the usage count is actually never used for any given driver,
and allows for nice code simplifications in i2c-core.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
8a9947552d43b0d20d5fa23ac0ba435d526be454 26-Nov-2005 Jean Delvare <khali@linux-fr.org> [PATCH] i2c: Drop i2c_driver.flags, 2 of 3

Just about every i2c chip driver sets the I2C_DF_NOTIFY flag, so we
can simply make it the default and drop the flag. If any driver really
doesn't want to be notified when i2c adapters are added, that driver
can simply omit to set .attach_adapter. This approach is also more
robust as it prevents accidental NULL pointer dereferences.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
468a0a54aabdac72e9c7bbd4f8372f1df2d9f0ae 19-Dec-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] V4L/DVB (3189): Fix a broken logic that didn't cover all standards.

- Fix a broken logic that didn't cover all standards.
- Fix compilation failure with gcc 2.95.3.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
f95006f89576cac504323daa53157013bf099fc9 01-Dec-2005 Hans Verkuil <hverkuil@xs4all.nl> [PATCH] V4L: Add workaround for Hauppauge PVR150 with certain NTSC tuner models

Add workaround for Hauppauge PVR150 hardware problem with tuner models 85, 99
and 112 (model numbers as reported by tveeprom). The audio standard
autodetection does not always work correctly for these models.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
769e24382dd47434dfda681f360868c4acd8b6e2 01-Dec-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] V4L: Some funcions now static and I2C hw code for IR

- Some funcions are now declared as static
- Added a I2C code for InfraRed.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
e77f34d6948af83db75ece2e1bc0c73087d7cf69 14-Nov-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] v4l: (966.1) Removes Obsoleted i2c-compat.h from newer drivers

Removed obsoleted i2c-compat.h file from cx25840, saa7115 and saa7127 drivers.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
1f4b33651cfb18caac6b6a0d664b0750074b14f4 14-Nov-2005 Hans Verkuil <hverkuil@xs4all.nl> [PATCH] v4l: (966) Authorship fixes for new Modules

Fixes Module Author macros

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
bd985160a9f4623fdb24fcfeb36fe59e1b8f7b57 14-Nov-2005 Hans Verkuil <hverkuil@xs4all.nl> [PATCH] v4l: (946) adds support for cx25840 video decoder

Adds support for cx25840 video decoder.

Driver authors: Hans Verkuil, Chris Kennedy, Tyler Trafford, Ulf Eklund.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Chris Kennedy <c@groovy.org>
Signed-off-by: Tyler Trafford <tatrafford@comcast.net>
Thanks-to: Ulf Eklund <ivtv@eklund.to>.
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>