Inter-revision diff: patch 2

Comparing v3 (message) to v1 (message)

--- v3
+++ v1
@@ -1,10 +1,10 @@
 This patch adds support for the PCI based PCIe/402 CAN interface family
 from esd GmbH that is available with various form factors
-(https://esd.eu/en/products/402-series-can-interfaces).
+(https://esd.eu/technologie/can/can-und-can-fd-interfaces).
 
 All boards utilize a FPGA based CAN controller solution developed
 by esd (esdACC). For more information on the esdACC see
-https://esd.eu/en/products/esdacc.
+https://esd.eu/technologie/can/esd-advanced-can-controller-esdacc.
 
 This driver detects all available CAN interface board variants of
 the family but atm. operates the CAN-FD capable devices in
@@ -19,10 +19,10 @@
  drivers/net/can/Makefile               |   1 +
  drivers/net/can/esd/Kconfig            |  12 +
  drivers/net/can/esd/Makefile           |   7 +
- drivers/net/can/esd/esd_402_pci-core.c | 514 ++++++++++++++++
+ drivers/net/can/esd/esd_402_pci-core.c | 502 ++++++++++++++++
  drivers/net/can/esd/esdacc.c           | 777 +++++++++++++++++++++++++
  drivers/net/can/esd/esdacc.h           | 380 ++++++++++++
- 7 files changed, 1692 insertions(+)
+ 7 files changed, 1680 insertions(+)
  create mode 100644 drivers/net/can/esd/Kconfig
  create mode 100644 drivers/net/can/esd/Makefile
  create mode 100644 drivers/net/can/esd/esd_402_pci-core.c
@@ -86,10 +86,10 @@
 +obj-$(CONFIG_CAN_ESD_402_PCI) += esd_402_pci.o
 diff --git a/drivers/net/can/esd/esd_402_pci-core.c b/drivers/net/can/esd/esd_402_pci-core.c
 new file mode 100644
-index 000000000000..aaaeecfbd38f
+index 000000000000..80d816a78859
 --- /dev/null
 +++ b/drivers/net/can/esd/esd_402_pci-core.c
-@@ -0,0 +1,514 @@
+@@ -0,0 +1,502 @@
 +// SPDX-License-Identifier: GPL-2.0-only
 +/* Copyright (C) 2015 - 2016 Thomas Körper, esd electronic system design gmbh
 + * Copyright (C) 2017 - 2021 Stefan Mätje, esd electronics gmbh
@@ -182,7 +182,6 @@
 +	struct acc_core *cores;
 +
 +	bool msi_enabled;
-+	int irq_stack;
 +};
 +
 +static irqreturn_t pci402_interrupt(int irq, void *dev_id)
@@ -190,20 +189,8 @@
 +	struct pci_dev *pdev = dev_id;
 +	struct pci402_card *card = pci_get_drvdata(pdev);
 +	irqreturn_t irq_status;
-+	int irq_level_out;
-+	int irq_level_in;
-+
-+	/* Use <irq_stack> to check for IRQ multi service on multiple CPUs. */
-+	irq_level_in = __sync_fetch_and_add(&card->irq_stack, 1);
 +
 +	irq_status = acc_card_interrupt(&card->ov, card->cores);
-+
-+	irq_level_out = __sync_sub_and_fetch(&card->irq_stack, 1);
-+
-+	if (irq_level_in || irq_level_out) {
-+		pci_warn(pdev, "%s(): Bad level, in %d, out %d\n",
-+			 __func__, irq_level_in, irq_level_out);
-+	}
 +
 +	return irq_status;
 +}
@@ -447,6 +434,7 @@
 +		core->netdev = netdev;
 +
 +		netdev->flags |= IFF_ECHO;
++		netdev->dev_port = i;
 +		netdev->netdev_ops = &pci402_acc_netdev_ops;
 +		SET_NETDEV_DEV(netdev, &pdev->dev);
 +
@@ -606,7 +594,7 @@
 +MODULE_LICENSE("GPL");
 diff --git a/drivers/net/can/esd/esdacc.c b/drivers/net/can/esd/esdacc.c
 new file mode 100644
-index 000000000000..a8a02e48fc45
+index 000000000000..13f7397dfc4e
 --- /dev/null
 +++ b/drivers/net/can/esd/esdacc.c
 @@ -0,0 +1,777 @@
@@ -1155,10 +1143,10 @@
 +
 +	/* lost_cnt may be 0 if not supported by ESDACC version */
 +	if (msg->lost_cnt) {
-+		stats->rx_dropped += msg->lost_cnt;
++		stats->rx_errors += msg->lost_cnt;
 +		stats->rx_over_errors += msg->lost_cnt;
 +	} else {
-+		stats->rx_dropped++;
++		stats->rx_errors++;
 +		stats->rx_over_errors++;
 +	}
 +
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help