mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-03 19:26:01 -04:00
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.de Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user