Hi Dmitry, On Monday 16 September 2013 17:28:46 Dmitry Torokhov wrote: > [...] > > > 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/ | _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel