Re: [PATCH] i2c: core: add devm apis for i2c_new_dummy and i2c_unregister

From: Laxman Dewangan
Date: Wed Feb 24 2016 - 06:23:40 EST


Hi Wolfram,

On Monday 08 February 2016 06:57 PM, Laxman Dewangan wrote:
Add device managed APIs for i2c_new_dummy() and
i2c_unregister_device() so that it can be managed by
device framework for freeing it.

This helps on following:
1. Maintaining the resource allocation and deallocation
i2c_dummy = i2c_new_dummy();
devm_regmap_init_i2c(i2c_dummy, &regmap_config)

On this case, the user of i2c_dummy which is
devm_regmap_init_i2c() is managed allocation where
i2c_new_dummy() is not.
On Free path, we have
i2c_unregister_device(i2c_dummy)
and later, device framework release the regmap. In this
case, client of i2c_dummy after the i2c_dummy.

By using devm apis, the sequence can be maintain
i2c_dummy = devm_i2c_new_dummy();
devm_regmap_init_i2c(i2c_dummy, &regmap_config)

and resource deallocation will be done in reverse order
by device framework.

2. No need to release the i2c_client in error/remove path and hence
there is less code requirement.

Signed-off-by: Laxman Dewangan <ldewangan@xxxxxxxxxx>



Can you please review this?