Skip to content

Commit

Permalink
i2c-algo-bit: Refactor adapter registration
Browse files Browse the repository at this point in the history
Use a function pointer to decide whether to call i2c_add_adapter or
i2c_add_numbered_adapter. This makes the code more compact than the
current strategy of having the common code in a separate function.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
  • Loading branch information
Jean Delvare authored and Jean Delvare committed Jan 10, 2011
1 parent 92ed1a7 commit f451171
Showing 1 changed file with 5 additions and 16 deletions.
21 changes: 5 additions & 16 deletions drivers/i2c/algos/i2c-algo-bit.c
Original file line number Diff line number Diff line change
Expand Up @@ -600,7 +600,8 @@ static const struct i2c_algorithm i2c_bit_algo = {
/*
* registering functions to load algorithms at runtime
*/
static int i2c_bit_prepare_bus(struct i2c_adapter *adap)
static int __i2c_bit_add_bus(struct i2c_adapter *adap,
int (*add_adapter)(struct i2c_adapter *))
{
struct i2c_algo_bit_data *bit_adap = adap->algo_data;

Expand All @@ -614,30 +615,18 @@ static int i2c_bit_prepare_bus(struct i2c_adapter *adap)
adap->algo = &i2c_bit_algo;
adap->retries = 3;

return 0;
return add_adapter(adap);
}

int i2c_bit_add_bus(struct i2c_adapter *adap)
{
int err;

err = i2c_bit_prepare_bus(adap);
if (err)
return err;

return i2c_add_adapter(adap);
return __i2c_bit_add_bus(adap, i2c_add_adapter);
}
EXPORT_SYMBOL(i2c_bit_add_bus);

int i2c_bit_add_numbered_bus(struct i2c_adapter *adap)
{
int err;

err = i2c_bit_prepare_bus(adap);
if (err)
return err;

return i2c_add_numbered_adapter(adap);
return __i2c_bit_add_bus(adap, i2c_add_numbered_adapter);
}
EXPORT_SYMBOL(i2c_bit_add_numbered_bus);

Expand Down

0 comments on commit f451171

Please sign in to comment.