Commit graph

437 commits

Author SHA1 Message Date
Steven Toth
27c685a4b0 V4L/DVB (7042): xc5000: Tuner analog support
From Zhang: This an updated patch that adds analog support for
the xc5000 tuner driver. it was tested on a Pinnacle PCTV HD 800i
card (patches to follow).

Patch commited as-is, cleanup to follow ... Steve.

Signed-off-by: Chaogui Zhang <czhang1974@gmail.com>
Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:05:05 -02:00
Steven Toth
dfc1c08aab V4L/DVB (7041): s5h1409: Bug fix for parallel support
Parallel support was not working with the s5h1409 and the Pinnacle HD800i.
This patch fixes the demodulator driver and ensures that all existing
s5h1409 based products configure the demodulator correctly.

Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:05:05 -02:00
Michael Krufky
bc835d80d9 V4L/DVB (7032): tda18271: tda18271_cal_on_startup should be declared static
This module option variable is only handled within the file tda18271-fe.c -

Declare this variable as static.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:05:01 -02:00
Michael Krufky
0f96251e7b V4L/DVB (7029): tda18271: provide a choice whether to perform rf cal on init or on first tune
If module option "cal" is set to 1, the ~22 sec rf tracking filter calibration
sequence will be invoked on startup.  Otherwise, the calibration will take
place during the first tune.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:05:00 -02:00
Michael Krufky
839c6c96d0 V4L/DVB (7028): tda18271: test RF_CAL_OK to see if we need additional RF calibration
Test RF_CAL_OK to see if we need to perform the RF tracking filter
calibration after returning from standby.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:59 -02:00
Michael Krufky
518d87399b V4L/DVB (7027): tda18271: put the device in standby mode during sleep()
Add function, tda18271_set_standby_mode.

During sleep, enter standby mode with slave tuner output enabled,
loop through on and xtal oscillator on.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:58 -02:00
Michael Krufky
6bfa665724 V4L/DVB (7026): tda18271: report when the RF tracking filter calibration has completed
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:58 -02:00
Steven Toth
a57ed8a1f7 V4L/DVB (7008): s5h1409: Ensure the silicon is initialized during attach
If not it impacts on analog tuner quality.

Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:50 -02:00
Michael Krufky
cf04d29c48 V4L/DVB (6988): tda18271: give calibration debug a separate debug mask
We don't usually want to see the calibration debug messages, but sometimes
it is useful.  Assign it to a separate debug mask.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:44 -02:00
Michael Krufky
c353f42f75 V4L/DVB (6987): tda18271: add support for fm radio
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:44 -02:00
Michael Krufky
a4f263b587 V4L/DVB (6986): tda18271: share state between analog and digital tuner instances
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:43 -02:00
Michael Krufky
8d316bf54b V4L/DVB (6979): tda18271: use a mutex to protect state in critical sections
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:43 -02:00
Michael Krufky
ccbac9bb17 V4L/DVB (6978): tda18271: store frequency and bandwidth after successful tune
Store last tuned frequency & bandwidth after successful tune.

Clean up tune functions -- remove pointer to tune function in
state structure, instead call tune function based on priv->id.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:42 -02:00
Michael Krufky
09f83c4fc0 V4L/DVB (6977): tda18271: clean up calibration initialization procedures
Always initialize registers during attach.

Perform IR Calibration during init if needed.
Perform RF Calibration during init if needed for C2, only.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:41 -02:00
Michael Krufky
d2c932a1f7 V4L/DVB (6965): tda18271: fix analog tuning regression caused by earlier changeset
An earlier patch, "tda18271: fail table lookups if frequency is out of range"
broke analog support on certain hardware.  This patch fixes that problem, by
allowing the RF_CAL byte to be set to the maximum value, in cases of the
frequency being out of range.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:38 -02:00
Michael Krufky
0e1fab90a8 V4L/DVB (6964): tda18271: document debug level and configuration parameters
Document debug level module options and
tda18271_config attach-time parameters.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:38 -02:00
Michael Krufky
2ba65d517b V4L/DVB (6963): tda18271: store IF frequency in a u16 instead of u32
Store IF Frequency in a u16 instead of a u32.  Multiply by 1000 before use.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:37 -02:00
Michael Krufky
f21e0d7f05 V4L/DVB (6962): tda18271: allow device-specific configuration of IF frequency and std bits
Allow drivers to pass device-specific configuration parameters during attach.

