projects/linux·commit 5564da7e

Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6

5564da7e · Linus Torvalds <[email protected]> · 2008-10-17 15:08:47 -07:00

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (95 commits)
  V4L/DVB (9296): Patch to remove warning message during cx88-dvb compilation
  V4L/DVB (9294): gspca: Add a stop sequence in t613.
  V4L/DVB (9293): gspca: Separate and fix the sensor dependant sequences in t613.
  V4L/DVB (9292): gspca: Call the control setting functions at init time in t613.
  V4L/DVB (9291): gspca: Do not set the white balance temperature by default in t613.
  V4L/DVB (9290): gspca: Adjust the sensor init sequences in t613.
  V4L/DVB (9289): gspca: Other sensor identified as om6802 in t613.
  V4L/DVB (9288): gspca: Write to the USB device and not USB interface in t613.
  V4L/DVB (9287): gspca: Change the name of the multi bytes write function in t613.
  V4L/DVB (9286): gspca: Compilation problem of gspca.c and the kernel version.
  V4L/DVB (9283): Correct typo and enable setting the gain on the mt9m111 sensor
  V4L/DVB (9282): Properly iterate the urbs when destroying them.
  V4L/DVB (9281): gspca: Add hflip and vflip to the po1030 sensor
  V4L/DVB (9280): gspca: Use the gspca debug macros
  V4L/DVB (9279): gspca: Correct some copyright headers
  V4L/DVB (9278): gspca: Remove the m5602_debug variable
  V4L/DVB (9277): gspca: propagate an error in m5602_start_transfer()
  V4L/DVB (9276): videobuf-dvb: two functions are now static
  V4L/DVB (9275): dvb: input data pointer of cx24116_writeregN() should be const
  V4L/DVB (9274): Remove spurious messages and turn into debug.
  ...
Commit
5564da7e9d12ea80745f66c8d2ec7bd00f3f94eb
Parents
58617d5e · d4305c68

Merge commit. Changes below are compared with the first parent: 58617d5e.

Changes

92 files changed · +4080 −4182

FileStatusAddDelContent
Documentation/video4linux/CARDLIST.au0828modified+1−1View file
Documentation/video4linux/CARDLIST.tunermodified+1−0View file
drivers/media/common/tuners/mxl5005s.cmodified+7−3View file
drivers/media/common/tuners/tuner-simple.cmodified+2−0View file
drivers/media/common/tuners/tuner-types.cmodified+32−1View file
drivers/media/common/tuners/xc5000.cmodified+37−36View file
drivers/media/common/tuners/xc5000.hmodified+4−4View file
drivers/media/dvb/dm1105/dm1105.cmodified+12−0View file
drivers/media/dvb/dvb-core/dvb_frontend.cmodified+85−49View file
drivers/media/dvb/dvb-core/dvb_frontend.hmodified+1−0View file
drivers/media/dvb/dvb-core/dvbdev.cmodified+3−0View file
drivers/media/dvb/dvb-core/dvbdev.hmodified+4−0View file
drivers/media/dvb/dvb-usb/dw2102.cmodified+12−0View file
drivers/media/dvb/frontends/cx22702.cmodified+306−200View file
drivers/media/dvb/frontends/cx22702.hmodified+11−9View file
drivers/media/dvb/frontends/cx24116.cmodified+318−271View file
drivers/media/dvb/frontends/cx24116.hmodified+11−10View file
drivers/media/dvb/frontends/cx24123.cmodified+128−100View file
drivers/media/dvb/frontends/cx24123.hmodified+5−5View file
drivers/media/dvb/frontends/s5h1409.cmodified+70−68View file
drivers/media/dvb/frontends/s5h1409.hmodified+8−7View file
drivers/media/dvb/frontends/s5h1411.cmodified+4−4View file
drivers/media/dvb/frontends/tda10048.cmodified+73−27View file
drivers/media/dvb/frontends/z0194a.hmodified+2−14View file
drivers/media/dvb/siano/sms-cards.cmodified+4−0View file
drivers/media/radio/Kconfigmodified+1−1View file
drivers/media/radio/radio-si470x.cmodified+97−137View file
drivers/media/video/adv7170.cmodified+57−194View file
drivers/media/video/adv7175.cmodified+60−183View file
drivers/media/video/au0828/au0828-cards.cmodified+4−1View file
drivers/media/video/au0828/au0828-core.cmodified+2−1View file
drivers/media/video/au0828/au0828-dvb.cmodified+2−1View file
drivers/media/video/bt819.cmodified+92−229View file
drivers/media/video/bt856.cmodified+49−169View file
drivers/media/video/bt866.cmodified+83−172View file
drivers/media/video/cx23885/cx23885-cards.cmodified+89−63View file
drivers/media/video/cx23885/cx23885-core.cmodified+156−120View file
drivers/media/video/cx23885/cx23885-dvb.cmodified+116−74View file
drivers/media/video/cx23885/cx23885-i2c.cmodified+24−23View file
drivers/media/video/cx23885/cx23885-video.cmodified+13−12View file
drivers/media/video/cx23885/cx23885.hmodified+11−15View file
drivers/media/video/cx88/cx88-cards.cmodified+51−7View file
drivers/media/video/cx88/cx88-core.cmodified+2−1View file
drivers/media/video/cx88/cx88-dvb.cmodified+273−132View file
drivers/media/video/cx88/cx88-i2c.cmodified+12−5View file
drivers/media/video/cx88/cx88-mpeg.cmodified+21−1View file
drivers/media/video/cx88/cx88-tvaudio.cmodified+11−0View file
drivers/media/video/cx88/cx88-video.cmodified+30−22View file
drivers/media/video/cx88/cx88.hmodified+5−2View file
drivers/media/video/gspca/gspca.cmodified+2−1View file
drivers/media/video/gspca/gspca.hmodified+0−1View file
drivers/media/video/gspca/m5602/m5602_bridge.hmodified+1−28View file
drivers/media/video/gspca/m5602/m5602_core.cmodified+21−25View file
drivers/media/video/gspca/m5602/m5602_mt9m111.cmodified+9−9View file
drivers/media/video/gspca/m5602/m5602_mt9m111.hmodified+3−4View file
drivers/media/video/gspca/m5602/m5602_ov9650.cmodified+20−20View file
drivers/media/video/gspca/m5602/m5602_ov9650.hmodified+1−2View file
drivers/media/video/gspca/m5602/m5602_po1030.cmodified+77−13View file
drivers/media/video/gspca/m5602/m5602_po1030.hmodified+38−8View file
drivers/media/video/gspca/m5602/m5602_s5k4aa.cmodified+11−11View file
drivers/media/video/gspca/m5602/m5602_s5k4aa.hmodified+1−2View file
drivers/media/video/gspca/m5602/m5602_s5k83a.cmodified+3−3View file
drivers/media/video/gspca/m5602/m5602_s5k83a.hmodified+1−3View file
drivers/media/video/gspca/m5602/m5602_sensor.hmodified+1−1View file
drivers/media/video/gspca/t613.cmodified+239−136View file
drivers/media/video/ivtv/ivtv-fileops.cmodified+8−7View file
drivers/media/video/ivtv/ivtv-ioctl.cmodified+16−2View file
drivers/media/video/ks0127.cmodified+212−264View file
drivers/media/video/saa7110.cmodified+64−178View file
drivers/media/video/saa7111.cmodified+58−166View file
drivers/media/video/saa7114.cmodified+108−256View file
drivers/media/video/saa7127.cmodified+1−1View file
drivers/media/video/saa7134/saa7134-dvb.cmodified+123−93View file
drivers/media/video/saa7134/saa7134.hmodified+1−1View file
drivers/media/video/saa7185.cmodified+50−160View file
drivers/media/video/sh_mobile_ceu_camera.cmodified+61−35View file
drivers/media/video/soc_camera_platform.cmodified+11−9View file
drivers/media/video/stk-webcam.cmodified+8−19View file
drivers/media/video/stk-webcam.hmodified+0−1View file
drivers/media/video/tveeprom.cmodified+1−1View file
drivers/media/video/videobuf-dvb.cmodified+167−34View file
drivers/media/video/vivi.cmodified+207−71View file
drivers/media/video/vpx3220.cmodified+91−237View file
drivers/media/video/zoran/zoran_card.cmodified+1−0View file
drivers/media/video/zoran/zoran_driver.cmodified+0−1View file
include/linux/dvb/frontend.hmodified+2−0View file
include/linux/i2c-id.hmodified+1−1View file
include/media/soc_camera_platform.hmodified+11−0View file
include/media/tuner.hmodified+1−0View file
include/media/v4l2-i2c-drv-legacy.hmodified+11−0View file
include/media/v4l2-i2c-drv.hmodified+11−0View file
include/media/videobuf-dvb.hmodified+25−4View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/video4linux/CARDLIST.au0828

View file
diff --git a/Documentation/video4linux/CARDLIST.au0828 b/Documentation/video4linux/CARDLIST.au0828
index aa05e5b..d5cb4ea 100644
--- a/Documentation/video4linux/CARDLIST.au0828
+++ b/Documentation/video4linux/CARDLIST.au0828
@@ -1,5 +1,5 @@
0 -> Unknown board (au0828)
- 1 -> Hauppauge HVR950Q (au0828) [2040:7200,2040:7210,2040:7217,2040:721b,2040:721f,2040:7280,0fd9:0008]
+ 1 -> Hauppauge HVR950Q (au0828) [2040:7200,2040:7210,2040:7217,2040:721b,2040:721e,2040:721f,2040:7280,0fd9:0008]
2 -> Hauppauge HVR850 (au0828) [2040:7240]
3 -> DViCO FusionHDTV USB (au0828) [0fe9:d620]
4 -> Hauppauge HVR950Q rev xxF8 (au0828) [2040:7201,2040:7211,2040:7281]

Documentation/video4linux/CARDLIST.tuner

View file
diff --git a/Documentation/video4linux/CARDLIST.tuner b/Documentation/video4linux/CARDLIST.tuner
index 30bbdda..691d2f3 100644
--- a/Documentation/video4linux/CARDLIST.tuner
+++ b/Documentation/video4linux/CARDLIST.tuner
@@ -75,3 +75,4 @@ tuner=73 - Samsung TCPG 6121P30A
tuner=75 - Philips TEA5761 FM Radio
tuner=76 - Xceive 5000 tuner
tuner=77 - TCL tuner MF02GIP-5N-E
+tuner=78 - Philips FMD1216MEX MK3 Hybrid Tuner

drivers/media/common/tuners/mxl5005s.c

