Skip to content

Commit

Permalink
media: dvb-frontends/m88rs6060: Fix m88rs6060_probe().
Browse files Browse the repository at this point in the history
  • Loading branch information
crazycat69 committed Mar 15, 2024
1 parent a4014d9 commit 8ac9d8f
Showing 1 changed file with 21 additions and 17 deletions.
38 changes: 21 additions & 17 deletions drivers/media/dvb-frontends/m88rs6060.c
Original file line number Diff line number Diff line change
Expand Up @@ -3506,7 +3506,6 @@ static int m88rs6060_probe(struct i2c_client *client)
base->count++;
dev->base = base;
}else{

base = kzalloc(sizeof(struct m88rs6060_base),GFP_KERNEL);
if(!base)
goto err_kfree;
Expand All @@ -3519,25 +3518,26 @@ static int m88rs6060_probe(struct i2c_client *client)
}

dev->regmap = regmap_init_i2c(client, &regmap_config);
if (IS_ERR(dev->regmap)) {
ret = PTR_ERR(dev->regmap);
goto err_base_kfree;
}
/*check demod i2c */
ret = regmap_read(dev->regmap, 0x00, &tmp);
if (ret)
goto err_regmap_exit;
if (tmp != 0xe2)
goto err_regmap_exit;

if (IS_ERR(dev->regmap)) {
ret = PTR_ERR(dev->regmap);
goto err_base_kfree;
}
/*check demod i2c */
ret = regmap_read(dev->regmap, 0x00, &tmp);
if (ret)
goto err_regmap_exit;
if (tmp != 0xe2)
{
ret = -ENODEV;
goto err_regmap_exit;
}

dev->mclk = 96000;

memcpy(&dev->fe.ops, &m88rs6060_ops, sizeof(struct dvb_frontend_ops));
*cfg->fe = &dev->fe;
dev->fe_status = 0;


if(dev->config.HAS_CI){ //for 6910SECI
//for ci clk si5351
struct si5351_priv *priv;
Expand Down Expand Up @@ -3593,7 +3593,11 @@ static int m88rs6060_probe(struct i2c_client *client)
err_regmap_exit:
regmap_exit(dev->regmap);
err_base_kfree:
kfree(base);
base->count--;
if (base->count==0) {
list_del(&base->m88rs6060list);
kfree(base);
}
err_kfree:
kfree(dev);

Expand All @@ -3610,15 +3614,15 @@ static void m88rs6060_remove(struct i2c_client *client)
dev->base->count --;
if(dev->base->count==0)
{
list_del(&dev->base->m88rs6060list);
kfree(dev->base);
list_del(&dev->base->m88rs6060list);
kfree(dev->base);
}
if(dev->priv){
dev->priv->base1->count --;
if(dev->priv->base1->count==0){
list_del(&dev->priv->base1->si5351list);
kfree(dev->priv);
}
}
}
regmap_exit(dev->regmap);
dev->fe.ops.release = NULL;
Expand Down

0 comments on commit 8ac9d8f

Please sign in to comment.