On 07/24/2010 07:47 PM, Fawad Lateef wrote: > Hello Everyone, > > Recently I spent long-time in rewriting and testing rx and tx processing for > mcp251x driver (especifically for AT91 and MCP2515) which now use > Asynchronous mode in normal conditions which is fast and if there is some > MERRF error then it switches to slow path which is Synchronous and later > switch back fast/Async path when error condition is removed. Moreover it > does bus recovery through restart-ms if BUS goes offline and this continues > till BUS becomes online. There isn't any sort of hanging in any case. > > On Sat, Jul 24, 2010 at 4:14 PM, Alexander Holler <[email protected]>wrote: > >> Am 24.07.2010 17:01, schrieb Alexander Holler: >> >> >> That doesn't help. The irq isn't trigger by MERR but the loop in the IRQ >>> will not be left if that bit is set. Clearing the bit doesn't help, >>> either clearing it doesn't work, or the bit will get set again almost >>> right after it was cleared. >>> >> >> The datasheet says >> >> "Once an interrupt flag is set by the device, the flag can not be reset by >> the MCU until the interrupt condition is removed." >> >> So it's likely that this bit can' be cleared until the error has gone away >> (even if it isn't used as trigger). >> >> >> Regards, >> >> Alexander >> > > At the moment that driver code is very ugly thats why I haven't posted it on > mailing-list yet. On monday I can post it if someone want to test it (kindly > let me know); although I will post cleaned-up patch some time later.
I'm curious why you did re-write the driver. Did you try the mcp251x driver from the mainline kernel? What problems did you encounter? Thanks, Wolfgang. _______________________________________________ Socketcan-core mailing list [email protected] https://lists.berlios.de/mailman/listinfo/socketcan-core
