Hi Dmitry, On Tue, Jan 23, 2018 at 10:52:36AM -0800, Dmitry Torokhov wrote: > When attempting enter factory mode on firmware that does not support it, > we'd error out, but leave the device with interrupts disabled, and thus > touch not working. Fix it by moving the check before we disable > interrupts/allocate memory for debug buffers. > > Fixes: fd335ab04b3f ("Input: edt-ft5x06 - add support for M09 firmware version") > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> makes sense! Reviewed-by: Andi Shyti <andi@xxxxxxxxxxx> Andi > --- > drivers/input/touchscreen/edt-ft5x06.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c > index c53a3d7239e72..1e18ca0d1b4e1 100644 > --- a/drivers/input/touchscreen/edt-ft5x06.c > +++ b/drivers/input/touchscreen/edt-ft5x06.c > @@ -511,6 +511,12 @@ static int edt_ft5x06_factory_mode(struct edt_ft5x06_ts_data *tsdata) > int ret; > int error; > > + if (tsdata->version != EDT_M06) { > + dev_err(&client->dev, > + "No factory mode support for non-M06 devices\n"); > + return -EINVAL; > + } > + > disable_irq(client->irq); > > if (!tsdata->raw_buffer) { > @@ -524,9 +530,6 @@ static int edt_ft5x06_factory_mode(struct edt_ft5x06_ts_data *tsdata) > } > > /* mode register is 0x3c when in the work mode */ > - if (tsdata->version != EDT_M06) > - goto m09_out; > - > error = edt_ft5x06_register_write(tsdata, WORK_REGISTER_OPMODE, 0x03); > if (error) { > dev_err(&client->dev, > @@ -559,11 +562,6 @@ static int edt_ft5x06_factory_mode(struct edt_ft5x06_ts_data *tsdata) > enable_irq(client->irq); > > return error; > - > -m09_out: > - dev_err(&client->dev, "No factory mode support for M09/M12/GENERIC_FT\n"); > - return -EINVAL; > - > } > > static int edt_ft5x06_work_mode(struct edt_ft5x06_ts_data *tsdata) > -- > 2.16.0.rc1.238.g530d649a79-goog > > > -- > Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html