em28xx-dvb.c (188933ac139a6f8ab06cad369bd0200af947b00d) em28xx-dvb.c (83c1b6ce7562efe157faac04d388144e1fd3c053)
1/*
2 DVB device driver for em28xx
3
4 (c) 2008-2011 Mauro Carvalho Chehab <mchehab@infradead.org>
5
6 (c) 2008 Devin Heitmueller <devin.heitmueller@gmail.com>
7 - Fixes for the driver to properly work with HVR-950
8 - Fixes for the driver to properly work with Pinnacle PCTV HD Pro Stick

--- 40 unchanged lines hidden (view full) ---

49#include "tda18271c2dd.h"
50#include "drxk.h"
51#include "tda10071.h"
52#include "tda18212.h"
53#include "a8293.h"
54#include "qt1010.h"
55#include "mb86a20s.h"
56#include "m88ds3103.h"
1/*
2 DVB device driver for em28xx
3
4 (c) 2008-2011 Mauro Carvalho Chehab <mchehab@infradead.org>
5
6 (c) 2008 Devin Heitmueller <devin.heitmueller@gmail.com>
7 - Fixes for the driver to properly work with HVR-950
8 - Fixes for the driver to properly work with Pinnacle PCTV HD Pro Stick

--- 40 unchanged lines hidden (view full) ---

49#include "tda18271c2dd.h"
50#include "drxk.h"
51#include "tda10071.h"
52#include "tda18212.h"
53#include "a8293.h"
54#include "qt1010.h"
55#include "mb86a20s.h"
56#include "m88ds3103.h"
57#include "m88ts2022.h"
57#include "ts2020.h"
58#include "si2168.h"
59#include "si2157.h"
60
61MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@infradead.org>");
62MODULE_LICENSE("GPL");
63MODULE_DESCRIPTION(DRIVER_DESC " - digital TV interface");
64MODULE_VERSION(EM28XX_VERSION);
65

--- 1309 unchanged lines hidden (view full) ---

1375 &dev->i2c_adap[dev->def_i2c_bus],
1376 &em28xx_cxd2820r_tda18271_config)) {
1377 dvb_frontend_detach(dvb->fe[0]);
1378 result = -EINVAL;
1379 goto out_free;
1380 }
1381 }
1382 break;
58#include "si2168.h"
59#include "si2157.h"
60
61MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@infradead.org>");
62MODULE_LICENSE("GPL");
63MODULE_DESCRIPTION(DRIVER_DESC " - digital TV interface");
64MODULE_VERSION(EM28XX_VERSION);
65

--- 1309 unchanged lines hidden (view full) ---

1375 &dev->i2c_adap[dev->def_i2c_bus],
1376 &em28xx_cxd2820r_tda18271_config)) {
1377 dvb_frontend_detach(dvb->fe[0]);
1378 result = -EINVAL;
1379 goto out_free;
1380 }
1381 }
1382 break;
1383 case EM2884_BOARD_ELGATO_EYETV_HYBRID_2008:
1383 case EM2884_BOARD_CINERGY_HTC_STICK:
1384 terratec_htc_stick_init(dev);
1385
1386 /* attach demodulator */
1387 dvb->fe[0] = dvb_attach(drxk_attach, &terratec_htc_stick_drxk,
1388 &dev->i2c_adap[dev->def_i2c_bus]);
1389 if (!dvb->fe[0]) {
1390 result = -EINVAL;

--- 95 unchanged lines hidden (view full) ---

1486 }
1487 break;
1488 case EM28178_BOARD_PCTV_461E:
1489 {
1490 /* demod I2C adapter */
1491 struct i2c_adapter *i2c_adapter;
1492 struct i2c_client *client;
1493 struct i2c_board_info info;
1384 case EM2884_BOARD_CINERGY_HTC_STICK:
1385 terratec_htc_stick_init(dev);
1386
1387 /* attach demodulator */
1388 dvb->fe[0] = dvb_attach(drxk_attach, &terratec_htc_stick_drxk,
1389 &dev->i2c_adap[dev->def_i2c_bus]);
1390 if (!dvb->fe[0]) {
1391 result = -EINVAL;

--- 95 unchanged lines hidden (view full) ---

1487 }
1488 break;
1489 case EM28178_BOARD_PCTV_461E:
1490 {
1491 /* demod I2C adapter */
1492 struct i2c_adapter *i2c_adapter;
1493 struct i2c_client *client;
1494 struct i2c_board_info info;
1494 struct m88ts2022_config m88ts2022_config = {
1495 .clock = 27000000,
1495 struct ts2020_config ts2020_config = {
1496 };
1497 memset(&info, 0, sizeof(struct i2c_board_info));
1498
1499 /* attach demod */
1500 dvb->fe[0] = dvb_attach(m88ds3103_attach,
1501 &pctv_461e_m88ds3103_config,
1502 &dev->i2c_adap[dev->def_i2c_bus],
1503 &i2c_adapter);
1504 if (dvb->fe[0] == NULL) {
1505 result = -ENODEV;
1506 goto out_free;
1507 }
1508
1509 /* attach tuner */
1496 };
1497 memset(&info, 0, sizeof(struct i2c_board_info));
1498
1499 /* attach demod */
1500 dvb->fe[0] = dvb_attach(m88ds3103_attach,
1501 &pctv_461e_m88ds3103_config,
1502 &dev->i2c_adap[dev->def_i2c_bus],
1503 &i2c_adapter);
1504 if (dvb->fe[0] == NULL) {
1505 result = -ENODEV;
1506 goto out_free;
1507 }
1508
1509 /* attach tuner */
1510 m88ts2022_config.fe = dvb->fe[0];
1511 strlcpy(info.type, "m88ts2022", I2C_NAME_SIZE);
1510 ts2020_config.fe = dvb->fe[0];
1511 strlcpy(info.type, "ts2022", I2C_NAME_SIZE);
1512 info.addr = 0x60;
1512 info.addr = 0x60;
1513 info.platform_data = &m88ts2022_config;
1514 request_module("m88ts2022");
1513 info.platform_data = &ts2020_config;
1514 request_module("ts2020");
1515 client = i2c_new_device(i2c_adapter, &info);
1516 if (client == NULL || client->dev.driver == NULL) {
1517 dvb_frontend_detach(dvb->fe[0]);
1518 result = -ENODEV;
1519 goto out_free;
1520 }
1521
1522 if (!try_module_get(client->dev.driver->owner)) {

--- 321 unchanged lines hidden ---
1515 client = i2c_new_device(i2c_adapter, &info);
1516 if (client == NULL || client->dev.driver == NULL) {
1517 dvb_frontend_detach(dvb->fe[0]);
1518 result = -ENODEV;
1519 goto out_free;
1520 }
1521
1522 if (!try_module_get(client->dev.driver->owner)) {

--- 321 unchanged lines hidden ---