Markus Plessing wrote:
> Wolfgang Grandegger schrieb:
>> Hi Markus,
> 
> Hi Wolfgang.
> 
> Are we talking of the same? Think not.
> Should I have changed the subject?

I think so, but I do not see that the CAN TX done event is communicated
over USB (like for the esd_usb2).

>> Markus Plessing wrote:
>>> Hi Wolfgang,
>>>
>>> Wolfgang Grandegger schrieb:
>>>> Hi Mathias
>>>>> +static void esd_usb2_tx_done_msg(struct esd_usb2_net *net, +
>>>>> struct esd_usb2_msg *msg) +{ +    struct net_device_stats *stats =
>>>>> &net->netdev->stats; + +  if
>>>>> (!netif_device_present(net->netdev)) +            return; + +     if
>>>>> (msg->msg.txdone.status == 0) { +         stats->tx_packets++; +
>>>>> stats->tx_bytes += msg->msg.txdone.hnd & 0xf; +   } +} [...] + +
>>>>> netdev->trans_start = jiffies; + +        can_get_echo_skb(netdev,
>>>>> context->echo_index);
>>>> This functions is called when the USB transfer has completed,
>>>> right? can_get_echo_skb() should be called when the TX done
>>>> notification arrives (in esd_usb2_tx_done_msg). This is *wrong*
>>>> in the ems_usb driver as well and should be fixed. Wolfgang.
>>> The ems_usb driver increments the tx_packets and tx_bytes before
>>> the call to can_get_echo_skb. Is there anything more to do? I don't
>>> see a need of a fix in ems_usb or am I wrong?
>> can_get_echo_skb() should be called in esd_usb2_tx_done_msg().
> 
> 
> [...] out of context above [...]
>  >>> This is *wrong* in the ems_usb driver as well and should be fixed.
> [...] out of context [...]
> 
> 
> You mentioned that the issue rised in *esd usb2 driver* is also a issue
> for the *ems_usb driver*. IMO this is not the case.
> 
> Can you please clarify this for *ems_usb*? Thanks :-)

can_get_echo_skb() (and also netdev->stats.tx_packets++, etc.) is
currently called in ems_usb_write_bulk_callback(). This function is
called when the *USB* transfer has completed, I believe. But
can_get_echo_skb() should be called when the *CAN* TX done event is
signaled (by the SJA1000). This is important to ensure proper timing of
locally looped back (echoed) messages. Is the problem clear now?

Wolfgang.
_______________________________________________
Socketcan-core mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/socketcan-core

Reply via email to