If these parameters are omitted, default values will be used.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:36 -02:00
Michael Krufky
59067f7ed4 V4L/DVB (6961): tda18271: move common code to tda18271-common.c
Move some common code to a new file to make this easier to look at.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:36 -02:00
Michael Krufky
255b5113b4 V4L/DVB (6960): tda18271: add support for NXP TDA18271HD/C2
Tested successfully with QAM256 digital cable.
Analog television is limping, needs more work.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:35 -02:00
Michael Krufky
dec9ccceef V4L/DVB (6959): tda18271: add MODULE_VERSION
version 0.1

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:35 -02:00
Michael Krufky
95af8a26cb V4L/DVB (6958): tda18271: clean up function tda18271_set_analog_params
make set_analog_params function look consistent with set_params function

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:34 -02:00
Michael Krufky
33f25b4275 V4L/DVB (6957): tda18271: fail table lookups if frequency is out of range
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:34 -02:00
Steven Toth
71bc9bd96b V4L/DVB (6930): xc5000: Removed erroneous defines
Basic cleanup.

Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:26 -02:00
Michael Krufky
b92bf0f6a9 V4L/DVB (6928): tda18271: break calculation functions out of tda18271_tune
Break out the following new functions from tda18271_tune:

tda18271_calc_bp_filter
tda18271_calc_km
tda18271_calc_rf_band
tda18271_calc_gain_taper
tda18271_calc_ir_measure
tda18271_calc_rf_cal

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:26 -02:00
Michael Krufky
182519f4c9 V4L/DVB (6927): tda18271: improve printk macros
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:25 -02:00
Michael Krufky
2f27dfc98c V4L/DVB (6926): tda18271: consolidate table lookup functions
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:25 -02:00
Michael Krufky
d37142102a V4L/DVB (6925): tda18271: move state structures to tda18271-priv.h
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:25 -02:00
Michael Krufky
7686b574a1 V4L/DVB (6924): tda18271: fix whitespace in tda18271_ir_measure
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:24 -02:00
Michael Krufky
926bf3ca93 V4L/DVB (6923): tda18271: remove extraneous debug
We don't need to do a dbg_info during tda18271_attach anymore, since
the tda18271_get_id function will call dbg_info with the same information
and more.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:24 -02:00
Michael Krufky
fe0bf6d783 V4L/DVB (6907): tda18271: create separate calc_pll functions
Consolidate duplicated code by creating functions:

tda18271_calc_main_pll
tda18271_calc_cal_pll

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:19 -02:00
Michael Krufky
f0bd504fb9 V4L/DVB (6906): tda18271: rename tda18271_calc_* functions to tda18271_lookup_*
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:19 -02:00
Michael Krufky
49e7aaf0ff V4L/DVB (6905): tda18271: check ID register during attach
Identify the silicon during attach, return NULL if unsupported device.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:19 -02:00
Michael Krufky
7e946c8a42 V4L/DVB (6904): tda18271: divider byte 1, bit 7 is always 0
Bit 7 of both Main Divider byte 1 and Cal Divider byte 1 is always zero.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:18 -02:00
Matthias Schwarzott
994fc28b6c V4L/DVB (6903): mt312: CodingStyle fix
Fixes all occurences of assignment in if

checkpatch marks them as ERROR.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Reviewed-by: Andreas Oberritter <obi@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:18 -02:00
Michael Krufky
3f51451b51 V4L/DVB (6894): xc5000: fix build warning
Fix the following build warning:

xc5000.c:560: warning: format '%d' expects type 'int',
	      but argument 2 has type 'size_t'

