|
@@ -572,6 +572,10 @@ static int zl10353_init(struct dvb_frontend *fe)
|
|
|
zl10353_dump_regs(fe);
|
|
|
if (state->config.parallel_ts)
|
|
|
zl10353_reset_attach[2] &= ~0x20;
|
|
|
+ if (state->config.clock_ctl_1)
|
|
|
+ zl10353_reset_attach[3] = state->config.clock_ctl_1;
|
|
|
+ if (state->config.pll_0)
|
|
|
+ zl10353_reset_attach[4] = state->config.pll_0;
|
|
|
|
|
|
/* Do a "hard" reset if not already done */
|
|
|
if (zl10353_read_register(state, 0x50) != zl10353_reset_attach[1] ||
|
|
@@ -614,6 +618,7 @@ struct dvb_frontend *zl10353_attach(const struct zl10353_config *config,
|
|
|
struct i2c_adapter *i2c)
|
|
|
{
|
|
|
struct zl10353_state *state = NULL;
|
|
|
+ int id;
|
|
|
|
|
|
/* allocate memory for the internal state */
|
|
|
state = kzalloc(sizeof(struct zl10353_state), GFP_KERNEL);
|
|
@@ -625,7 +630,8 @@ struct dvb_frontend *zl10353_attach(const struct zl10353_config *config,
|
|
|
memcpy(&state->config, config, sizeof(struct zl10353_config));
|
|
|
|
|
|
/* check if the demod is there */
|
|
|
- if (zl10353_read_register(state, CHIP_ID) != ID_ZL10353)
|
|
|
+ id = zl10353_read_register(state, CHIP_ID);
|
|
|
+ if ((id != ID_ZL10353) && (id != ID_CE6230) && (id != ID_CE6231))
|
|
|
goto error;
|
|
|
|
|
|
/* create dvb_frontend */
|