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/touchscreen/mms114.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/drivers/input/touchscreen/mms114.c b/drivers/input/touchscreen/mms114.c index 9fa3b0e421be..4b36db084d86 100644 --- a/drivers/input/touchscreen/mms114.c +++ b/drivers/input/touchscreen/mms114.c @@ -525,20 +525,14 @@ static int mms114_probe(struct i2c_client *client, i2c_set_clientdata(client, data); data->core_reg = devm_regulator_get(&client->dev, "avdd"); - if (IS_ERR(data->core_reg)) { - error = PTR_ERR(data->core_reg); - dev_err(&client->dev, - "Unable to get the Core regulator (%d)\n", error); - return error; - } + if (IS_ERR(data->core_reg)) + return dev_err_probe(&client->dev, PTR_ERR(data->core_reg), + "Unable to get the Core regulator\n"); data->io_reg = devm_regulator_get(&client->dev, "vdd"); - if (IS_ERR(data->io_reg)) { - error = PTR_ERR(data->io_reg); - dev_err(&client->dev, - "Unable to get the IO regulator (%d)\n", error); - return error; - } + if (IS_ERR(data->io_reg)) + return dev_err_probe(&client->dev, PTR_ERR(data->io_reg), + "Unable to get the IO regulator\n"); error = devm_request_threaded_irq(&client->dev, client->irq, NULL, mms114_interrupt, -- 2.25.1