[linux-dvb] Updated Mantis VP-2033 remote control patch for Manu's jusst.de Mantis branch

Roland Scheidegger rscheidegger_lists at hispeed.ch
Mon May 19 19:47:22 CEST 2008


On 19.05.2008 18:52, Pauli Borodulin wrote:
> Heya!
> 
>> On 5/17/08, Pauli Borodulin <pauli at borodulin.fi> wrote:
>>> 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].
>>> [...]
> 
> Markus Rechberger wrote:
>> +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.
>> [...]
> 
> Thanks Markus! I created a revised version of the patch with call to
> flush_scheduled_work() after calling cancel_delayed_work. I also changed
> RC polling a bit so that it would work alike on different kernel
> configurations (thanks go to Kristian Slavov for pointing this out).
> 
> The patch is against
> http://www.jusst.de/hg/mantis/archive/b14e79e460fc.tar.bz2.

No offense, but I like my patch much better :-) [1]. I fail to see why
polling has to be done - just for half-working (at best on some cards,
not at all if the native repeat rate is too low) "improved" auto-repeat.

I was under the impression that using cancel_rearming_delayed_work
instead of cancel_delayed_work (as I did in my patch) would make it
unnecessary to call flush_scheduled_work (but I just followed some other
drivers and could be easily wrong).

As for the IR codes being in common ir code, I didn't care but the
dvb-usb driver also uses its own tables - though I see this driver
probably has reasons to do so.

[1]http://www.linuxtv.org/pipermail/linux-dvb/2008-May/026102.html


Roland




More information about the linux-dvb mailing list