You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
* master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb: Merge branch 'work-fixes' V4L/DVB (3413): Typos grab bag of the month V4L/DVB (3403): Workaround to fix initialization for Nexus CA Merge branch 'work-fixes' V4L/DVB (3395): Fixed Pinnacle 300i DVB-T support V4L/DVB (3399): ELSA EX-VISION 500TV: fix incorrect PCI subsystem ID V4L/DVB (3382): Fix stv0297 for qam128 on tt c1500 (saa7146) V4L/DVB (3300a): Removing personal email from DVB maintainers V4L/DVB (3385): Dvb: fix __init/__exit section references in av7110 driver V4L/DVB (3378): Restore power on defaults of tda9887 after tda8290 probe V4L/DVB (3354): Fix maximum for the saturation and contrast controls. V4L/DVB (3352): Cxusb: fix lgdt3303 naming V4L/DVB (3348): Fixed saa7134 ALSA initialization with multiple cards V4L/DVB (3347): Pinnacle PCTV 40i: add filtered Composite2 input V4L/DVB (3341): Upstream sync - make 2 structs static V4L/DVB (3340): Make a struct static V4L/DVB (3337): Drivers/media/dvb/frontends/mt312.c: cleanups V4L/DVB (3336): Bt8xx documentation authors fix
This commit is contained in:
@@ -111,4 +111,8 @@ source: linux/Documentation/video4linux/CARDLIST.bttv
|
||||
If you have problems with this please do ask on the mailing list.
|
||||
|
||||
--
|
||||
Authors: Richard Walker, Jamie Honan, Michael Hunold, Manu Abraham
|
||||
Authors: Richard Walker,
|
||||
Jamie Honan,
|
||||
Michael Hunold,
|
||||
Manu Abraham,
|
||||
Michael Krufky
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
12 -> Medion 7134 [16be:0003]
|
||||
13 -> Typhoon TV+Radio 90031
|
||||
14 -> ELSA EX-VISION 300TV [1048:226b]
|
||||
15 -> ELSA EX-VISION 500TV [1048:226b]
|
||||
15 -> ELSA EX-VISION 500TV [1048:226a]
|
||||
16 -> ASUS TV-FM 7134 [1043:4842,1043:4830,1043:4840]
|
||||
17 -> AOPEN VA1000 POWER [1131:7133]
|
||||
18 -> BMK MPEX No Tuner
|
||||
@@ -75,7 +75,7 @@
|
||||
74 -> LifeView FlyTV Platinum Mini2 [14c0:1212]
|
||||
75 -> AVerMedia AVerTVHD MCE A180 [1461:1044]
|
||||
76 -> SKNet MonsterTV Mobile [1131:4ee9]
|
||||
77 -> Pinnacle PCTV 110i (saa7133) [11bd:002e]
|
||||
77 -> Pinnacle PCTV 40i/50i/110i (saa7133) [11bd:002e]
|
||||
78 -> ASUSTeK P7131 Dual [1043:4862]
|
||||
79 -> Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B)
|
||||
80 -> ASUS Digimatrix TV [1043:0210]
|
||||
|
||||
@@ -838,7 +838,6 @@ S: Maintained
|
||||
|
||||
DVB SUBSYSTEM AND DRIVERS
|
||||
P: LinuxTV.org Project
|
||||
M: mchehab@infradead.org
|
||||
M: v4l-dvb-maintainer@linuxtv.org
|
||||
L: linux-dvb@linuxtv.org (subscription required)
|
||||
W: http://linuxtv.org/
|
||||
|
||||
@@ -526,7 +526,7 @@ int flexcop_frontend_init(struct flexcop_device *fc)
|
||||
info("found the stv0297 at i2c address: 0x%02x",alps_tdee4_stv0297_config.demod_address);
|
||||
} else
|
||||
/* try the sky v2.3 (vp310/Samsung tbdu18132(tsa5059)) */
|
||||
if ((fc->fe = vp310_attach(&skystar23_samsung_tbdu18132_config, &fc->i2c_adap)) != NULL) {
|
||||
if ((fc->fe = vp310_mt312_attach(&skystar23_samsung_tbdu18132_config, &fc->i2c_adap)) != NULL) {
|
||||
ops = fc->fe->ops;
|
||||
|
||||
ops->diseqc_send_master_cmd = flexcop_diseqc_send_master_cmd;
|
||||
|
||||
@@ -382,7 +382,7 @@ bt878_device_control(struct bt878 *bt, unsigned int cmd, union dst_gpio_packet *
|
||||
EXPORT_SYMBOL(bt878_device_control);
|
||||
|
||||
|
||||
struct cards card_list[] __devinitdata = {
|
||||
static struct cards card_list[] __devinitdata = {
|
||||
|
||||
{ 0x01010071, BTTV_BOARD_NEBULA_DIGITV, "Nebula Electronics DigiTV" },
|
||||
{ 0x07611461, BTTV_BOARD_AVDVBT_761, "AverMedia AverTV DVB-T 761" },
|
||||
|
||||
@@ -602,7 +602,7 @@ static int dst_type_print(u8 type)
|
||||
|
||||
*/
|
||||
|
||||
struct dst_types dst_tlist[] = {
|
||||
static struct dst_types dst_tlist[] = {
|
||||
{
|
||||
.device_id = "200103A",
|
||||
.offset = 0,
|
||||
|
||||
@@ -216,7 +216,7 @@ struct dmx_frontend {
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Flags OR'ed in the capabilites field of struct dmx_demux.
|
||||
* Flags OR'ed in the capabilities field of struct dmx_demux.
|
||||
*/
|
||||
|
||||
#define DMX_TS_FILTERING 1
|
||||
|
||||
@@ -282,7 +282,7 @@ static struct cx22702_config cxusb_cx22702_config = {
|
||||
.pll_set = dvb_usb_pll_set_i2c,
|
||||
};
|
||||
|
||||
static struct lgdt330x_config cxusb_lgdt330x_config = {
|
||||
static struct lgdt330x_config cxusb_lgdt3303_config = {
|
||||
.demod_address = 0x0e,
|
||||
.demod_chip = LGDT3303,
|
||||
.pll_set = dvb_usb_pll_set_i2c,
|
||||
@@ -357,14 +357,14 @@ static int cxusb_cx22702_frontend_attach(struct dvb_usb_device *d)
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
static int cxusb_lgdt330x_frontend_attach(struct dvb_usb_device *d)
|
||||
static int cxusb_lgdt3303_frontend_attach(struct dvb_usb_device *d)
|
||||
{
|
||||
if (usb_set_interface(d->udev,0,7) < 0)
|
||||
err("set interface failed");
|
||||
|
||||
cxusb_ctrl_msg(d,CMD_DIGITAL, NULL, 0, NULL, 0);
|
||||
|
||||
if ((d->fe = lgdt330x_attach(&cxusb_lgdt330x_config, &d->i2c_adap)) != NULL)
|
||||
if ((d->fe = lgdt330x_attach(&cxusb_lgdt3303_config, &d->i2c_adap)) != NULL)
|
||||
return 0;
|
||||
|
||||
return -EIO;
|
||||
@@ -506,7 +506,7 @@ static struct dvb_usb_properties cxusb_bluebird_lgh064f_properties = {
|
||||
|
||||
.streaming_ctrl = cxusb_streaming_ctrl,
|
||||
.power_ctrl = cxusb_power_ctrl,
|
||||
.frontend_attach = cxusb_lgdt330x_frontend_attach,
|
||||
.frontend_attach = cxusb_lgdt3303_frontend_attach,
|
||||
.tuner_attach = cxusb_lgh064f_tuner_attach,
|
||||
|
||||
.i2c_algo = &cxusb_i2c_algo,
|
||||
|
||||
@@ -47,7 +47,7 @@ static int dvb_usb_init(struct dvb_usb_device *d)
|
||||
|
||||
d->state = DVB_USB_STATE_INIT;
|
||||
|
||||
/* check the capabilites and set appropriate variables */
|
||||
/* check the capabilities and set appropriate variables */
|
||||
|
||||
/* speed - when running at FULL speed we need a HW PID filter */
|
||||
if (d->udev->speed == USB_SPEED_FULL && !(d->props.caps & DVB_USB_HAS_PID_FILTER)) {
|
||||
|
||||
@@ -87,7 +87,7 @@ struct dvb_usb_device;
|
||||
|
||||
/**
|
||||
* struct dvb_usb_properties - properties of a dvb-usb-device
|
||||
* @caps: capabilites of the DVB USB device.
|
||||
* @caps: capabilities of the DVB USB device.
|
||||
* @pid_filter_count: number of PID filter position in the optional hardware
|
||||
* PID-filter.
|
||||
*
|
||||
|
||||
@@ -29,7 +29,7 @@ config DVB_TDA8083
|
||||
A DVB-S tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
config DVB_MT312
|
||||
tristate "Zarlink MT312 based"
|
||||
tristate "Zarlink VP310/MT312 based"
|
||||
depends on DVB_CORE
|
||||
help
|
||||
A DVB-S tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
@@ -612,76 +612,6 @@ static void mt312_release(struct dvb_frontend* fe)
|
||||
kfree(state);
|
||||
}
|
||||
|
||||
static struct dvb_frontend_ops vp310_mt312_ops;
|
||||
|
||||
struct dvb_frontend* vp310_attach(const struct mt312_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
struct mt312_state* state = NULL;
|
||||
|
||||
/* allocate memory for the internal state */
|
||||
state = kmalloc(sizeof(struct mt312_state), GFP_KERNEL);
|
||||
if (state == NULL)
|
||||
goto error;
|
||||
|
||||
/* setup the state */
|
||||
state->config = config;
|
||||
state->i2c = i2c;
|
||||
memcpy(&state->ops, &vp310_mt312_ops, sizeof(struct dvb_frontend_ops));
|
||||
strcpy(state->ops.info.name, "Zarlink VP310 DVB-S");
|
||||
|
||||
/* check if the demod is there */
|
||||
if (mt312_readreg(state, ID, &state->id) < 0)
|
||||
goto error;
|
||||
if (state->id != ID_VP310) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
/* create dvb_frontend */
|
||||
state->frequency = 90;
|
||||
state->frontend.ops = &state->ops;
|
||||
state->frontend.demodulator_priv = state;
|
||||
return &state->frontend;
|
||||
|
||||
error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct dvb_frontend* mt312_attach(const struct mt312_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
struct mt312_state* state = NULL;
|
||||
|
||||
/* allocate memory for the internal state */
|
||||
state = kmalloc(sizeof(struct mt312_state), GFP_KERNEL);
|
||||
if (state == NULL)
|
||||
goto error;
|
||||
|
||||
/* setup the state */
|
||||
state->config = config;
|
||||
state->i2c = i2c;
|
||||
memcpy(&state->ops, &vp310_mt312_ops, sizeof(struct dvb_frontend_ops));
|
||||
strcpy(state->ops.info.name, "Zarlink MT312 DVB-S");
|
||||
|
||||
/* check if the demod is there */
|
||||
if (mt312_readreg(state, ID, &state->id) < 0)
|
||||
goto error;
|
||||
if (state->id != ID_MT312) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
/* create dvb_frontend */
|
||||
state->frequency = 60;
|
||||
state->frontend.ops = &state->ops;
|
||||
state->frontend.demodulator_priv = state;
|
||||
return &state->frontend;
|
||||
|
||||
error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static struct dvb_frontend_ops vp310_mt312_ops = {
|
||||
|
||||
.info = {
|
||||
@@ -720,6 +650,49 @@ static struct dvb_frontend_ops vp310_mt312_ops = {
|
||||
.set_voltage = mt312_set_voltage,
|
||||
};
|
||||
|
||||
struct dvb_frontend* vp310_mt312_attach(const struct mt312_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
struct mt312_state* state = NULL;
|
||||
|
||||
/* allocate memory for the internal state */
|
||||
state = kmalloc(sizeof(struct mt312_state), GFP_KERNEL);
|
||||
if (state == NULL)
|
||||
goto error;
|
||||
|
||||
/* setup the state */
|
||||
state->config = config;
|
||||
state->i2c = i2c;
|
||||
memcpy(&state->ops, &vp310_mt312_ops, sizeof(struct dvb_frontend_ops));
|
||||
|
||||
/* check if the demod is there */
|
||||
if (mt312_readreg(state, ID, &state->id) < 0)
|
||||
goto error;
|
||||
|
||||
switch (state->id) {
|
||||
case ID_VP310:
|
||||
strcpy(state->ops.info.name, "Zarlink VP310 DVB-S");
|
||||
state->frequency = 90;
|
||||
break;
|
||||
case ID_MT312:
|
||||
strcpy(state->ops.info.name, "Zarlink MT312 DVB-S");
|
||||
state->frequency = 60;
|
||||
break;
|
||||
default:
|
||||
printk (KERN_WARNING "Only Zarlink VP310/MT312 are supported chips.\n");
|
||||
goto error;
|
||||
}
|
||||
|
||||
/* create dvb_frontend */
|
||||
state->frontend.ops = &state->ops;
|
||||
state->frontend.demodulator_priv = state;
|
||||
return &state->frontend;
|
||||
|
||||
error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
module_param(debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
|
||||
|
||||
@@ -727,5 +700,4 @@ MODULE_DESCRIPTION("Zarlink VP310/MT312 DVB-S Demodulator driver");
|
||||
MODULE_AUTHOR("Andreas Oberritter <obi@linuxtv.org>");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(mt312_attach);
|
||||
EXPORT_SYMBOL(vp310_attach);
|
||||
EXPORT_SYMBOL(vp310_mt312_attach);
|
||||
|
||||
@@ -38,10 +38,8 @@ struct mt312_config
|
||||
int (*pll_set)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params);
|
||||
};
|
||||
|
||||
extern struct dvb_frontend* mt312_attach(const struct mt312_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
struct dvb_frontend* vp310_mt312_attach(const struct mt312_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
|
||||
extern struct dvb_frontend* vp310_attach(const struct mt312_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
|
||||
#endif // MT312_H
|
||||
|
||||
@@ -393,10 +393,6 @@ static int stv0297_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
|
||||
break;
|
||||
|
||||
case QAM_128:
|
||||
delay = 150;
|
||||
sweeprate = 1000;
|
||||
break;
|
||||
|
||||
case QAM_256:
|
||||
delay = 200;
|
||||
sweeprate = 500;
|
||||
|
||||
@@ -1439,7 +1439,7 @@ static int check_firmware(struct av7110* av7110)
|
||||
len = ntohl(*(u32*) ptr);
|
||||
ptr += 4;
|
||||
if (len >= 512) {
|
||||
printk("dvb-ttpci: dpram file is way to big.\n");
|
||||
printk("dvb-ttpci: dpram file is way too big.\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
if (crc != crc32_le(0, ptr, len)) {
|
||||
@@ -2477,7 +2477,8 @@ static int frontend_init(struct av7110 *av7110)
|
||||
* The same behaviour of missing VSYNC can be duplicated on budget
|
||||
* cards, by seting DD1_INIT trigger mode 7 in 3rd nibble.
|
||||
*/
|
||||
static int av7110_attach(struct saa7146_dev* dev, struct saa7146_pci_extension_data *pci_ext)
|
||||
static int __devinit av7110_attach(struct saa7146_dev* dev,
|
||||
struct saa7146_pci_extension_data *pci_ext)
|
||||
{
|
||||
const int length = TS_WIDTH * TS_HEIGHT;
|
||||
struct pci_dev *pdev = dev->pci;
|
||||
@@ -2827,7 +2828,7 @@ err_kfree_0:
|
||||
goto out;
|
||||
}
|
||||
|
||||
static int av7110_detach(struct saa7146_dev* saa)
|
||||
static int __devexit av7110_detach(struct saa7146_dev* saa)
|
||||
{
|
||||
struct av7110 *av7110 = saa->ext_priv;
|
||||
dprintk(4, "%p\n", av7110);
|
||||
@@ -2974,7 +2975,7 @@ static struct saa7146_extension av7110_extension = {
|
||||
.module = THIS_MODULE,
|
||||
.pci_tbl = &pci_tbl[0],
|
||||
.attach = av7110_attach,
|
||||
.detach = av7110_detach,
|
||||
.detach = __devexit_p(av7110_detach),
|
||||
|
||||
.irq_mask = MASK_19 | MASK_03 | MASK_10,
|
||||
.irq_func = av7110_irq,
|
||||
|
||||
@@ -245,6 +245,9 @@ int av7110_bootarm(struct av7110 *av7110)
|
||||
|
||||
/* test DEBI */
|
||||
iwdebi(av7110, DEBISWAP, DPRAM_BASE, 0x76543210, 4);
|
||||
/* FIXME: Why does Nexus CA require 2x iwdebi for first init? */
|
||||
iwdebi(av7110, DEBISWAP, DPRAM_BASE, 0x76543210, 4);
|
||||
|
||||
if ((ret=irdebi(av7110, DEBINOSWAP, DPRAM_BASE, 0, 4)) != 0x10325476) {
|
||||
printk(KERN_ERR "dvb-ttpci: debi test in av7110_bootarm() failed: "
|
||||
"%08x != %08x (check your BIOS 'Plug&Play OS' settings)\n",
|
||||
|
||||
@@ -208,7 +208,7 @@ static void ir_handler(struct av7110 *av7110, u32 ircom)
|
||||
}
|
||||
|
||||
|
||||
int __init av7110_ir_init(struct av7110 *av7110)
|
||||
int __devinit av7110_ir_init(struct av7110 *av7110)
|
||||
{
|
||||
static struct proc_dir_entry *e;
|
||||
|
||||
@@ -248,7 +248,7 @@ int __init av7110_ir_init(struct av7110 *av7110)
|
||||
}
|
||||
|
||||
|
||||
void __exit av7110_ir_exit(struct av7110 *av7110)
|
||||
void __devexit av7110_ir_exit(struct av7110 *av7110)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
||||
@@ -3369,7 +3369,7 @@ static int cpia_do_ioctl(struct inode *inode, struct file *file,
|
||||
//DBG("cpia_ioctl: %u\n", ioctlnr);
|
||||
|
||||
switch (ioctlnr) {
|
||||
/* query capabilites */
|
||||
/* query capabilities */
|
||||
case VIDIOCGCAP:
|
||||
{
|
||||
struct video_capability *b = arg;
|
||||
|
||||
@@ -567,7 +567,7 @@ static struct v4l2_queryctrl cx25840_qctrl[] = {
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "Contrast",
|
||||
.minimum = 0,
|
||||
.maximum = 255,
|
||||
.maximum = 127,
|
||||
.step = 1,
|
||||
.default_value = 64,
|
||||
.flags = 0,
|
||||
@@ -576,7 +576,7 @@ static struct v4l2_queryctrl cx25840_qctrl[] = {
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "Saturation",
|
||||
.minimum = 0,
|
||||
.maximum = 255,
|
||||
.maximum = 127,
|
||||
.step = 1,
|
||||
.default_value = 64,
|
||||
.flags = 0,
|
||||
|
||||
@@ -1027,7 +1027,7 @@ static struct v4l2_queryctrl saa7115_qctrl[] = {
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "Contrast",
|
||||
.minimum = 0,
|
||||
.maximum = 255,
|
||||
.maximum = 127,
|
||||
.step = 1,
|
||||
.default_value = 64,
|
||||
.flags = 0,
|
||||
@@ -1036,7 +1036,7 @@ static struct v4l2_queryctrl saa7115_qctrl[] = {
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "Saturation",
|
||||
.minimum = 0,
|
||||
.maximum = 255,
|
||||
.maximum = 127,
|
||||
.step = 1,
|
||||
.default_value = 64,
|
||||
.flags = 0,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user