When possible use dev_err_probe help to properly deal with the PROBE_DEFER error, the benefit is that DEFER issue will be logged in the devices_deferred debugfs file. Using dev_err_probe() can reduce code size, and the error value gets printed. Signed-off-by: Cai Huoqing <caihuoqing@xxxxxxxxx> --- drivers/input/keyboard/mpr121_touchkey.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/input/keyboard/mpr121_touchkey.c b/drivers/input/keyboard/mpr121_touchkey.c index 40d6e5087cde..e4d416c30803 100644 --- a/drivers/input/keyboard/mpr121_touchkey.c +++ b/drivers/input/keyboard/mpr121_touchkey.c @@ -96,8 +96,8 @@ static struct regulator *mpr121_vdd_supply_init(struct device *dev) vdd_supply = devm_regulator_get(dev, "vdd"); if (IS_ERR(vdd_supply)) { - dev_err(dev, "failed to get vdd regulator: %ld\n", - PTR_ERR(vdd_supply)); + dev_err_probe(dev, PTR_ERR(vdd_supply), + "failed to get vdd regulator\n"); return vdd_supply; } @@ -267,11 +267,9 @@ static int mpr_touchkey_probe(struct i2c_client *client, error = device_property_read_u32_array(dev, "linux,keycodes", mpr121->keycodes, mpr121->keycount); - if (error) { - dev_err(dev, - "failed to read linux,keycode property: %d\n", error); - return error; - } + if (error) + return dev_err_probe(dev, error, + "failed to read linux, keycode property\n"); input_dev->name = "Freescale MPR121 Touchkey"; input_dev->id.bustype = BUS_I2C; -- 2.25.1