Wolfgang Grandegger wrote: > On 06/18/2010 12:44 PM, Marc Kleine-Budde wrote: >> Wolfgang Grandegger wrote: >>> On 06/18/2010 12:16 PM, Marc Kleine-Budde wrote: >>>> Wolfgang Grandegger wrote: >>>>> Hi Hans-Jürgen, >>>>> >>>>> On 06/17/2010 12:52 PM, Hans J. Koch wrote: >>>>>> This adds a driver for FlexCAN based CAN controllers, >>>>>> e.g. found in Freescale i.MX35 SoCs. >>>>>> >>>>>> The original version of this driver was posted by Sascha Hauer in July >>>>>> 2009: >>>>>> http://kerneltrap.org/mailarchive/linux-netdev/2009/7/29/6251621 >>>>>> >>>>>> I took this version, added NAPI support, and fixed some problems found >>>>>> during testing. Well, here is the result. Please review. >>>>> I briefly browsed the patch and various bits and pieces are missing or >>>>> not correctly implemented. Marc already pointed out a few of them: >>>>> >>>>> - I do not find can_put/get_echo_skb functions in the code. How is >>>>> IFF_ECHO supposed to work? >>>> the driver uses hardware loopback >>> OK, then >>> >>> dev = alloc_candev(sizeof(struct flexcan_priv), 0); >>> >>> should be used (and TX_ECHO_SKB_MAX removed) in Hans-Jürgens driver. >>> >>>>> - Support for CAN_CTRLMODE_BERR_REPORTING and do_get_berr_counter() >>>>> seems to be missing. >>>>> >>>>> - Make use of alloc_can_skb() and alloc_can_err_skb(). >>>> the last two points are already addressed in my version of the driver. >>> I do not see support for CAN_CTRLMODE_BERR_REPORTING in your driver >>> (which has nothing to do with do_get_berr_counter). >> oh yes...sorry, got confused. >> >> However I implemented CAN_CTRLMODE_BERR_REPORTING, i.e. turning of the >> bit error interrupts by default. This has the effect that no bus warning >> and bus passive interrupt was signalled. >> >> I should add a comment to my driver. > > I'm confused, CAN_CTRLMODE_BERR_REPORTING means that the user can enable > bus error reporting, which seems not be handled in the driver your sent. > See: > > http://lxr.linux.no/linux/drivers/net/can/sja1000/sja1000.c#L134 > http://lxr.linux.no/linux/drivers/net/can/sja1000/sja1000.c#L588
Which interrupts does "IRQ_BEI" include? What should CAN_CTRLMODE_BERR_REPORTING do? Looking at: http://lxr.linux.no/linux+v2.6.34/drivers/net/can/sja1000/sja1000.c#L393 it seems that BEI on the SJA just effects bit, form and stuff errors. If I disable the corresponding interrupt in the flexcan. This is ERR_MSK, (1 << 14 in CTRL), I don't get error warning or error passive interrupts either. I'm not sure about the bus off interrupt. From my point of view this is not that what CAN_CTRLMODE_BERR_REPORTING should do, is it? Marc -- 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 |
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Socketcan-core mailing list [email protected] https://lists.berlios.de/mailman/listinfo/socketcan-core
