| cx231xx-dvb.c (858a0d7eb5300b5f620d98ab3c4b96c9d5f19131) | cx231xx-dvb.c (a096fd6492ea676570e621d972f68ff03042d0c4) |
|---|---|
| 1/* 2 DVB device driver for cx231xx 3 4 Copyright (C) 2008 <srinivasa.deevi at conexant dot com> 5 Based on em28xx driver 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by --- 19 unchanged lines hidden (view full) --- 28#include <media/tuner.h> 29 30#include "xc5000.h" 31#include "s5h1432.h" 32#include "tda18271.h" 33#include "s5h1411.h" 34#include "lgdt3305.h" 35#include "si2165.h" | 1/* 2 DVB device driver for cx231xx 3 4 Copyright (C) 2008 <srinivasa.deevi at conexant dot com> 5 Based on em28xx driver 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by --- 19 unchanged lines hidden (view full) --- 28#include <media/tuner.h> 29 30#include "xc5000.h" 31#include "s5h1432.h" 32#include "tda18271.h" 33#include "s5h1411.h" 34#include "lgdt3305.h" 35#include "si2165.h" |
| 36#include "si2168.h" |
|
| 36#include "mb86a20s.h" 37#include "si2157.h" 38#include "lgdt3306a.h" 39 40MODULE_DESCRIPTION("driver for cx231xx based DVB cards"); 41MODULE_AUTHOR("Srinivasa Deevi <srinivasa.deevi@conexant.com>"); 42MODULE_LICENSE("GPL"); 43 --- 900 unchanged lines hidden (view full) --- 944 /* define general-purpose callback pointer */ 945 dvb->frontend->callback = cx231xx_tuner_callback; 946 947 dvb_attach(tda18271_attach, dev->dvb->frontend, 948 0x60, tuner_i2c, 949 &pv_tda18271_config); 950 break; 951 | 37#include "mb86a20s.h" 38#include "si2157.h" 39#include "lgdt3306a.h" 40 41MODULE_DESCRIPTION("driver for cx231xx based DVB cards"); 42MODULE_AUTHOR("Srinivasa Deevi <srinivasa.deevi@conexant.com>"); 43MODULE_LICENSE("GPL"); 44 --- 900 unchanged lines hidden (view full) --- 945 /* define general-purpose callback pointer */ 946 dvb->frontend->callback = cx231xx_tuner_callback; 947 948 dvb_attach(tda18271_attach, dev->dvb->frontend, 949 0x60, tuner_i2c, 950 &pv_tda18271_config); 951 break; 952 |
| 953 case CX231XX_BOARD_EVROMEDIA_FULL_HYBRID_FULLHD: 954 { 955 struct si2157_config si2157_config = {}; 956 struct si2168_config si2168_config = {}; 957 struct i2c_board_info info = {}; 958 struct i2c_client *client; 959 struct i2c_adapter *adapter; 960 961 /* attach demodulator chip */ 962 si2168_config.ts_mode = SI2168_TS_SERIAL; /* from *.inf file */ 963 si2168_config.fe = &dev->dvb->frontend; 964 si2168_config.i2c_adapter = &adapter; 965 si2168_config.ts_clock_inv = true; 966 967 strlcpy(info.type, "si2168", sizeof(info.type)); 968 info.addr = dev->board.demod_addr; 969 info.platform_data = &si2168_config; 970 971 request_module(info.type); 972 client = i2c_new_device(demod_i2c, &info); 973 974 if (client == NULL || client->dev.driver == NULL) { 975 result = -ENODEV; 976 goto out_free; 977 } 978 979 if (!try_module_get(client->dev.driver->owner)) { 980 i2c_unregister_device(client); 981 result = -ENODEV; 982 goto out_free; 983 } 984 985 dvb->i2c_client_demod = client; 986 987 /* attach tuner chip */ 988 si2157_config.fe = dev->dvb->frontend; 989#ifdef CONFIG_MEDIA_CONTROLLER_DVB 990 si2157_config.mdev = dev->media_dev; 991#endif 992 si2157_config.if_port = 1; 993 si2157_config.inversion = false; 994 995 memset(&info, 0, sizeof(info)); 996 strlcpy(info.type, "si2157", sizeof(info.type)); 997 info.addr = dev->board.tuner_addr; 998 info.platform_data = &si2157_config; 999 1000 request_module(info.type); 1001 client = i2c_new_device(tuner_i2c, &info); 1002 1003 if (client == NULL || client->dev.driver == NULL) { 1004 module_put(dvb->i2c_client_demod->dev.driver->owner); 1005 i2c_unregister_device(dvb->i2c_client_demod); 1006 result = -ENODEV; 1007 goto out_free; 1008 } 1009 1010 if (!try_module_get(client->dev.driver->owner)) { 1011 i2c_unregister_device(client); 1012 module_put(dvb->i2c_client_demod->dev.driver->owner); 1013 i2c_unregister_device(dvb->i2c_client_demod); 1014 result = -ENODEV; 1015 goto out_free; 1016 } 1017 1018 dev->cx231xx_reset_analog_tuner = NULL; 1019 dev->dvb->i2c_client_tuner = client; 1020 break; 1021 } |
|
| 952 default: 953 dev_err(dev->dev, 954 "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n", 955 dev->name); 956 break; 957 } 958 if (NULL == dvb->frontend) { 959 dev_err(dev->dev, --- 59 unchanged lines hidden --- | 1022 default: 1023 dev_err(dev->dev, 1024 "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n", 1025 dev->name); 1026 break; 1027 } 1028 if (NULL == dvb->frontend) { 1029 dev_err(dev->dev, --- 59 unchanged lines hidden --- |