On 2014-04-30 17:46, Hartley Sweeten wrote:
On Wednesday, April 30, 2014 2:13 AM, Ian Abbott wrote:
As a side node, I wonder if it's worth stripping out those `|
I8254_BINARY` bits as it's basically 'OR'ing with zero anyway.

I like the I8254_BINARY, it documents the mode that the counter
is used in. But, if you want to strip them out...

Fair enough.

BTW, I noticed that the i8254_set_mode() helpers have a slight "bug".

        if (mode > (I8254_MODE5 | I8254_BINARY))
                return -1;

This test will not allow the mode (I8254_MODE5 | I8254_BCD). Nothing
uses it right now, and it's a bit silly to use BCD counting anyway. But...

It does get exposed to user-space by a few drivers that expose the 8254 as a counter subdevice. The "adv_pci_dio" and "das08" drivers expose it when handling the INSN_CONFIG_SET_COUNTER_MODE instruction (also, "me4000" driver handling it as a GPCT_SET_OPERATION instruction whatever that is - it should probably be deprecated in favour of INSN_CONFIG_SET_COUNTER_MODE). Also, the "amplc_dio200_common" module has the same bug in its handling of INSN_CONFIG_SET_COUNTER_MODE but uses its own function to set the mode instead of calling i8254_set_mode().

I'll post some patches to fix it later. Probably not worth backporting them to "stable".

--
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbo...@mev.co.uk>        )=-
-=( Tel: +44 (0)161 477 1898   FAX: +44 (0)161 718 3587         )=-
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to