diff options
-rw-r--r-- | drivers/i2c/i2c-core-base.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c index 9eaf3f89aa7f..be242605df91 100644 --- a/drivers/i2c/i2c-core-base.c +++ b/drivers/i2c/i2c-core-base.c @@ -1570,8 +1570,10 @@ static int i2c_register_adapter(struct i2c_adapter *adap) adap->locked_flags = 0; rt_mutex_init(&adap->bus_lock); rt_mutex_init(&adap->mux_lock); + mutex_init(&adap->hold_lock); mutex_init(&adap->userspace_clients_lock); INIT_LIST_HEAD(&adap->userspace_clients); + INIT_DELAYED_WORK(&adap->unhold_work, i2c_adapter_unhold_work); /* Set default timeout to 1 second if not already set */ if (adap->timeout == 0) { @@ -1636,9 +1638,6 @@ static int i2c_register_adapter(struct i2c_adapter *adap) bus_for_each_drv(&i2c_bus_type, NULL, adap, __process_new_adapter); mutex_unlock(&core_lock); - mutex_init(&adap->hold_lock); - INIT_DELAYED_WORK(&adap->unhold_work, i2c_adapter_unhold_work); - return 0; out_reg: |