On many architectrues size_t is unsigned long, and may not be printed with %d.
Use %Zu instead.


Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:14 -02:00
Michael Krufky
fb6d8e2c7f V4L/DVB (6892): xc5000: fix build when DVB_TUNER_XC5000 is disabled
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:14 -02:00
Michael Krufky
26501a703d V4L/DVB (6890): tda18271: fix typo in RF tracking filter calibration
We want to set bits 1 & 2 on easy programming byte 4, not extended byte 4.

Thanks to David Wong for pointing this out.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Cc: David Wong <davidtlwong@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:13 -02:00
Steven Toth
e12671cf0c V4L/DVB (6886): xc5000: Cleanups of types, result codes etc
This translates much of the xceive coding style, adds
some result codes and generally cleans up whitespace
and function arguments.

Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:12 -02:00
Steven Toth
aacb9d31ee V4L/DVB (6884): Add support for the Xceive xc5000 silicon tuner
This is an all formats tuner, QAM, ATSC, DVB-T and others.
Only ATSC and QAM have been tested.

Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:11 -02:00
Michael Krufky
bc3e5c7fc2 V4L/DVB (6881): include struct analog_demod_ops directly inside struct dvb_frontend
Rather than using a pointer, include struct analog_demod_ops directly
inside struct dvb_frontend.  This will allow us to use dvb_attach in
the future, along with removing the need to check the ops structure
before having to check the pointer to the method being called.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:11 -02:00
Michael Krufky
9ad89f0104 V4L/DVB (6880): kill tuner-driver.h
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:10 -02:00
Matthias Schwarzott
0b6a3342a6 V4L/DVB (6874): removes duplicated KERN_DEBUG flags from dprintk calls in mt312.c
do { \
                if (debug) printk(KERN_DEBUG "mt312: " args); \
        } while (0)

So no caller need to specify KERN_DEBUG.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:09 -02:00
Matthias Schwarzott
89f6475857 V4L/DVB (6873): Fixes issues listed by checkpatch
Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:08 -02:00
Chris Pascoe
bc51471088 V4L/DVB (6856): zl10353: improve tuning parameters and update register map
Some more I2C traces and a experimentation with register values on
both the ZL10353 and MT352 mean that I can now guess at what more
of the ZL10353 registers do.

Guess at the registers' names (based on the equivalent names in MT352)
and update set_parameters/get_parameters with the new knowledge.

Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:04:03 -02:00
Michael Krufky
6b7daa88f2 V4L/DVB (6822): s5h1409: use VSB IF frequency ( 44 / 5.38 MHz ) unless otherwise specified
use VSB IF frequency ( 44 / 5.38 MHz ) if qam_if is invalid or unspecified

Acked-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:03:45 -02:00
Michael Krufky
2b03238a79 V4L/DVB (6821): s5h1409: fix IF frequency configuration
On the s5h1409 demod, the IF frequency for VSB is limited to 44 / 5.38 MHz.

Hardcode VSB IF frequency within the driver to 44 / 5.38 MHz.
QAM IF frequency remains configurable via attach-time configuration.

Acked-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:03:44 -02:00
Andrew Morton
18ff605a18 V4L/DVB (6818): git-dvb: drivers/media/dvb/frontends/zl10353.c: avoid 64-bit divide
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Chris Pascoe <c.pascoe@itee.uq.edu.au>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:03:43 -02:00
Andrew Morton
39b43b1a61 V4L/DVB (6808): git-dvb: fix build in drivers/media/dvb/frontends/tda18271.h
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:03:34 -02:00
Michael Krufky
e435f95ce6 V4L/DVB (6801): tda18271: pass i2c gate configuration into tda18271_attach()
If we pass TDA18271_GATE_DIGITAL into tda18271_attach(), it will always try to
use the digital demodulator's i2c gate.

If we pass TDA18271_GATE_ANALOG into tda18271_attach(), it will always try to
use the analog demodulator's i2c gate.

If we pass TDA18271_GATE_AUTO into tda18271_attach(), it will try to use the
analog demodulator's i2c gate when tuning in analog mode, and it will try to
use the digital demodulator's i2c gate when tuning in digital mode.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-01-25 19:03:32 -02:00