Hi Dmitry,
On Monday 16 September 2013 17:28:46 Dmitry Torokhov wrote:
[...]
quoted
quoted
static int mxs_lradc_ts_register(struct mxs_lradc *lradc)
@@ -641,6 +1056,7 @@ static void mxs_lradc_ts_unregister(struct
mxs_lradc *lradc)
cancel_work_sync(&lradc->ts_work);
+ mxs_lradc_disable_ts(lradc);
input_unregister_device(lradc->ts_input);
}
This looks iffy... Normally you disable the device so that it does not
generate more interrupts, and then cancel outstanding work(s), otherwise
newly generated interrupts may cause more work to be scheduled. Or I
missed some of the context and this is not a concern here?
This part gets removed in patch 6/6:
@@ -1054,8 +891,6 @@ static void mxs_lradc_ts_unregister(struct mxs_lradc *lradc)
if (!lradc->use_touchscreen)
return;
- cancel_work_sync(&lradc->ts_work);
-
mxs_lradc_disable_ts(lradc);
input_unregister_device(lradc->ts_input);
}
But you are right, I should move this into patch 5/6.
Thanks
Regards,
Juergen
--
Pengutronix e.K. | Juergen Beisert |
Linux Solutions for Science and Industry | http://www.pengutronix.de/ |