diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c index d8e1546aea5e..ce3326feaa7d 100644 --- a/drivers/media/dvb-frontends/rtl2832.c +++ b/drivers/media/dvb-frontends/rtl2832.c @@ -821,6 +821,9 @@ static int rtl2832_deselect(struct i2c_mux_core *muxc, u32 chan_id) { struct rtl2832_dev *dev = i2c_mux_priv(muxc); + pr_err("rtl2832_deselect called from: %pS\n", + __builtin_return_address(0)); + schedule_delayed_work(&dev->i2c_gate_work, usecs_to_jiffies(100)); return 0; } @@ -1113,12 +1116,18 @@ static void rtl2832_remove(struct i2c_client *client) { struct rtl2832_dev *dev = i2c_get_clientdata(client); + pr_err("rtl2832_remove: before cancel\n"); + dev_dbg(&client->dev, "\n"); cancel_delayed_work_sync(&dev->i2c_gate_work); + pr_err("rtl2832_remove: before i2c_mux_del_adapters\n"); + i2c_mux_del_adapters(dev->muxc); + pr_err("rtl2832_remove: before kfree\n"); + regmap_exit(dev->regmap); kfree(dev);