Commit 8cf0adf2 authored by Dmitry Torokhov's avatar Dmitry Torokhov

Input: synaptics-rmi4 - fix handling failures from rmi_enable_sensor

If rmi_enable_sensor() fails in rmi_driver_probe(), we should not return
immediately, but disable IRQs and tear down function list.
Reviewed-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent f6c4442b
......@@ -1234,16 +1234,21 @@ static int rmi_driver_probe(struct device *dev)
if (retval < 0)
goto err_destroy_functions;
if (data->f01_container->dev.driver)
if (data->f01_container->dev.driver) {
/* Driver already bound, so enable ATTN now. */
return rmi_enable_sensor(rmi_dev);
retval = rmi_enable_sensor(rmi_dev);
if (retval)
goto err_disable_irq;
}
return 0;
err_disable_irq:
rmi_disable_irq(rmi_dev, false);
err_destroy_functions:
rmi_free_function_list(rmi_dev);
err:
return retval < 0 ? retval : 0;
return retval;
}
static struct rmi_driver rmi_physical_driver = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment