summaryrefslogtreecommitdiff
path: root/linux/drivers/media
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2009-08-30 19:04:22 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-08-30 19:04:22 -0300
commita5b13f77feaaaabb74c8b7e2d90f2ca737be047c (patch)
treeeee61a76ea9af368a222b86bb30a6aa047f8693e /linux/drivers/media
parentc83c64ea49e5de51e8b0a6245c1f31c040d97e9d (diff)
parent502293205239f8ec860b4c33187cd7a3fc0f421c (diff)
downloadmediapointer-dvb-s2-a5b13f77feaaaabb74c8b7e2d90f2ca737be047c.tar.gz
mediapointer-dvb-s2-a5b13f77feaaaabb74c8b7e2d90f2ca737be047c.tar.bz2
merge: http://linuxtv.org/hg/~gliakhovetski/v4l-dvb
From: Mauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'linux/drivers/media')
-rw-r--r--linux/drivers/media/common/ir-keymaps.c127
-rw-r--r--linux/drivers/media/common/tuners/tda18271-fe.c20
-rw-r--r--linux/drivers/media/common/tuners/tda18271-priv.h20
-rw-r--r--linux/drivers/media/common/tuners/tda18271.h3
-rw-r--r--linux/drivers/media/common/tuners/tuner-simple.c6
-rw-r--r--linux/drivers/media/dvb/frontends/cx22700.c2
-rw-r--r--linux/drivers/media/video/saa7134/saa7134-cards.c43
-rw-r--r--linux/drivers/media/video/saa7134/saa7134-input.c1
-rw-r--r--linux/drivers/media/video/saa7134/saa7134.h1
9 files changed, 142 insertions, 81 deletions
diff --git a/linux/drivers/media/common/ir-keymaps.c b/linux/drivers/media/common/ir-keymaps.c
index c9f204048..7ab7d0586 100644
--- a/linux/drivers/media/common/ir-keymaps.c
+++ b/linux/drivers/media/common/ir-keymaps.c
@@ -49,19 +49,19 @@ IR_KEYTAB_TYPE ir_codes_proteus_2309[IR_KEYTAB_SIZE] = {
[0x08] = KEY_8,
[0x09] = KEY_9,
- [0x5c] = KEY_POWER, /* power */
- [0x20] = KEY_ZOOM, /* full screen */
- [0x0f] = KEY_BACKSPACE, /* recall */
- [0x1b] = KEY_ENTER, /* mute */
- [0x41] = KEY_RECORD, /* record */
- [0x43] = KEY_STOP, /* stop */
+ [0x5c] = KEY_POWER, /* power */
+ [0x20] = KEY_ZOOM, /* full screen */
+ [0x0f] = KEY_BACKSPACE, /* recall */
+ [0x1b] = KEY_ENTER, /* mute */
+ [0x41] = KEY_RECORD, /* record */
+ [0x43] = KEY_STOP, /* stop */
[0x16] = KEY_S,
- [0x1a] = KEY_POWER2, /* off */
+ [0x1a] = KEY_POWER2, /* off */
[0x2e] = KEY_RED,
- [0x1f] = KEY_DOWN, /* channel - */
- [0x1c] = KEY_UP, /* channel + */
- [0x10] = KEY_LEFT, /* volume - */
- [0x1e] = KEY_RIGHT, /* volume + */
+ [0x1f] = KEY_CHANNELDOWN, /* channel - */
+ [0x1c] = KEY_CHANNELUP, /* channel + */
+ [0x10] = KEY_VOLUMEDOWN, /* volume - */
+ [0x1e] = KEY_VOLUMEUP, /* volume + */
[0x14] = KEY_F1,
};
EXPORT_SYMBOL_GPL(ir_codes_proteus_2309);
@@ -331,7 +331,7 @@ EXPORT_SYMBOL_GPL(ir_codes_pixelview);
present on PV MPEG 8000GT
*/
IR_KEYTAB_TYPE ir_codes_pixelview_new[IR_KEYTAB_SIZE] = {
- [0x3c] = KEY_PAUSE, /* Timeshift */
+ [0x3c] = KEY_TIME, /* Timeshift */
[0x12] = KEY_POWER,
[0x3d] = KEY_1,
@@ -356,7 +356,7 @@ IR_KEYTAB_TYPE ir_codes_pixelview_new[IR_KEYTAB_SIZE] = {
[0x14] = KEY_VOLUMEDOWN,
[0x13] = KEY_ZOOM,
- [0x19] = KEY_SHUFFLE, /* SNAPSHOT */
+ [0x19] = KEY_CAMERA, /* SNAPSHOT */
[0x1a] = KEY_SEARCH, /* scan */
[0x37] = KEY_REWIND, /* << */
@@ -492,7 +492,7 @@ IR_KEYTAB_TYPE ir_codes_iodata_bctv7e[IR_KEYTAB_SIZE] = {
[0x78] = KEY_9,
[0x10] = KEY_L, /* Live */
- [0x08] = KEY_T, /* Time Shift */
+ [0x08] = KEY_TIME, /* Time Shift */
[0x18] = KEY_PLAYPAUSE, /* Play */
@@ -595,7 +595,7 @@ IR_KEYTAB_TYPE ir_codes_msi_tvanywhere[IR_KEYTAB_SIZE] = {
[0x0c] = KEY_MUTE,
[0x0f] = KEY_SCREEN, /* Full Screen */
[0x10] = KEY_FN, /* Funtion */
- [0x11] = KEY_T, /* Time shift */
+ [0x11] = KEY_TIME, /* Time shift */
[0x12] = KEY_POWER,
[0x13] = KEY_MEDIA, /* MTS */
[0x14] = KEY_SLOW,
@@ -683,7 +683,7 @@ IR_KEYTAB_TYPE ir_codes_msi_tvanywhere_plus[IR_KEYTAB_SIZE] = {
[0x0f] = KEY_CLOSE, /* Minimize */
[0x19] = KEY_ZOOM, /* Zoom */
- [0x1a] = KEY_SHUFFLE, /* Snapshot */
+ [0x1a] = KEY_CAMERA, /* Snapshot */
[0x0d] = KEY_LANGUAGE, /* MTS */
[0x14] = KEY_VOLUMEDOWN,/* Vol- */
@@ -1089,7 +1089,7 @@ IR_KEYTAB_TYPE ir_codes_eztv[IR_KEYTAB_SIZE] = {
[0x2b] = KEY_RECORD, /* recording */
[0x2c] = KEY_STOP, /* stop */
[0x2d] = KEY_PLAY, /* play */
- [0x2e] = KEY_SHUFFLE, /* snapshot / shuffle */
+ [0x2e] = KEY_CAMERA, /* snapshot / shuffle */
[0x00] = KEY_0,
[0x05] = KEY_1,
@@ -1140,7 +1140,7 @@ IR_KEYTAB_TYPE ir_codes_avermedia[IR_KEYTAB_SIZE] = {
[0x2a] = KEY_SEARCH, /* AUTOSCAN */
[0x1a] = KEY_SLEEP, /* FREEZE */
- [0x3a] = KEY_SHUFFLE, /* SNAPSHOT */
+ [0x3a] = KEY_CAMERA, /* SNAPSHOT */
[0x0a] = KEY_MUTE, /* MUTE */
[0x26] = KEY_RECORD, /* RECORD */
@@ -1270,11 +1270,11 @@ IR_KEYTAB_TYPE ir_codes_manli[IR_KEYTAB_SIZE] = {
* 0x015 *
* Down *
* */
- [0x0b] = KEY_UP, /*XXX KEY_SCROLLUP? */
- [0x18] = KEY_LEFT, /*XXX KEY_BACK? */
+ [0x0b] = KEY_UP,
+ [0x18] = KEY_LEFT,
[0x16] = KEY_OK, /*XXX KEY_SELECT? KEY_ENTER? */
- [0x0c] = KEY_RIGHT, /*XXX KEY_FORWARD? */
- [0x15] = KEY_DOWN, /*XXX KEY_SCROLLDOWN? */
+ [0x0c] = KEY_RIGHT,
+ [0x15] = KEY_DOWN,
/* 0x11 0x0d *
* TV/AV MODE *
@@ -1293,7 +1293,7 @@ IR_KEYTAB_TYPE ir_codes_manli[IR_KEYTAB_SIZE] = {
[0x0f] = KEY_AUDIO,
[0x1b] = KEY_VOLUMEUP,
[0x1a] = KEY_CHANNELUP,
- [0x0e] = KEY_SLEEP, /*XXX maybe KEY_PAUSE */
+ [0x0e] = KEY_TIME,
[0x1f] = KEY_VOLUMEDOWN,
[0x1e] = KEY_CHANNELDOWN,
@@ -1301,7 +1301,7 @@ IR_KEYTAB_TYPE ir_codes_manli[IR_KEYTAB_SIZE] = {
* MUTE SNAPSHOT*
* */
[0x13] = KEY_MUTE,
- [0x19] = KEY_RECORD, /*XXX*/
+ [0x19] = KEY_CAMERA,
/* 0x1d unused ? */
};
@@ -1331,8 +1331,8 @@ IR_KEYTAB_TYPE ir_codes_gotview7135[IR_KEYTAB_SIZE] = {
[0x0c] = KEY_VOLUMEDOWN,
[0x28] = KEY_VOLUMEUP,
[0x08] = KEY_MUTE,
- [0x26] = KEY_SEARCH, /*SCAN*/
- [0x3f] = KEY_SHUFFLE, /* SNAPSHOT */
+ [0x26] = KEY_SEARCH, /* SCAN */
+ [0x3f] = KEY_CAMERA, /* SNAPSHOT */
[0x12] = KEY_RECORD,
[0x32] = KEY_STOP,
[0x3c] = KEY_PLAY,
@@ -1343,7 +1343,7 @@ IR_KEYTAB_TYPE ir_codes_gotview7135[IR_KEYTAB_SIZE] = {
[0x2a] = KEY_F21, /* LIVE TIMESHIFT */
[0x0e] = KEY_F22, /* MIN TIMESHIFT */
- [0x1e] = KEY_F23, /* TIMESHIFT */
+ [0x1e] = KEY_TIME, /* TIMESHIFT */
[0x38] = KEY_F24, /* NORMAL TIMESHIFT */
};
EXPORT_SYMBOL_GPL(ir_codes_gotview7135);
@@ -1384,8 +1384,8 @@ IR_KEYTAB_TYPE ir_codes_purpletv[IR_KEYTAB_SIZE] = {
[0x46] = KEY_PLAY,
[0x45] = KEY_PAUSE, /* Pause */
[0x44] = KEY_STOP,
+ [0x43] = KEY_TIME, /* Time Shift */
#if 0
- [0x43] = KEY_T, /* Time Shift */
[0x47] = KEY_Y, /* Time Shift OFF */
[0x4a] = KEY_O, /* TOP */
#endif
@@ -1424,9 +1424,9 @@ IR_KEYTAB_TYPE ir_codes_pctv_sedna[IR_KEYTAB_SIZE] = {
[0x13] = KEY_MUTE,
[0x15] = KEY_CHANNELDOWN,
[0x18] = KEY_VOLUMEDOWN,
- [0x19] = KEY_SHUFFLE, /* Snapshot */
+ [0x19] = KEY_CAMERA, /* Snapshot */
[0x1a] = KEY_NEXTSONG,
- [0x1b] = KEY_TEXT, /* Time Shift */
+ [0x1b] = KEY_TIME, /* Time Shift */
[0x1c] = KEY_RADIO, /* FM Radio */
[0x1d] = KEY_RECORD,
[0x1e] = KEY_PAUSE,
@@ -1595,7 +1595,7 @@ IR_KEYTAB_TYPE ir_codes_winfast[IR_KEYTAB_SIZE] = {
[0x22] = KEY_PREVIOUS,
[0x23] = KEY_PLAYPAUSE,
[0x24] = KEY_NEXT,
- [0x25] = KEY_ARCHIVE, /* Time Shifting */
+ [0x25] = KEY_TIME, /* Time Shifting */
[0x26] = KEY_STOP,
[0x27] = KEY_RECORD,
[0x28] = KEY_SAVE, /* Screenshot */
@@ -1644,8 +1644,6 @@ IR_KEYTAB_TYPE ir_codes_pinnacle_color[IR_KEYTAB_SIZE] = {
[0x23] = KEY_RIGHT,
[0x0d] = KEY_SELECT,
-
-
[0x08] = KEY_BACK,
[0x07] = KEY_REFRESH,
@@ -1757,11 +1755,11 @@ IR_KEYTAB_TYPE ir_codes_npgtech[IR_KEYTAB_SIZE] = {
[0x03] = KEY_BRIGHTNESSDOWN,
[0x28] = KEY_AUDIO,
- [0x3c] = KEY_UP,
- [0x3f] = KEY_LEFT,
+ [0x3c] = KEY_CHANNELUP,
+ [0x3f] = KEY_VOLUMEDOWN,
[0x2e] = KEY_MUTE,
- [0x3b] = KEY_RIGHT,
- [0x00] = KEY_DOWN,
+ [0x3b] = KEY_VOLUMEUP,
+ [0x00] = KEY_CHANNELDOWN,
[0x07] = KEY_BRIGHTNESSUP,
[0x2c] = KEY_TEXT,
@@ -1965,17 +1963,10 @@ IR_KEYTAB_TYPE ir_codes_encore_enltv[IR_KEYTAB_SIZE] = {
[0x14] = KEY_HOME, /* win start menu */
[0x15] = KEY_EXIT, /* exit */
-#if 0
[0x16] = KEY_CHANNELUP, /* UP */
[0x12] = KEY_CHANNELDOWN, /* DOWN */
[0x0c] = KEY_VOLUMEUP, /* RIGHT */
[0x17] = KEY_VOLUMEDOWN, /* LEFT */
-#else
- [0x16] = KEY_UP,
- [0x12] = KEY_DOWN,
- [0x0c] = KEY_RIGHT,
- [0x17] = KEY_LEFT,
-#endif
[0x18] = KEY_ENTER, /* OK */
@@ -2058,7 +2049,7 @@ IR_KEYTAB_TYPE ir_codes_encore_enltv2[IR_KEYTAB_SIZE] = {
[0x72] = KEY_CHANNELDOWN,
[0x41] = KEY_RECORD,
- [0x51] = KEY_SHUFFLE, /* Snapshot */
+ [0x51] = KEY_CAMERA, /* Snapshot */
[0x75] = KEY_TIME, /* Timeshift */
[0x71] = KEY_TV2, /* PIP */
@@ -2268,11 +2259,11 @@ IR_KEYTAB_TYPE ir_codes_behold[IR_KEYTAB_SIZE] = {
* 0x015 *
* Down *
* */
- [0x0b] = KEY_CHANNELUP, /* XXX KEY_UP */
- [0x18] = KEY_VOLUMEDOWN, /* XXX KEY_LEFT */
+ [0x0b] = KEY_CHANNELUP,
+ [0x18] = KEY_VOLUMEDOWN,
[0x16] = KEY_OK, /* XXX KEY_ENTER */
- [0x0c] = KEY_VOLUMEUP, /* XXX KEY_RIGHT */
- [0x15] = KEY_CHANNELDOWN, /* XXX KEY_DOWN */
+ [0x0c] = KEY_VOLUMEUP,
+ [0x15] = KEY_CHANNELDOWN,
/* 0x11 0x0d *
* MUTE INFO *
@@ -2306,7 +2297,7 @@ IR_KEYTAB_TYPE ir_codes_behold[IR_KEYTAB_SIZE] = {
* FREEZE SNAPSHOT *
* */
[0x58] = KEY_SLOW,
- [0x5c] = KEY_SAVE,
+ [0x5c] = KEY_CAMERA,
};
EXPORT_SYMBOL_GPL(ir_codes_behold);
@@ -2346,7 +2337,7 @@ IR_KEYTAB_TYPE ir_codes_behold_columbus[IR_KEYTAB_SIZE] = {
[0x04] = KEY_4,
[0x05] = KEY_5,
[0x06] = KEY_6,
- [0x19] = KEY_BOOKMARKS, /* Snapshot key */
+ [0x19] = KEY_CAMERA, /* Snapshot key */
[0x07] = KEY_7,
[0x08] = KEY_8,
[0x09] = KEY_9,
@@ -2364,7 +2355,7 @@ IR_KEYTAB_TYPE ir_codes_behold_columbus[IR_KEYTAB_SIZE] = {
* Timeshift Record ChannelDown VolumeDown *
* */
- [0x1B] = KEY_REWIND,
+ [0x1B] = KEY_TIME,
[0x1D] = KEY_RECORD,
[0x15] = KEY_CHANNELDOWN,
[0x18] = KEY_VOLUMEDOWN,
@@ -2417,7 +2408,7 @@ IR_KEYTAB_TYPE ir_codes_genius_tvgo_a11mce[IR_KEYTAB_SIZE] = {
an alternate name written */
[0x1e] = KEY_UP, /* Video Setting */
[0x0a] = KEY_DOWN, /* Video Default */
- [0x05] = KEY_LEFT, /* Snapshot */
+ [0x05] = KEY_CAMERA, /* Snapshot */
[0x0c] = KEY_RIGHT, /* Hide Panel */
/* Four buttons without label */
[0x49] = KEY_RED,
@@ -2450,10 +2441,10 @@ IR_KEYTAB_TYPE ir_codes_powercolor_real_angel[IR_KEYTAB_SIZE] = {
[0x13] = KEY_BRIGHTNESSDOWN,
[0x2b] = KEY_MODE, /* stereo/mono */
[0x2c] = KEY_TEXT, /* teletext */
- [0x20] = KEY_UP, /* channel up */
- [0x21] = KEY_DOWN, /* channel down */
- [0x10] = KEY_RIGHT, /* volume up */
- [0x11] = KEY_LEFT, /* volume down */
+ [0x20] = KEY_CHANNELUP, /* channel up */
+ [0x21] = KEY_CHANNELDOWN, /* channel down */
+ [0x10] = KEY_VOLUMEUP, /* volume up */
+ [0x11] = KEY_VOLUMEDOWN, /* volume down */
[0x0d] = KEY_MUTE,
[0x1f] = KEY_RECORD,
[0x17] = KEY_PLAY,
@@ -2462,7 +2453,7 @@ IR_KEYTAB_TYPE ir_codes_powercolor_real_angel[IR_KEYTAB_SIZE] = {
[0x27] = KEY_FASTFORWARD,
[0x26] = KEY_REWIND,
[0x1e] = KEY_SEARCH, /* autoscan */
- [0x0e] = KEY_SHUFFLE, /* snapshot */
+ [0x0e] = KEY_CAMERA, /* snapshot */
[0x2d] = KEY_SETUP,
[0x0f] = KEY_SCREEN, /* full screen */
[0x14] = KEY_RADIO, /* FM radio */
@@ -2516,7 +2507,7 @@ IR_KEYTAB_TYPE ir_codes_kworld_plus_tv_analog[IR_KEYTAB_SIZE] = {
Also, it is not related to the time between keyup
and keydown.
*/
- [0x19] = KEY_PAUSE, /* Timeshift */
+ [0x19] = KEY_TIME, /* Timeshift */
[0x1a] = KEY_STOP,
[0x1b] = KEY_RECORD,
@@ -2524,7 +2515,7 @@ IR_KEYTAB_TYPE ir_codes_kworld_plus_tv_analog[IR_KEYTAB_SIZE] = {
[0x15] = KEY_AUDIO, /* ((*)) */
[0x0f] = KEY_ZOOM,
- [0x1c] = KEY_SHUFFLE, /* snapshot */
+ [0x1c] = KEY_CAMERA, /* snapshot */
[0x18] = KEY_RED, /* B */
[0x23] = KEY_GREEN, /* C */
@@ -2640,7 +2631,7 @@ IR_KEYTAB_TYPE ir_codes_encore_enltv_fm53[IR_KEYTAB_SIZE] = {
[0x40] = KEY_LAST, /* recall */
[0x02] = KEY_MODE, /* TV/AV */
- [0x05] = KEY_SHUFFLE, /* SNAPSHOT */
+ [0x05] = KEY_CAMERA, /* SNAPSHOT */
[0x4c] = KEY_CHANNELUP, /* UP */
[0x00] = KEY_CHANNELDOWN, /* DOWN */
@@ -2651,11 +2642,11 @@ IR_KEYTAB_TYPE ir_codes_encore_enltv_fm53[IR_KEYTAB_SIZE] = {
[0x54] = KEY_RECORD,
[0x4d] = KEY_PLAY, /* pause */
- [0x1e] = KEY_UP, /* video setting */
+ [0x1e] = KEY_MENU, /* video setting */
[0x0e] = KEY_RIGHT, /* <- */
[0x1a] = KEY_LEFT, /* -> */
- [0x0a] = KEY_DOWN, /* video default */
+ [0x0a] = KEY_CLEAR, /* video default */
[0x0c] = KEY_ZOOM, /* hide pannel */
[0x47] = KEY_SLEEP, /* shutdown */
};
@@ -2687,7 +2678,7 @@ IR_KEYTAB_TYPE ir_codes_real_audio_220_32_keys[IR_KEYTAB_SIZE] = {
[0x0d] = KEY_AUDIO, /* stereo */
[0x0f] = KEY_PREVIOUS, /* Prev */
- [0x1b] = KEY_PAUSE, /* Timeshift */
+ [0x1b] = KEY_TIME, /* Timeshift */
[0x1a] = KEY_NEXT, /* Next */
[0x0e] = KEY_STOP,
@@ -2696,7 +2687,7 @@ IR_KEYTAB_TYPE ir_codes_real_audio_220_32_keys[IR_KEYTAB_SIZE] = {
[0x1d] = KEY_RECORD,
[0x13] = KEY_MUTE,
- [0x19] = KEY_SHUFFLE, /* Snapshot */
+ [0x19] = KEY_CAMERA, /* Snapshot */
};
EXPORT_SYMBOL_GPL(ir_codes_real_audio_220_32_keys);
@@ -2748,8 +2739,8 @@ IR_KEYTAB_TYPE ir_codes_dm1105_nec[IR_KEYTAB_SIZE] = {
[0x18] = KEY_8,
[0x19] = KEY_9,
[0x10] = KEY_0,
- [0x1c] = KEY_PAGEUP, /* ch+ */
- [0x0f] = KEY_PAGEDOWN, /* ch- */
+ [0x1c] = KEY_CHANNELUP, /* ch+ */
+ [0x0f] = KEY_CHANNELDOWN, /* ch- */
[0x1a] = KEY_VOLUMEUP, /* vol+ */
[0x0e] = KEY_VOLUMEDOWN, /* vol- */
[0x04] = KEY_RECORD, /* rec */
@@ -2880,7 +2871,7 @@ IR_KEYTAB_TYPE ir_codes_videomate_s350[IR_KEYTAB_SIZE] = {
[0x29] = KEY_CHANNEL, /* SURF */
[0x2b] = KEY_A,
[0x2c] = KEY_B,
- [0x2f] = KEY_SHUFFLE, /* Snapshot */
+ [0x2f] = KEY_CAMERA, /* Snapshot */
[0x23] = KEY_RADIO,
[0x02] = KEY_PREVIOUSSONG,
[0x06] = KEY_NEXTSONG,
diff --git a/linux/drivers/media/common/tuners/tda18271-fe.c b/linux/drivers/media/common/tuners/tda18271-fe.c
index 85e30af31..6c71b0a16 100644
--- a/linux/drivers/media/common/tuners/tda18271-fe.c
+++ b/linux/drivers/media/common/tuners/tda18271-fe.c
@@ -28,7 +28,7 @@ module_param_named(debug, tda18271_debug, int, 0644);
MODULE_PARM_DESC(debug, "set debug level "
"(info=1, map=2, reg=4, adv=8, cal=16 (or-able))");
-static int tda18271_cal_on_startup;
+static int tda18271_cal_on_startup = -1;
module_param_named(cal, tda18271_cal_on_startup, int, 0644);
MODULE_PARM_DESC(cal, "perform RF tracking filter calibration on startup");
@@ -1193,10 +1193,25 @@ struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr,
case 0:
goto fail;
case 1:
+ {
/* new tuner instance */
+ int rf_cal_on_startup;
+
priv->gate = (cfg) ? cfg->gate : TDA18271_GATE_AUTO;
priv->role = (cfg) ? cfg->role : TDA18271_MASTER;
priv->config = (cfg) ? cfg->config : 0;
+
+ /* tda18271_cal_on_startup == -1 when cal
+ * module option is unset */
+ if (tda18271_cal_on_startup == -1) {
+ /* honor attach-time configuration */
+ rf_cal_on_startup =
+ ((cfg) && (cfg->rf_cal_on_startup)) ? 1 : 0;
+ } else {
+ /* module option overrides attach configuration */
+ rf_cal_on_startup = tda18271_cal_on_startup;
+ }
+
priv->cal_initialized = false;
mutex_init(&priv->lock);
@@ -1214,11 +1229,12 @@ struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr,
mutex_lock(&priv->lock);
tda18271_init_regs(fe);
- if ((tda18271_cal_on_startup) && (priv->id == TDA18271HDC2))
+ if ((rf_cal_on_startup) && (priv->id == TDA18271HDC2))
tda18271c2_rf_cal_init(fe);
mutex_unlock(&priv->lock);
break;
+ }
default:
/* existing tuner instance */
fe->tuner_priv = priv;
diff --git a/linux/drivers/media/common/tuners/tda18271-priv.h b/linux/drivers/media/common/tuners/tda18271-priv.h
index f3adbb212..e6aa1f47f 100644
--- a/linux/drivers/media/common/tuners/tda18271-priv.h
+++ b/linux/drivers/media/common/tuners/tda18271-priv.h
@@ -138,17 +138,17 @@ extern int tda18271_debug;
#define tda_printk(kern, fmt, arg...) \
printk(kern "%s: " fmt, __func__, ##arg)
-#define dprintk(kern, lvl, fmt, arg...) do {\
+#define tda_dprintk(lvl, fmt, arg...) do {\
if (tda18271_debug & lvl) \
- tda_printk(kern, fmt, ##arg); } while (0)
-
-#define tda_info(fmt, arg...) printk(KERN_INFO fmt, ##arg)
-#define tda_warn(fmt, arg...) tda_printk(KERN_WARNING, fmt, ##arg)
-#define tda_err(fmt, arg...) tda_printk(KERN_ERR, fmt, ##arg)
-#define tda_dbg(fmt, arg...) dprintk(KERN_DEBUG, DBG_INFO, fmt, ##arg)
-#define tda_map(fmt, arg...) dprintk(KERN_DEBUG, DBG_MAP, fmt, ##arg)
-#define tda_reg(fmt, arg...) dprintk(KERN_DEBUG, DBG_REG, fmt, ##arg)
-#define tda_cal(fmt, arg...) dprintk(KERN_DEBUG, DBG_CAL, fmt, ##arg)
+ tda_printk(KERN_DEBUG, fmt, ##arg); } while (0)
+
+#define tda_info(fmt, arg...) printk(KERN_INFO fmt, ##arg)
+#define tda_warn(fmt, arg...) tda_printk(KERN_WARNING, fmt, ##arg)
+#define tda_err(fmt, arg...) tda_printk(KERN_ERR, fmt, ##arg)
+#define tda_dbg(fmt, arg...) tda_dprintk(DBG_INFO, fmt, ##arg)
+#define tda_map(fmt, arg...) tda_dprintk(DBG_MAP, fmt, ##arg)
+#define tda_reg(fmt, arg...) tda_dprintk(DBG_REG, fmt, ##arg)
+#define tda_cal(fmt, arg...) tda_dprintk(DBG_CAL, fmt, ##arg)
#define tda_fail(ret) \
({ \
diff --git a/linux/drivers/media/common/tuners/tda18271.h b/linux/drivers/media/common/tuners/tda18271.h
index 53a9892a1..71bac9593 100644
--- a/linux/drivers/media/common/tuners/tda18271.h
+++ b/linux/drivers/media/common/tuners/tda18271.h
@@ -77,6 +77,9 @@ struct tda18271_config {
/* use i2c gate provided by analog or digital demod */
enum tda18271_i2c_gate gate;
+ /* force rf tracking filter calibration on startup */
+ unsigned int rf_cal_on_startup:1;
+
/* some i2c providers cant write all 39 registers at once */
unsigned int small_i2c:1;
diff --git a/linux/drivers/media/common/tuners/tuner-simple.c b/linux/drivers/media/common/tuners/tuner-simple.c
index 2ac1c8edb..4bac1d0c6 100644
--- a/linux/drivers/media/common/tuners/tuner-simple.c
+++ b/linux/drivers/media/common/tuners/tuner-simple.c
@@ -145,6 +145,8 @@ static inline int tuner_stereo(const int type, const int status)
case TUNER_LG_NTSC_TAPE:
case TUNER_TCL_MF02GIP_5N:
return ((status & TUNER_SIGNAL) == TUNER_STEREO_MK3);
+ case TUNER_PHILIPS_FM1216MK5:
+ return status | TUNER_STEREO;
default:
return status & TUNER_STEREO;
}
@@ -515,6 +517,10 @@ static int simple_radio_bandswitch(struct dvb_frontend *fe, u8 *buffer)
case TUNER_TCL_MF02GIP_5N:
buffer[3] = 0x19;
break;
+ case TUNER_PHILIPS_FM1216MK5:
+ buffer[2] = 0x88;
+ buffer[3] = 0x09;
+ break;
case TUNER_TNF_5335MF:
buffer[3] = 0x11;
break;
diff --git a/linux/drivers/media/dvb/frontends/cx22700.c b/linux/drivers/media/dvb/frontends/cx22700.c
index fbd838eca..5fbc0fc37 100644
--- a/linux/drivers/media/dvb/frontends/cx22700.c
+++ b/linux/drivers/media/dvb/frontends/cx22700.c
@@ -155,7 +155,7 @@ static int cx22700_set_tps (struct cx22700_state *state, struct dvb_ofdm_paramet
p->hierarchy_information > HIERARCHY_4)
return -EINVAL;
- if (p->bandwidth < BANDWIDTH_8_MHZ && p->bandwidth > BANDWIDTH_6_MHZ)
+ if (p->bandwidth < BANDWIDTH_8_MHZ || p->bandwidth > BANDWIDTH_6_MHZ)
return -EINVAL;
if (p->bandwidth == BANDWIDTH_7_MHZ)
diff --git a/linux/drivers/media/video/saa7134/saa7134-cards.c b/linux/drivers/media/video/saa7134/saa7134-cards.c
index c401a37ea..cdb04fdbb 100644
--- a/linux/drivers/media/video/saa7134/saa7134-cards.c
+++ b/linux/drivers/media/video/saa7134/saa7134-cards.c
@@ -1364,6 +1364,42 @@ struct saa7134_board saa7134_boards[] = {
.amux = LINE1,
},
},
+ [SAA7134_BOARD_AVERMEDIA_STUDIO_505] = {
+ /* Vasiliy Temnikov <vaka@newmail.ru> */
+ .name = "AverMedia AverTV Studio 505",
+ .audio_clock = 0x00187de7,
+ .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
+ .radio_type = UNSET,
+ .tuner_addr = ADDR_UNSET,
+ .radio_addr = ADDR_UNSET,
+ .tda9887_conf = TDA9887_PRESENT,
+ .inputs = { {
+ .name = name_tv,
+ .vmux = 1,
+ .amux = LINE2,
+ .tv = 1,
+ }, {
+ .name = name_comp1,
+ .vmux = 0,
+ .amux = LINE2,
+ }, {
+ .name = name_comp2,
+ .vmux = 3,
+ .amux = LINE2,
+ },{
+ .name = name_svideo,
+ .vmux = 8,
+ .amux = LINE2,
+ } },
+ .radio = {
+ .name = name_radio,
+ .amux = LINE2,
+ },
+ .mute = {
+ .name = name_mute,
+ .amux = LINE1,
+ },
+ },
[SAA7134_BOARD_UPMOST_PURPLE_TV] = {
.name = "UPMOST PURPLE TV",
.audio_clock = 0x00187de7,
@@ -5440,6 +5476,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
.vendor = PCI_VENDOR_ID_PHILIPS,
.device = PCI_DEVICE_ID_PHILIPS_SAA7130,
.subvendor = 0x1461, /* Avermedia Technologies Inc */
+ .subdevice = 0xa115,
+ .driver_data = SAA7134_BOARD_AVERMEDIA_STUDIO_505,
+ }, {
+ .vendor = PCI_VENDOR_ID_PHILIPS,
+ .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
+ .subvendor = 0x1461, /* Avermedia Technologies Inc */
.subdevice = 0x2108,
.driver_data = SAA7134_BOARD_AVERMEDIA_305,
},{
@@ -6607,6 +6649,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
case SAA7134_BOARD_KWORLD_VSTREAM_XPERT:
case SAA7134_BOARD_KWORLD_XPERT:
case SAA7134_BOARD_AVERMEDIA_STUDIO_305:
+ case SAA7134_BOARD_AVERMEDIA_STUDIO_505:
case SAA7134_BOARD_AVERMEDIA_305:
case SAA7134_BOARD_AVERMEDIA_STUDIO_307:
case SAA7134_BOARD_AVERMEDIA_307:
diff --git a/linux/drivers/media/video/saa7134/saa7134-input.c b/linux/drivers/media/video/saa7134/saa7134-input.c
index 146ac816a..8dbad5dbe 100644
--- a/linux/drivers/media/video/saa7134/saa7134-input.c
+++ b/linux/drivers/media/video/saa7134/saa7134-input.c
@@ -486,6 +486,7 @@ int saa7134_input_init1(struct saa7134_dev *dev)
case SAA7134_BOARD_AVERMEDIA_305:
case SAA7134_BOARD_AVERMEDIA_307:
case SAA7134_BOARD_AVERMEDIA_STUDIO_305:
+ case SAA7134_BOARD_AVERMEDIA_STUDIO_505:
case SAA7134_BOARD_AVERMEDIA_STUDIO_307:
case SAA7134_BOARD_AVERMEDIA_STUDIO_507:
case SAA7134_BOARD_AVERMEDIA_STUDIO_507UA:
diff --git a/linux/drivers/media/video/saa7134/saa7134.h b/linux/drivers/media/video/saa7134/saa7134.h
index c0757f8a1..b59e0f18b 100644
--- a/linux/drivers/media/video/saa7134/saa7134.h
+++ b/linux/drivers/media/video/saa7134/saa7134.h
@@ -294,6 +294,7 @@ struct saa7134_format {
#define SAA7134_BOARD_BEHOLD_609RDS_MK3 167
#define SAA7134_BOARD_BEHOLD_609RDS_MK5 168
#define SAA7134_BOARD_VIDEOMATE_S350 169
+#define SAA7134_BOARD_AVERMEDIA_STUDIO_505 170
#define SAA7134_MAXBOARDS 32
#define SAA7134_INPUT_MAX 8