View file
diff --git a/drivers/media/common/tuners/mxl5005s.c b/drivers/media/common/tuners/mxl5005s.c
index 227642b..a887824 100644
--- a/drivers/media/common/tuners/mxl5005s.c
+++ b/drivers/media/common/tuners/mxl5005s.c
@@ -3481,7 +3481,9 @@ static u16 MXL_ControlWrite_Group(struct dvb_frontend *fe, u16 controlNum,
}
ctrlVal = 0;
for (k = 0; k < state->MXL_Ctrl[i].size; k++)
- ctrlVal += state->MXL_Ctrl[i].val[k] * (1 << k);
+ ctrlVal += state->
+ MXL_Ctrl[i].val[k] *
+ (1 << k);
} else
return -1;
}
@@ -3581,7 +3583,7 @@ static void MXL_RegWriteBit(struct dvb_frontend *fe, u8 address, u8 bit,
static u32 MXL_Ceiling(u32 value, u32 resolution)
{
- return (value/resolution + (value % resolution > 0 ? 1 : 0));
+ return value / resolution + (value % resolution > 0 ? 1 : 0);
}
/* Retrieve the Initialzation Registers */
@@ -3910,7 +3912,10 @@ static int mxl5005s_writeregs(struct dvb_frontend *fe, u8 *addrtable,
static int mxl5005s_init(struct dvb_frontend *fe)
{
+ struct mxl5005s_state *state = fe->tuner_priv;
+
dprintk(1, "%s()\n", __func__);
+ state->current_mode = MXL_QAM;
return mxl5005s_reconfigure(fe, MXL_QAM, MXL5005S_BANDWIDTH_6MHZ);
}
@@ -4092,7 +4097,6 @@ struct dvb_frontend *mxl5005s_attach(struct dvb_frontend *fe,
state->frontend = fe;
state->config = config;
state->i2c = i2c;
- state->current_mode = MXL_QAM;
printk(KERN_INFO "MXL5005S: Attached at address 0x%02x\n",
config->i2c_address);

drivers/media/common/tuners/tuner-simple.c

View file
diff --git a/drivers/media/common/tuners/tuner-simple.c b/drivers/media/common/tuners/tuner-simple.c
index 2a1aac1..fb3f3b3 100644
--- a/drivers/media/common/tuners/tuner-simple.c
+++ b/drivers/media/common/tuners/tuner-simple.c
@@ -493,6 +493,7 @@ static int simple_radio_bandswitch(struct dvb_frontend *fe, u8 *buffer)
case TUNER_PHILIPS_FM1216ME_MK3:
case TUNER_PHILIPS_FM1236_MK3:
case TUNER_PHILIPS_FMD1216ME_MK3:
+ case TUNER_PHILIPS_FMD1216MEX_MK3:
case TUNER_LG_NTSC_TAPE:
case TUNER_PHILIPS_FM1256_IH3:
case TUNER_TCL_MF02GIP_5N:
@@ -767,6 +768,7 @@ static void simple_set_dvb(struct dvb_frontend *fe, u8 *buf,
switch (priv->type) {
case TUNER_PHILIPS_FMD1216ME_MK3:
+ case TUNER_PHILIPS_FMD1216MEX_MK3:
if (params->u.ofdm.bandwidth == BANDWIDTH_8_MHZ &&
params->frequency >= 158870000)
buf[3] |= 0x08;

drivers/media/common/tuners/tuner-types.c

View file
diff --git a/drivers/media/common/tuners/tuner-types.c b/drivers/media/common/tuners/tuner-types.c
index 04961a1..7c0bc06 100644
--- a/drivers/media/common/tuners/tuner-types.c
+++ b/drivers/media/common/tuners/tuner-types.c
@@ -946,7 +946,7 @@ static struct tuner_params tuner_tena_9533_di_params[] = {
},
};
-/* ------------ TUNER_PHILIPS_FMD1216ME_MK3 - Philips PAL ------------ */
+/* ------------ TUNER_PHILIPS_FMD1216ME(X)_MK3 - Philips PAL ------------ */
static struct tuner_range tuner_philips_fmd1216me_mk3_pal_ranges[] = {
{ 16 * 160.00 /*MHz*/, 0x86, 0x51, },
@@ -984,6 +984,27 @@ static struct tuner_params tuner_philips_fmd1216me_mk3_params[] = {
},
};
+static struct tuner_params tuner_philips_fmd1216mex_mk3_params[] = {
+ {
+ .type = TUNER_PARAM_TYPE_PAL,
+ .ranges = tuner_philips_fmd1216me_mk3_pal_ranges,
+ .count = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_pal_ranges),
+ .has_tda9887 = 1,
+ .port1_active = 1,
+ .port2_active = 1,
+ .port2_fm_high_sensitivity = 1,
+ .port2_invert_for_secam_lc = 1,
+ .port1_set_for_fm_mono = 1,
+ .radio_if = 1,
+ .fm_gain_normal = 1,
+ },
+ {
+ .type = TUNER_PARAM_TYPE_DIGITAL,
+ .ranges = tuner_philips_fmd1216me_mk3_dvb_ranges,
+ .count = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_dvb_ranges),
+ .iffreq = 16 * 36.125, /*MHz*/
+ },
+};
/* ------ TUNER_LG_TDVS_H06XF - LG INNOTEK / INFINEON ATSC ----- */
@@ -1663,6 +1684,16 @@ struct tunertype tuners[] = {
.params = tuner_tcl_mf02gip_5n_params,
.count = ARRAY_SIZE(tuner_tcl_mf02gip_5n_params),
},
+ [TUNER_PHILIPS_FMD1216MEX_MK3] = { /* Philips PAL */
+ .name = "Philips FMD1216MEX MK3 Hybrid Tuner",
+ .params = tuner_philips_fmd1216mex_mk3_params,
+ .count = ARRAY_SIZE(tuner_philips_fmd1216mex_mk3_params),
+ .min = 16 * 50.87,
+ .max = 16 * 858.00,
+ .stepsize = 166667,
+ .initdata = tua603x_agc112,
+ .sleepdata = (u8[]){ 4, 0x9c, 0x60, 0x85, 0x54 },
+ },
};
EXPORT_SYMBOL(tuners);

drivers/media/common/tuners/xc5000.c

View file
diff --git a/drivers/media/common/tuners/xc5000.c b/drivers/media/common/tuners/xc5000.c
index f9c2bb9..e12d13e 100644
--- a/drivers/media/common/tuners/xc5000.c
+++ b/drivers/media/common/tuners/xc5000.c
@@ -43,7 +43,7 @@ MODULE_PARM_DESC(init_fw, "Load firmware during driver initialization.");
static DEFINE_MUTEX(xc5000_list_mutex);
static LIST_HEAD(hybrid_tuner_instance_list);
-#define dprintk(level,fmt, arg...) if (debug >= level) \
+#define dprintk(level, fmt, arg...) if (debug >= level) \
printk(KERN_INFO "%s: " fmt, "xc5000", ## arg)
#define XC5000_DEFAULT_FIRMWARE "dvb-fe-xc5000-1.1.fw"
@@ -138,11 +138,11 @@ struct xc5000_priv {
immediately the length of the following transaction.
*/
-typedef struct {
+struct XC_TV_STANDARD {
char *Name;
u16 AudioMode;
u16 VideoMode;
-} XC_TV_STANDARD;
+};
/* Tuner standards */
#define MN_NTSC_PAL_BTSC 0
@@ -169,7 +169,7 @@ typedef struct {
#define FM_Radio_INPUT2 21
#define FM_Radio_INPUT1 22
-static XC_TV_STANDARD XC5000_Standard[MAX_TV_STANDARD] = {
+static struct XC_TV_STANDARD XC5000_Standard[MAX_TV_STANDARD] = {
{"M/N-NTSC/PAL-BTSC", 0x0400, 0x8020},
{"M/N-NTSC/PAL-A2", 0x0600, 0x8020},
{"M/N-NTSC/PAL-EIAJ", 0x0440, 0x8020},
@@ -183,7 +183,7 @@ static XC_TV_STANDARD XC5000_Standard[MAX_TV_STANDARD] = {
{"D/K-PAL-NICAM", 0x0E80, 0x8009},
{"D/K-PAL-MONO", 0x1478, 0x8009},
{"D/K-SECAM-A2 DK1", 0x1200, 0x8009},
- {"D/K-SECAM-A2 L/DK3",0x0E00, 0x8009},
+ {"D/K-SECAM-A2 L/DK3", 0x0E00, 0x8009},
{"D/K-SECAM-A2 MONO", 0x1478, 0x8009},
{"L-SECAM-NICAM", 0x8E82, 0x0009},
{"L'-SECAM-NICAM", 0x8E82, 0x4009},
@@ -307,9 +307,10 @@ static int xc_load_i2c_sequence(struct dvb_frontend *fe, const u8 *i2c_sequence)
unsigned int len, pos, index;
u8 buf[XC_MAX_I2C_WRITE_LENGTH];
- index=0;
- while ((i2c_sequence[index]!=0xFF) || (i2c_sequence[index+1]!=0xFF)) {
- len = i2c_sequence[index]* 256 + i2c_sequence[index+1];
+ index = 0;
+ while ((i2c_sequence[index] != 0xFF) ||
+ (i2c_sequence[index + 1] != 0xFF)) {
+ len = i2c_sequence[index] * 256 + i2c_sequence[index+1];
if (len == 0x0000) {
/* RESET command */
result = xc_reset(fe);
@@ -329,15 +330,17 @@ static int xc_load_i2c_sequence(struct dvb_frontend *fe, const u8 *i2c_sequence)
buf[1] = i2c_sequence[index + 1];
pos = 2;
while (pos < len) {
- if ((len - pos) > XC_MAX_I2C_WRITE_LENGTH - 2) {
- nbytes_to_send = XC_MAX_I2C_WRITE_LENGTH;
- } else {
+ if ((len - pos) > XC_MAX_I2C_WRITE_LENGTH - 2)
+ nbytes_to_send =
+ XC_MAX_I2C_WRITE_LENGTH;
+ else
nbytes_to_send = (len - pos + 2);
+ for (i = 2; i < nbytes_to_send; i++) {
+ buf[i] = i2c_sequence[index + pos +
+ i - 2];
}
- for (i=2; i<nbytes_to_send; i++) {
- buf[i] = i2c_sequence[index + pos + i - 2];
- }
- result = xc_send_i2c_data(priv, buf, nbytes_to_send);
+ result = xc_send_i2c_data(priv, buf,
+ nbytes_to_send);
if (result != XC_RESULT_SUCCESS)
return result;
@@ -386,8 +389,7 @@ static int xc_SetSignalSource(struct xc5000_priv *priv, u16 rf_mode)
dprintk(1, "%s(%d) Source = %s\n", __func__, rf_mode,
rf_mode == XC_RF_MODE_AIR ? "ANTENNA" : "CABLE");
- if ((rf_mode != XC_RF_MODE_AIR) && (rf_mode != XC_RF_MODE_CABLE))
- {
+ if ((rf_mode != XC_RF_MODE_AIR) && (rf_mode != XC_RF_MODE_CABLE)) {
rf_mode = XC_RF_MODE_CABLE;
printk(KERN_ERR
"%s(), Invalid mode, defaulting to CABLE",
@@ -560,13 +562,13 @@ static int xc5000_readregs(struct xc5000_priv *priv, u8 *buf, u8 len)
.flags = I2C_M_RD, .buf = buf, .len = len };
if (i2c_transfer(priv->i2c_props.adap, &msg, 1) != 1) {
- printk(KERN_ERR "xc5000 I2C read failed (len=%i)\n",(int)len);
+ printk(KERN_ERR "xc5000 I2C read failed (len=%i)\n", (int)len);
return -EREMOTEIO;
}
return 0;
}
-static int xc5000_fwupload(struct dvb_frontend* fe)
+static int xc5000_fwupload(struct dvb_frontend *fe)
{
struct xc5000_priv *priv = fe->tuner_priv;
const struct firmware *fw;
@@ -576,7 +578,8 @@ static int xc5000_fwupload(struct dvb_frontend* fe)
printk(KERN_INFO "xc5000: waiting for firmware upload (%s)...\n",
XC5000_DEFAULT_FIRMWARE);
- ret = request_firmware(&fw, XC5000_DEFAULT_FIRMWARE, &priv->i2c_props.adap->dev);
+ ret = request_firmware(&fw, XC5000_DEFAULT_FIRMWARE,
+ &priv->i2c_props.adap->dev);
if (ret) {
printk(KERN_ERR "xc5000: Upload failed. (file not found?)\n");
ret = XC_RESULT_RESET_FAILURE;
@@ -592,7 +595,7 @@ static int xc5000_fwupload(struct dvb_frontend* fe)
ret = XC_RESULT_RESET_FAILURE;
} else {
printk(KERN_INFO "xc5000: firmware upload\n");
- ret = xc_load_i2c_sequence(fe, fw->data );
+ ret = xc_load_i2c_sequence(fe, fw->data);
}
out:
@@ -651,7 +654,7 @@ static int xc5000_set_params(struct dvb_frontend *fe,
dprintk(1, "%s() frequency=%d (Hz)\n", __func__, params->frequency);
- switch(params->u.vsb.modulation) {
+ switch (params->u.vsb.modulation) {
case VSB_8:
case VSB_16:
dprintk(1, "%s() VSB modulation\n", __func__);
@@ -748,42 +751,42 @@ static int xc5000_set_analog_params(struct dvb_frontend *fe,
/* FIX ME: Some video standards may have several possible audio
standards. We simply default to one of them here.
*/
- if(params->std & V4L2_STD_MN) {
+ if (params->std & V4L2_STD_MN) {
/* default to BTSC audio standard */
priv->video_standard = MN_NTSC_PAL_BTSC;
goto tune_channel;
}
- if(params->std & V4L2_STD_PAL_BG) {
+ if (params->std & V4L2_STD_PAL_BG) {
/* default to NICAM audio standard */
priv->video_standard = BG_PAL_NICAM;
goto tune_channel;
}
- if(params->std & V4L2_STD_PAL_I) {
+ if (params->std & V4L2_STD_PAL_I) {
/* default to NICAM audio standard */
priv->video_standard = I_PAL_NICAM;
goto tune_channel;
}
- if(params->std & V4L2_STD_PAL_DK) {
+ if (params->std & V4L2_STD_PAL_DK) {
/* default to NICAM audio standard */
priv->video_standard = DK_PAL_NICAM;
goto tune_channel;
}
- if(params->std & V4L2_STD_SECAM_DK) {
+ if (params->std & V4L2_STD_SECAM_DK) {
/* default to A2 DK1 audio standard */
priv->video_standard = DK_SECAM_A2DK1;
goto tune_channel;
}
- if(params->std & V4L2_STD_SECAM_L) {
+ if (params->std & V4L2_STD_SECAM_L) {
priv->video_standard = L_SECAM_NICAM;
goto tune_channel;
}
- if(params->std & V4L2_STD_SECAM_LC) {
+ if (params->std & V4L2_STD_SECAM_LC) {
priv->video_standard = LC_SECAM_NICAM;
goto tune_channel;
}
@@ -791,7 +794,7 @@ static int xc5000_set_analog_params(struct dvb_frontend *fe,
tune_channel:
ret = xc_SetSignalSource(priv, priv->rf_mode);
if (ret != XC_RESULT_SUCCESS) {
- printk(KERN_ERR
+ printk(KERN_ERR
"xc5000: xc_SetSignalSource(%d) failed\n",
priv->rf_mode);
return -EREMOTEIO;
@@ -863,7 +866,7 @@ static int xc_load_fw_and_init_tuner(struct dvb_frontend *fe)
* I2C transactions until calibration is complete. This way we
* don't have to rely on clock stretching working.
*/
- xc_wait( 100 );
+ xc_wait(100);
/* Default to "CABLE" mode */
ret |= xc_write_reg(priv, XREG_SIGNALSOURCE, XC_RF_MODE_CABLE);
@@ -885,15 +888,13 @@ static int xc5000_sleep(struct dvb_frontend *fe)
*/
ret = xc_shutdown(priv);
- if(ret != XC_RESULT_SUCCESS) {
+ if (ret != XC_RESULT_SUCCESS) {
printk(KERN_ERR
"xc5000: %s() unable to shutdown tuner\n",
__func__);
return -EREMOTEIO;
- }
- else {
+ } else
return XC_RESULT_SUCCESS;
- }
}
static int xc5000_init(struct dvb_frontend *fe)
@@ -989,7 +990,7 @@ struct dvb_frontend *xc5000_attach(struct dvb_frontend *fe,
if (xc5000_readreg(priv, XREG_PRODUCT_ID, &id) != 0)
goto fail;
- switch(id) {
+ switch (id) {
case XC_PRODUCT_ID_FW_LOADED:
printk(KERN_INFO
"xc5000: Successfully identified at address 0x%02x\n",

drivers/media/common/tuners/xc5000.h

View file
diff --git a/drivers/media/common/tuners/xc5000.h b/drivers/media/common/tuners/xc5000.h
index cf1a558..f4c1466 100644
--- a/drivers/media/common/tuners/xc5000.h
+++ b/drivers/media/common/tuners/xc5000.h
@@ -45,17 +45,17 @@ struct xc5000_config {
#if defined(CONFIG_MEDIA_TUNER_XC5000) || \
(defined(CONFIG_MEDIA_TUNER_XC5000_MODULE) && defined(MODULE))
-extern struct dvb_frontend* xc5000_attach(struct dvb_frontend *fe,
+extern struct dvb_frontend *xc5000_attach(struct dvb_frontend *fe,
struct i2c_adapter *i2c,
struct xc5000_config *cfg);
#else
-static inline struct dvb_frontend* xc5000_attach(struct dvb_frontend *fe,
+static inline struct dvb_frontend *xc5000_attach(struct dvb_frontend *fe,
struct i2c_adapter *i2c,
struct xc5000_config *cfg)
{
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
return NULL;
}
-#endif // CONFIG_MEDIA_TUNER_XC5000
+#endif
-#endif // __XC5000_H__
+#endif

drivers/media/dvb/dm1105/dm1105.c

View file
diff --git a/drivers/media/dvb/dm1105/dm1105.c b/drivers/media/dvb/dm1105/dm1105.c
index f732144..14e627e 100644
--- a/drivers/media/dvb/dm1105/dm1105.c
+++ b/drivers/media/dvb/dm1105/dm1105.c
@@ -595,6 +595,18 @@ static void dm1105dvb_hw_exit(struct dm1105dvb *dm1105dvb)
dm1105dvb_dma_unmap(dm1105dvb);
}
+static struct stv0299_config sharp_z0194a_config = {
+ .demod_address = 0x68,
+ .inittab = sharp_z0194a_inittab,
+ .mclk = 88000000UL,
+ .invert = 1,
+ .skip_reinit = 0,
+ .lock_output = STV0299_LOCKOUTPUT_1,
+ .volt13_op0_op1 = STV0299_VOLT13_OP1,
+ .min_delay_ms = 100,
+ .set_symbol_rate = sharp_z0194a_set_symbol_rate,
+};
+
static struct stv0288_config earda_config = {
.demod_address = 0x68,
.min_delay_ms = 100,

drivers/media/dvb/dvb-core/dvb_frontend.c

View file
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
index f170e82..5689d1f 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -47,6 +47,7 @@ static int dvb_shutdown_timeout;
static int dvb_force_auto_inversion;
static int dvb_override_tune_delay;
static int dvb_powerdown_on_sleep = 1;
+static int dvb_mfe_wait_time = 5;
module_param_named(frontend_debug, dvb_frontend_debug, int, 0644);
MODULE_PARM_DESC(frontend_debug, "Turn on/off frontend core debugging (default:off).");
@@ -58,6 +59,8 @@ module_param(dvb_override_tune_delay, int, 0644);
MODULE_PARM_DESC(dvb_override_tune_delay, "0: normal (default), >0 => delay in milliseconds to wait for lock after a tune attempt");
module_param(dvb_powerdown_on_sleep, int, 0644);
MODULE_PARM_DESC(dvb_powerdown_on_sleep, "0: do not power down, 1: turn LNB voltage off on sleep (default)");
+module_param(dvb_mfe_wait_time, int, 0644);
+MODULE_PARM_DESC(dvb_mfe_wait_time, "Wait up to <mfe_wait_time> seconds on open() for multi-frontend to become available (default:5 seconds)");
#define dprintk if (dvb_frontend_debug) printk
@@ -212,8 +215,9 @@ static int dvb_frontend_get_event(struct dvb_frontend *fe,
static void dvb_frontend_init(struct dvb_frontend *fe)
{
- dprintk ("DVB: initialising frontend %i (%s)...\n",
+ dprintk ("DVB: initialising adapter %i frontend %i (%s)...\n",
fe->dvb->num,
+ fe->id,
fe->ops.info.name);
if (fe->ops.init)
@@ -686,7 +690,7 @@ static int dvb_frontend_start(struct dvb_frontend *fe)
mb();
fe_thread = kthread_run(dvb_frontend_thread, fe,
- "kdvb-fe-%i", fe->dvb->num);
+ "kdvb-ad-%i-fe-%i", fe->dvb->num,fe->id);
if (IS_ERR(fe_thread)) {
ret = PTR_ERR(fe_thread);
printk("dvb_frontend_start: failed to start kthread (%d)\n", ret);
@@ -710,8 +714,8 @@ static void dvb_frontend_get_frequeny_limits(struct dvb_frontend *fe,
*freq_max = min(fe->ops.info.frequency_max, fe->ops.tuner_ops.info.frequency_max);
if (*freq_min == 0 || *freq_max == 0)
- printk(KERN_WARNING "DVB: frontend %u frequency limits undefined - fix the driver\n",
- fe->dvb->num);
+ printk(KERN_WARNING "DVB: adapter %i frontend %u frequency limits undefined - fix the driver\n",
+ fe->dvb->num,fe->id);
}
static int dvb_frontend_check_parameters(struct dvb_frontend *fe,
@@ -724,8 +728,8 @@ static int dvb_frontend_check_parameters(struct dvb_frontend *fe,
dvb_frontend_get_frequeny_limits(fe, &freq_min, &freq_max);
if ((freq_min && parms->frequency < freq_min) ||
(freq_max && parms->frequency > freq_max)) {
- printk(KERN_WARNING "DVB: frontend %u frequency %u out of range (%u..%u)\n",
- fe->dvb->num, parms->frequency, freq_min, freq_max);
+ printk(KERN_WARNING "DVB: adapter %i frontend %i frequency %u out of range (%u..%u)\n",
+ fe->dvb->num, fe->id, parms->frequency, freq_min, freq_max);
return -EINVAL;
}
@@ -735,8 +739,8 @@ static int dvb_frontend_check_parameters(struct dvb_frontend *fe,
parms->u.qpsk.symbol_rate < fe->ops.info.symbol_rate_min) ||
(fe->ops.info.symbol_rate_max &&
parms->u.qpsk.symbol_rate > fe->ops.info.symbol_rate_max)) {
- printk(KERN_WARNING "DVB: frontend %u symbol rate %u out of range (%u..%u)\n",
- fe->dvb->num, parms->u.qpsk.symbol_rate,
+ printk(KERN_WARNING "DVB: adapter %i frontend %i symbol rate %u out of range (%u..%u)\n",
+ fe->dvb->num, fe->id, parms->u.qpsk.symbol_rate,
fe->ops.info.symbol_rate_min, fe->ops.info.symbol_rate_max);
return -EINVAL;
}
@@ -746,8 +750,8 @@ static int dvb_frontend_check_parameters(struct dvb_frontend *fe,
parms->u.qam.symbol_rate < fe->ops.info.symbol_rate_min) ||
(fe->ops.info.symbol_rate_max &&
parms->u.qam.symbol_rate > fe->ops.info.symbol_rate_max)) {
- printk(KERN_WARNING "DVB: frontend %u symbol rate %u out of range (%u..%u)\n",
- fe->dvb->num, parms->u.qam.symbol_rate,
+ printk(KERN_WARNING "DVB: adapter %i frontend %i symbol rate %u out of range (%u..%u)\n",
+ fe->dvb->num, fe->id, parms->u.qam.symbol_rate,
fe->ops.info.symbol_rate_min, fe->ops.info.symbol_rate_max);
return -EINVAL;
}
@@ -899,30 +903,30 @@ void dtv_property_dump(struct dtv_property *tvp)
int i;
if (tvp->cmd <= 0 || tvp->cmd > DTV_MAX_COMMAND) {
- printk("%s: tvp.cmd = 0x%08x (undefined/unknown/invalid)\n",
+ printk(KERN_WARNING "%s: tvp.cmd = 0x%08x undefined\n",
__func__, tvp->cmd);
return;
}
- printk("%s() tvp.cmd = 0x%08x (%s)\n"
- ,__FUNCTION__
+ dprintk("%s() tvp.cmd = 0x%08x (%s)\n"
+ ,__func__
,tvp->cmd
,dtv_cmds[ tvp->cmd ].name);
if(dtv_cmds[ tvp->cmd ].buffer) {
- printk("%s() tvp.u.buffer.len = 0x%02x\n"
- ,__FUNCTION__
+ dprintk("%s() tvp.u.buffer.len = 0x%02x\n"
+ ,__func__
,tvp->u.buffer.len);
for(i = 0; i < tvp->u.buffer.len; i++)
- printk("%s() tvp.u.buffer.data[0x%02x] = 0x%02x\n"
- ,__FUNCTION__
+ dprintk("%s() tvp.u.buffer.data[0x%02x] = 0x%02x\n"
+ ,__func__
,i
,tvp->u.buffer.data[i]);
} else
- printk("%s() tvp.u.data = 0x%08x\n", __FUNCTION__, tvp->u.data);
+ dprintk("%s() tvp.u.data = 0x%08x\n", __func__, tvp->u.data);
}
int is_legacy_delivery_system(fe_delivery_system_t s)
@@ -942,8 +946,6 @@ void dtv_property_cache_sync(struct dvb_frontend *fe, struct dvb_frontend_parame
{
struct dtv_frontend_properties *c = &fe->dtv_property_cache;
- printk("%s()\n", __FUNCTION__);
-
c->frequency = p->frequency;
c->inversion = p->inversion;
@@ -998,27 +1000,25 @@ void dtv_property_legacy_params_sync(struct dvb_frontend *fe)
struct dvb_frontend_private *fepriv = fe->frontend_priv;
struct dvb_frontend_parameters *p = &fepriv->parameters;
- printk("%s()\n", __FUNCTION__);
-
p->frequency = c->frequency;
p->inversion = c->inversion;
switch (fe->ops.info.type) {
case FE_QPSK:
- printk("%s() Preparing QPSK req\n", __FUNCTION__);
+ dprintk("%s() Preparing QPSK req\n", __func__);
p->u.qpsk.symbol_rate = c->symbol_rate;
p->u.qpsk.fec_inner = c->fec_inner;
c->delivery_system = SYS_DVBS;
break;
case FE_QAM:
- printk("%s() Preparing QAM req\n", __FUNCTION__);
+ dprintk("%s() Preparing QAM req\n", __func__);
p->u.qam.symbol_rate = c->symbol_rate;
p->u.qam.fec_inner = c->fec_inner;
p->u.qam.modulation = c->modulation;
c->delivery_system = SYS_DVBC_ANNEX_AC;
break;
case FE_OFDM:
- printk("%s() Preparing OFDM req\n", __FUNCTION__);
+ dprintk("%s() Preparing OFDM req\n", __func__);
if (c->bandwidth_hz == 6000000)
p->u.ofdm.bandwidth = BANDWIDTH_6_MHZ;
else if (c->bandwidth_hz == 7000000)
@@ -1036,7 +1036,7 @@ void dtv_property_legacy_params_sync(struct dvb_frontend *fe)
c->delivery_system = SYS_DVBT;
break;
case FE_ATSC:
- printk("%s() Preparing VSB req\n", __FUNCTION__);
+ dprintk("%s() Preparing VSB req\n", __func__);
p->u.vsb.modulation = c->modulation;
if ((c->modulation == VSB_8) || (c->modulation == VSB_16))
c->delivery_system = SYS_ATSC;
@@ -1055,14 +1055,13 @@ void dtv_property_adv_params_sync(struct dvb_frontend *fe)
struct dvb_frontend_private *fepriv = fe->frontend_priv;
struct dvb_frontend_parameters *p = &fepriv->parameters;

This diff is incomplete. Download the complete patch.

drivers/media/dvb/dvb-core/dvb_frontend.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/dvb-core/dvbdev.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/dvb-core/dvbdev.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/dvb-usb/dw2102.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/frontends/cx22702.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/frontends/cx22702.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/frontends/cx24116.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/frontends/cx24116.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/frontends/cx24123.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/frontends/cx24123.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/frontends/s5h1409.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/frontends/s5h1409.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/frontends/s5h1411.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/frontends/tda10048.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/frontends/z0194a.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/siano/sms-cards.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/radio/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/media/radio/radio-si470x.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/adv7170.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/adv7175.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/au0828/au0828-cards.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/au0828/au0828-core.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/au0828/au0828-dvb.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/bt819.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/bt856.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/bt866.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx23885/cx23885-cards.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx23885/cx23885-core.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx23885/cx23885-dvb.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx23885/cx23885-i2c.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx23885/cx23885-video.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx23885/cx23885.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx88/cx88-cards.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx88/cx88-core.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx88/cx88-dvb.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx88/cx88-i2c.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx88/cx88-mpeg.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx88/cx88-tvaudio.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx88/cx88-video.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx88/cx88.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/gspca.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/gspca.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/m5602/m5602_bridge.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/m5602/m5602_core.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/m5602/m5602_mt9m111.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/m5602/m5602_mt9m111.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/m5602/m5602_ov9650.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/m5602/m5602_ov9650.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/m5602/m5602_po1030.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/m5602/m5602_po1030.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/m5602/m5602_s5k4aa.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/m5602/m5602_s5k4aa.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/m5602/m5602_s5k83a.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/m5602/m5602_s5k83a.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/m5602/m5602_sensor.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/t613.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/ivtv/ivtv-fileops.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/ivtv/ivtv-ioctl.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/ks0127.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/saa7110.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/saa7111.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/saa7114.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/saa7127.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/saa7134/saa7134-dvb.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/saa7134/saa7134.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/saa7185.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/sh_mobile_ceu_camera.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/soc_camera_platform.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/stk-webcam.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/stk-webcam.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/tveeprom.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/videobuf-dvb.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/vivi.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/vpx3220.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/zoran/zoran_card.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/zoran/zoran_driver.c

View file

This diff is incomplete. Download the complete patch.

include/linux/dvb/frontend.h

View file

This diff is incomplete. Download the complete patch.

include/linux/i2c-id.h

View file

This diff is incomplete. Download the complete patch.

include/media/soc_camera_platform.h

View file

This diff is incomplete. Download the complete patch.

include/media/tuner.h

View file

This diff is incomplete. Download the complete patch.

include/media/v4l2-i2c-drv-legacy.h

View file

This diff is incomplete. Download the complete patch.

include/media/v4l2-i2c-drv.h

View file

This diff is incomplete. Download the complete patch.

include/media/videobuf-dvb.h

View file

This diff is incomplete. Download the complete patch.