@@ -1814,13 +1814,7 @@ static void lgdt3306a_release(struct dvb_frontend *fe)
struct lgdt3306a_state *state = fe->demodulator_priv;
dbg_info("\n");
-
- /*
- * If state->muxc is not NULL, then we are an i2c device
- * and lgdt3306a_remove will clean up state
- */
- if (!state->muxc)
- kfree(state);
+ kfree(state);
}
static const struct dvb_frontend_ops lgdt3306a_ops;
@@ -2221,7 +2215,7 @@ static int lgdt3306a_probe(struct i2c_client *client,
sizeof(struct lgdt3306a_config));
config->i2c_addr = client->addr;
- fe = dvb_attach(lgdt3306a_attach, config, client->adapter);
+ fe = lgdt3306a_attach(config, client->adapter);
if (fe == NULL) {
ret = -ENODEV;
goto err_fe;
This symbol mismatch is handled by NULL'ing out the release callback if the driver is loaded as an i2c device. This patch reverts: - 94448e21cf08b10f7dc7acdaca387594370396b0 - 835d66173a38538c072a7c393d02360dcfac8582 The symbol count mismatch is handled by: - 5b3a8e906973540b61dbf402c6b6f8d64d4ae119 Signed-off-by: Brad Love <brad@nextdimension.cc> --- drivers/media/dvb-frontends/lgdt3306a.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-)