On 18/10/24, Dmitry Torokhov wrote: > The driver neglects to free the instance of I2C regmap constructed at > the beginning of the edt_ft5x06_ts_probe() method when probe fails. > Additionally edt_ft5x06_ts_remove() is freeing the regmap too early, > before the rest of the device resources that are managed by devm are > released. > > Fix this by installing a custom devm action that will ensure that the > regmap is released at the right time during normal teardown as well as > in case of probe failure. > > Note that devm_regmap_init_i2c() could not be used because the driver > may replace the original regmap with a regmap specific for M06 devices > in the middle of the probe, and using devm_regmap_init_i2c() would > result in releasing the M06 regmap too early. > > Reported-by: Li Zetao <lizetao1@xxxxxxxxxx> > Fixes: 9dfd9708ffba ("Input: edt-ft5x06 - convert to use regmap API") > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> Reviewed-by: Oliver Graute <oliver.graute@xxxxxxxxxxxxxxxxx>