diff options
Diffstat (limited to 'drivers/media/dvb/b2c2/flexcop.c')
-rw-r--r-- | drivers/media/dvb/b2c2/flexcop.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/media/dvb/b2c2/flexcop.c b/drivers/media/dvb/b2c2/flexcop.c index 2ddafd071c97..5f79c8dc3836 100644 --- a/drivers/media/dvb/b2c2/flexcop.c +++ b/drivers/media/dvb/b2c2/flexcop.c | |||
@@ -49,6 +49,8 @@ module_param_named(debug, b2c2_flexcop_debug, int, 0644); | |||
49 | MODULE_PARM_DESC(debug, "set debug level (1=info,2=tuner,4=i2c,8=ts,16=sram,32=reg (|-able))." DEBSTATUS); | 49 | MODULE_PARM_DESC(debug, "set debug level (1=info,2=tuner,4=i2c,8=ts,16=sram,32=reg (|-able))." DEBSTATUS); |
50 | #undef DEBSTATUS | 50 | #undef DEBSTATUS |
51 | 51 | ||
52 | DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); | ||
53 | |||
52 | /* global zero for ibi values */ | 54 | /* global zero for ibi values */ |
53 | flexcop_ibi_value ibi_zero; | 55 | flexcop_ibi_value ibi_zero; |
54 | 56 | ||
@@ -66,8 +68,10 @@ static int flexcop_dvb_stop_feed(struct dvb_demux_feed *dvbdmxfeed) | |||
66 | 68 | ||
67 | static int flexcop_dvb_init(struct flexcop_device *fc) | 69 | static int flexcop_dvb_init(struct flexcop_device *fc) |
68 | { | 70 | { |
69 | int ret; | 71 | int ret = dvb_register_adapter(&fc->dvb_adapter, |
70 | if ((ret = dvb_register_adapter(&fc->dvb_adapter,"FlexCop Digital TV device",fc->owner,fc->dev)) < 0) { | 72 | "FlexCop Digital TV device", fc->owner, |
73 | fc->dev, adapter_nr); | ||
74 | if (ret < 0) { | ||
71 | err("error registering DVB adapter"); | 75 | err("error registering DVB adapter"); |
72 | return ret; | 76 | return ret; |
73 | } | 77 | } |
@@ -257,6 +261,12 @@ int flexcop_device_initialize(struct flexcop_device *fc) | |||
257 | if ((ret = flexcop_dvb_init(fc))) | 261 | if ((ret = flexcop_dvb_init(fc))) |
258 | goto error; | 262 | goto error; |
259 | 263 | ||
264 | /* i2c has to be done before doing EEProm stuff - | ||
265 | * because the EEProm is accessed via i2c */ | ||
266 | ret = flexcop_i2c_init(fc); | ||
267 | if (ret) | ||
268 | goto error; | ||
269 | |||
260 | /* do the MAC address reading after initializing the dvb_adapter */ | 270 | /* do the MAC address reading after initializing the dvb_adapter */ |
261 | if (fc->get_mac_addr(fc, 0) == 0) { | 271 | if (fc->get_mac_addr(fc, 0) == 0) { |
262 | u8 *b = fc->dvb_adapter.proposed_mac; | 272 | u8 *b = fc->dvb_adapter.proposed_mac; |
@@ -266,10 +276,6 @@ int flexcop_device_initialize(struct flexcop_device *fc) | |||
266 | } else | 276 | } else |
267 | warn("reading of MAC address failed.\n"); | 277 | warn("reading of MAC address failed.\n"); |
268 | 278 | ||
269 | |||
270 | if ((ret = flexcop_i2c_init(fc))) | ||
271 | goto error; | ||
272 | |||
273 | if ((ret = flexcop_frontend_init(fc))) | 279 | if ((ret = flexcop_frontend_init(fc))) |
274 | goto error; | 280 | goto error; |
275 | 281 | ||