Commit dd94a2f1 authored by Marc Kleine-Budde's avatar Marc Kleine-Budde

can: at91_can: at91_alloc_can_err_skb() introduce new function

This is a preparation patch to convert the driver to make use of the
rx-offload helper. With rx-offload the received CAN frames are sorted
by their timestamp. Regular CAN RX'ed and TX'ed CAN frames are
timestamped by the hardware. Error events are not.

Introduce a new function at91_alloc_can_err_skb() the allocates an
error SKB and reads the current timestamp from the controller.

Link: https://lore.kernel.org/all/20231005-at91_can-rx_offload-v2-26-9987d53600e0@pengutronix.deSigned-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent 3db6154e
......@@ -576,6 +576,22 @@ static inline void at91_activate_rx_mb(const struct at91_priv *priv,
at91_write(priv, AT91_TCR, mask);
}
static inline u32 at91_get_timestamp(const struct at91_priv *priv)
{
return at91_read(priv, AT91_TIM);
}
static inline struct sk_buff *
at91_alloc_can_err_skb(struct net_device *dev,
struct can_frame **cf, u32 *timestamp)
{
const struct at91_priv *priv = netdev_priv(dev);
*timestamp = at91_get_timestamp(priv);
return alloc_can_err_skb(dev, cf);
}
/**
* at91_rx_overflow_err - send error frame due to rx overflow
* @dev: net device
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment