aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/802-can-0006-can-rx-offload-Prepare-for-CAN-FD-support.patch
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2022-03-21 01:16:48 +0000
committerDaniel Golle <daniel@makrotopia.org>2022-03-21 13:11:56 +0000
commit786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186 (patch)
tree926fecb2b1f6ce1e42ba7ef4c7aab8e68dfd214c /target/linux/layerscape/patches-5.4/802-can-0006-can-rx-offload-Prepare-for-CAN-FD-support.patch
parent9470160c350d15f765c33d6c1db15d6c4709a64c (diff)
downloadupstream-786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186.tar.gz
upstream-786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186.tar.bz2
upstream-786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186.zip
kernel: delete Linux 5.4 config and patches
As the upcoming release will be based on Linux 5.10 only, remove all kernel configuration as well as patches for Linux 5.4. There were no targets still actively using Linux 5.4. Signed-off-by: Daniel Golle <daniel@makrotopia.org> (cherry picked from commit 3a14580411adfb75f9a44eded9f41245b9e44606)
Diffstat (limited to 'target/linux/layerscape/patches-5.4/802-can-0006-can-rx-offload-Prepare-for-CAN-FD-support.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/802-can-0006-can-rx-offload-Prepare-for-CAN-FD-support.patch206
1 files changed, 0 insertions, 206 deletions
diff --git a/target/linux/layerscape/patches-5.4/802-can-0006-can-rx-offload-Prepare-for-CAN-FD-support.patch b/target/linux/layerscape/patches-5.4/802-can-0006-can-rx-offload-Prepare-for-CAN-FD-support.patch
deleted file mode 100644
index d5c88ac0c8..0000000000
--- a/target/linux/layerscape/patches-5.4/802-can-0006-can-rx-offload-Prepare-for-CAN-FD-support.patch
+++ /dev/null
@@ -1,206 +0,0 @@
-From 42abc4a8a97a87734c759c02c5ba255ed5124a2c Mon Sep 17 00:00:00 2001
-From: Joakim Zhang <qiangqing.zhang@nxp.com>
-Date: Fri, 12 Jul 2019 08:02:38 +0000
-Subject: [PATCH] can: rx-offload: Prepare for CAN FD support
-
-The skbs for classic CAN and CAN FD frames are allocated with separate
-functions: alloc_can_skb() and alloc_canfd_skb().
-
-In order to support CAN FD frames via the rx-offload helper, the driver
-itself has to allocate the skb (depending whether it received a classic
-CAN or CAN FD frame), as the rx-offload helper cannot know which kind of
-CAN frame the driver has received.
-
-This patch moves the allocation of the skb into the struct
-can_rx_offload::mailbox_read callbacks of the the flexcan and ti_hecc
-driver and adjusts the rx-offload helper accordingly.
-
-Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- drivers/net/can/flexcan.c | 27 +++++++++++-----
- drivers/net/can/dev/rx-offload.c | 70 ++++++++++--------------------------------
- include/linux/can/rx-offload.h | 6 ++--
- 3 files changed, 40 insertions(+), 63 deletions(-)
-
---- a/drivers/net/can/flexcan.c
-+++ b/drivers/net/can/flexcan.c
-@@ -791,16 +791,23 @@ static inline struct flexcan_priv *rx_of
- return container_of(offload, struct flexcan_priv, offload);
- }
-
--static unsigned int flexcan_mailbox_read(struct can_rx_offload *offload,
-- struct can_frame *cf,
-- u32 *timestamp, unsigned int n)
-+static struct sk_buff *flexcan_mailbox_read(struct can_rx_offload *offload,
-+ unsigned int n, u32 *timestamp,
-+ bool drop)
- {
- struct flexcan_priv *priv = rx_offload_to_priv(offload);
- struct flexcan_regs __iomem *regs = priv->regs;
- struct flexcan_mb __iomem *mb;
-+ struct sk_buff *skb;
-+ struct can_frame *cf;
- u32 reg_ctrl, reg_id, reg_iflag1;
- int i;
-
-+ if (unlikely(drop)) {
-+ skb = ERR_PTR(-ENOBUFS);
-+ goto mark_as_read;
-+ }
-+
- mb = flexcan_get_mb(priv, n);
-
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
-@@ -814,7 +821,7 @@ static unsigned int flexcan_mailbox_read
- code = reg_ctrl & FLEXCAN_MB_CODE_MASK;
- if ((code != FLEXCAN_MB_CODE_RX_FULL) &&
- (code != FLEXCAN_MB_CODE_RX_OVERRUN))
-- return 0;
-+ return NULL;
-
- if (code == FLEXCAN_MB_CODE_RX_OVERRUN) {
- /* This MB was overrun, we lost data */
-@@ -824,11 +831,17 @@ static unsigned int flexcan_mailbox_read
- } else {
- reg_iflag1 = priv->read(&regs->iflag1);
- if (!(reg_iflag1 & FLEXCAN_IFLAG_RX_FIFO_AVAILABLE))
-- return 0;
-+ return NULL;
-
- reg_ctrl = priv->read(&mb->can_ctrl);
- }
-
-+ skb = alloc_can_skb(offload->dev, &cf);
-+ if (!skb) {
-+ skb = ERR_PTR(-ENOMEM);
-+ goto mark_as_read;
-+ }
-+
- /* increase timstamp to full 32 bit */
- *timestamp = reg_ctrl << 16;
-
-@@ -847,7 +860,7 @@ static unsigned int flexcan_mailbox_read
- *(__be32 *)(cf->data + i) = data;
- }
-
-- /* mark as read */
-+ mark_as_read:
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
- /* Clear IRQ */
- if (n < 32)
-@@ -864,7 +877,7 @@ static unsigned int flexcan_mailbox_read
- */
- priv->read(&regs->timer);
-
-- return 1;
-+ return skb;
- }
-
-
---- a/drivers/net/can/dev/rx-offload.c
-+++ b/drivers/net/can/dev/rx-offload.c
-@@ -139,71 +139,35 @@ static int can_rx_offload_compare(struct
- static struct sk_buff *
- can_rx_offload_offload_one(struct can_rx_offload *offload, unsigned int n)
- {
-- struct sk_buff *skb = NULL, *skb_error = NULL;
-+ struct sk_buff *skb;
- struct can_rx_offload_cb *cb;
-- struct can_frame *cf;
-- int ret;
-+ bool drop = false;
-+ u32 timestamp;
-
-- if (likely(skb_queue_len(&offload->skb_queue) <
-- offload->skb_queue_len_max)) {
-- skb = alloc_can_skb(offload->dev, &cf);
-- if (unlikely(!skb))
-- skb_error = ERR_PTR(-ENOMEM); /* skb alloc failed */
-- } else {
-- skb_error = ERR_PTR(-ENOBUFS); /* skb_queue is full */
-- }
--
-- /* If queue is full or skb not available, drop by reading into
-- * overflow buffer.
-- */
-- if (unlikely(skb_error)) {
-- struct can_frame cf_overflow;
-- u32 timestamp;
--
-- ret = offload->mailbox_read(offload, &cf_overflow,
-- &timestamp, n);
--
-- /* Mailbox was empty. */
-- if (unlikely(!ret))
-- return NULL;
--
-- /* Mailbox has been read and we're dropping it or
-- * there was a problem reading the mailbox.
-- *
-- * Increment error counters in any case.
-- */
-- offload->dev->stats.rx_dropped++;
-- offload->dev->stats.rx_fifo_errors++;
--
-- /* There was a problem reading the mailbox, propagate
-- * error value.
-- */
-- if (unlikely(ret < 0))
-- return ERR_PTR(ret);
--
-- return skb_error;
-- }
--
-- cb = can_rx_offload_get_cb(skb);
-- ret = offload->mailbox_read(offload, cf, &cb->timestamp, n);
-+ /* If queue is full drop frame */
-+ if (unlikely(skb_queue_len(&offload->skb_queue) >
-+ offload->skb_queue_len_max))
-+ drop = true;
-
-+ skb = offload->mailbox_read(offload, n, &timestamp, drop);
- /* Mailbox was empty. */
-- if (unlikely(!ret)) {
-- kfree_skb(skb);
-+ if (unlikely(!skb))
- return NULL;
-- }
--
-- /* There was a problem reading the mailbox, propagate error value. */
-- if (unlikely(ret < 0)) {
-- kfree_skb(skb);
-
-+ /* There was a problem reading the mailbox, propagate
-+ * error value.
-+ */
-+ if (unlikely(IS_ERR(skb))) {
- offload->dev->stats.rx_dropped++;
- offload->dev->stats.rx_fifo_errors++;
-
-- return ERR_PTR(ret);
-+ return skb;
- }
-
- /* Mailbox was read. */
-+ cb = can_rx_offload_get_cb(skb);
-+ cb->timestamp = timestamp;
-+
- return skb;
- }
-
---- a/include/linux/can/rx-offload.h
-+++ b/include/linux/can/rx-offload.h
-@@ -15,9 +15,9 @@
- struct can_rx_offload {
- struct net_device *dev;
-
-- unsigned int (*mailbox_read)(struct can_rx_offload *offload,
-- struct can_frame *cf,
-- u32 *timestamp, unsigned int mb);
-+ struct sk_buff *(*mailbox_read)(struct can_rx_offload *offload,
-+ unsigned int mb, u32 *timestamp,
-+ bool drop);
-
- struct sk_buff_head skb_queue;
- u32 skb_queue_len_max;