[linux-dvb] Updated Mantis VP-2033 remote control patch for Manu's jusst.de Mantis branch
Markus Rechberger
mrechberger at gmail.com
Sat May 17 01:21:27 CEST 2008
Hi Pauli,
On 5/17/08, Pauli Borodulin <pauli at borodulin.fi> wrote:
> Heya!
>
> Since there has been some direct requests for this via email, I'm
> posting a updated version of Kristian Slavov's original remote control
> patch[1] for Manu's jusst.de Mantis branch. The new version is
> functionally the same as the one I posted in March[2].
>
> I have adapted the patch for the current driver tree and moved ir_codes
> back to ir-keymaps.c & ir-common.h to follow the standard kernel
> procedure for the IR stuff. The patch is against the current driver tree
> (cd1fc4c7f1d8).
>
> [1] http://www.linuxtv.org/pipermail/linux-dvb/2007-April/017279.html
> [2] http://www.linuxtv.org/pipermail/linux-dvb/2008-March/024301.html
>
> Regards,
> Pauli Borodulin
>
+int mantis_rc_exit(struct mantis_pci *mantis)
+{
+ mmwrite(mmread(MANTIS_INT_MASK) & (~MANTIS_INT_IRQ1),
MANTIS_INT_MASK);
+
+ cancel_delayed_work(&mantis->ir.rc_query_work);
+ input_unregister_device(mantis->ir.rc_dev);
+ dprintk(verbose, MANTIS_DEBUG, 1, "RC unregistered");
+ return 0;
+}
this might be dangerous when unloading the driver because the callback
function might still be running after cancel_delayed_work.
I ran into that problem a while ago and it could lock up the whole input system.
There's also a note in the kernelheaders:
/*
* Kill off a pending schedule_delayed_work(). Note that the work callback
* function may still be running on return from cancel_delayed_work(). Run
* flush_scheduled_work() to wait on it.
*/
include/linux/workqueue.h
Markus
More information about the linux-dvb
mailing list