On 02/14/2011 02:15 PM, Subhasish Ghosh wrote: > Hello, > > The problem with the "all" implementation is that it hogs the ARM/DSP > heavily and that's the reason why we specifically avoided this in our > firmware design. > Hence, implementing this condition spoils the whole purpose of the PRU!! What about implementing the standard id/mask approach? if (canid & mask == id & mask) aceept(); else discard(); To keep the hot-path as small as possible, the id & mask operation is done during setup, only one. This is probably just an additional "and" operation (the "& mask"). This opens the way to act like a normal can controller. As long as we don't have any support for hardware filters in socketcan, it's a good choice to use sysfs to configure your filters. Have a look at [1] and [2] for how to use sysfs files. cheers, Marc [1] http://git.kernel.org/linus/3a5655a5b545e9647c3437473ee3d815fe1b9050 [2] http://git.kernel.org/linus/fef52b0171dfd7dd9b85c9cc201bd433b42a8ded -- Pengutronix e.K. | Marc Kleine-Budde | Industrial Linux Solutions | Phone: +49-231-2826-924 | Vertretung West/Dortmund | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |