Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1492630 > unrolled thread
| Started by | Amir Levy <amir.jer.levy@intel.com> |
|---|---|
| First post | 2016-09-28 16:50 +0200 |
| Last post | 2016-09-30 11:00 +0200 |
| Articles | 10 — 5 participants |
Back to article view | Back to linux.kernel
[PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking Amir Levy <amir.jer.levy@intel.com> - 2016-09-28 16:50 +0200
[PATCH v8 8/8] thunderbolt: Adding maintainer entry Amir Levy <amir.jer.levy@intel.com> - 2016-09-28 16:50 +0200
[PATCH v8 6/8] thunderbolt: Kconfig for Thunderbolt Networking Amir Levy <amir.jer.levy@intel.com> - 2016-09-28 16:50 +0200
[PATCH v8 2/8] thunderbolt: Updating the register definitions Amir Levy <amir.jer.levy@intel.com> - 2016-09-28 16:50 +0200
[PATCH v8 1/8] thunderbolt: Macro rename Amir Levy <amir.jer.levy@intel.com> - 2016-09-28 17:00 +0200
Re: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking David Miller <davem@davemloft.net> - 2016-09-30 08:00 +0200
Re: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking Greg KH <gregkh@linuxfoundation.org> - 2016-09-30 08:40 +0200
Re: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking David Miller <davem@davemloft.net> - 2016-09-30 08:50 +0200
RE: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking "Levy, Amir (Jer)" <amir.jer.levy@intel.com> - 2016-09-30 10:40 +0200
Re: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking "gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org> - 2016-09-30 11:00 +0200
| From | Amir Levy <amir.jer.levy@intel.com> |
|---|---|
| Date | 2016-09-28 16:50 +0200 |
| Subject | [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking |
| Message-ID | <smolj-7YU-3@gated-at.bofh.it> |
This driver enables Thunderbolt Networking on non-Apple platforms running Linux. Thunderbolt Networking provides peer-to-peer connections to transfer files between computers, perform PC migrations, and/or set up small workgroups with shared storage. This is a virtual connection that emulates an Ethernet adapter that enables Ethernet networking with the benefit of Thunderbolt superfast medium capability. Thunderbolt Networking enables two hosts and several devices that have a Thunderbolt controller to be connected together in a linear (Daisy chain) series from a single port. Thunderbolt Networking for Linux is compatible with Thunderbolt Networking on systems running macOS or Windows and also supports Thunderbolt generation 2 and 3 controllers. Note that all pre-existing Thunderbolt generation 3 features, such as USB, Display and other Thunderbolt device connectivity will continue to function exactly as they did prior to enabling Thunderbolt Networking. Code and Software Specifications: This kernel code creates a virtual ethernet device for computer to computer communication over a Thunderbolt cable. The new driver is a separate driver to the existing Thunderbolt driver. It is designed to work on systems running Linux that interface with Intel Connection Manager (ICM) firmware based Thunderbolt controllers that support Thunderbolt Networking. The kernel code operates in coordination with the Thunderbolt user- space daemon to implement full Thunderbolt networking functionality. Hardware Specifications: Thunderbolt Hardware specs have not yet been published but are used where necessary for register definitions. Changes since v7: - Removed debug prints - Edited error prints - Edited copyright notice - Changed the Kconfig patch to be after the code changes These patches were pushed to GitHub where they can be reviewed more comfortably with green/red highlighting: https://github.com/01org/thunderbolt-software-kernel-tree Daemon code: https://github.com/01org/thunderbolt-software-daemon For reference, here's a link to version 6: [v7]: https://lkml.org/lkml/2016/9/27/244 Amir Levy (8): thunderbolt: Macro rename thunderbolt: Updating the register definitions thunderbolt: Communication with the ICM (firmware) thunderbolt: Networking state machine thunderbolt: Networking transmit and receive thunderbolt: Kconfig for Thunderbolt Networking thunderbolt: Networking doc thunderbolt: Adding maintainer entry Documentation/00-INDEX | 2 + Documentation/thunderbolt/networking.txt | 132 ++ MAINTAINERS | 8 +- drivers/thunderbolt/Kconfig | 27 +- drivers/thunderbolt/Makefile | 3 +- drivers/thunderbolt/icm/Makefile | 2 + drivers/thunderbolt/icm/icm_nhi.c | 1514 ++++++++++++++++++++ drivers/thunderbolt/icm/icm_nhi.h | 82 ++ drivers/thunderbolt/icm/net.c | 2254 ++++++++++++++++++++++++++++++ drivers/thunderbolt/icm/net.h | 287 ++++ drivers/thunderbolt/nhi_regs.h | 115 +- 11 files changed, 4417 insertions(+), 9 deletions(-) create mode 100644 Documentation/thunderbolt/networking.txt create mode 100644 drivers/thunderbolt/icm/Makefile create mode 100644 drivers/thunderbolt/icm/icm_nhi.c create mode 100644 drivers/thunderbolt/icm/icm_nhi.h create mode 100644 drivers/thunderbolt/icm/net.c create mode 100644 drivers/thunderbolt/icm/net.h -- 2.7.4
[toc] | [next] | [standalone]
| From | Amir Levy <amir.jer.levy@intel.com> |
|---|---|
| Date | 2016-09-28 16:50 +0200 |
| Subject | [PATCH v8 8/8] thunderbolt: Adding maintainer entry |
| Message-ID | <smolj-7YU-11@gated-at.bofh.it> |
| In reply to | #1492630 |
Add Amir Levy as maintainer for Thunderbolt(TM) ICM driver Signed-off-by: Amir Levy <amir.jer.levy@intel.com> --- MAINTAINERS | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 01bff8e..a4a4614 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10358,7 +10358,13 @@ F: include/uapi/linux/stm.h THUNDERBOLT DRIVER M: Andreas Noever <andreas.noever@gmail.com> S: Maintained -F: drivers/thunderbolt/ +F: drivers/thunderbolt/* + +THUNDERBOLT ICM DRIVER +M: Amir Levy <amir.jer.levy@intel.com> +S: Maintained +F: drivers/thunderbolt/icm/ +F: Documentation/thunderbolt/networking.txt TI BQ27XXX POWER SUPPLY DRIVER R: Andrew F. Davis <afd@ti.com> -- 2.7.4
[toc] | [prev] | [next] | [standalone]
| From | Amir Levy <amir.jer.levy@intel.com> |
|---|---|
| Date | 2016-09-28 16:50 +0200 |
| Subject | [PATCH v8 6/8] thunderbolt: Kconfig for Thunderbolt Networking |
| Message-ID | <smolj-7YU-13@gated-at.bofh.it> |
| In reply to | #1492630 |
Update to the Kconfig Thunderbolt description to add
Thunderbolt networking as an option.
The menu item "Thunderbolt support" now offers:
"Apple Hardware Support" (existing)
and/or
"Thunderbolt Networking" (new)
You can choose the driver for your platform or build both drivers -
each driver will detect if it can run on the specific platform.
If the Thunderbolt Networking option is chosen, Thunderbolt Networking
will be enabled between Linux non-Apple systems, macOS and
Windows based systems.
Thunderbolt Networking will not affect any other Thunderbolt feature that
was previous available to Linux users on either Apple or
non-Apple platforms.
Signed-off-by: Amir Levy <amir.jer.levy@intel.com>
---
drivers/thunderbolt/Kconfig | 27 +++++++++++++++++++++++----
drivers/thunderbolt/Makefile | 3 ++-
2 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/drivers/thunderbolt/Kconfig b/drivers/thunderbolt/Kconfig
index c121acc..376e5bb 100644
--- a/drivers/thunderbolt/Kconfig
+++ b/drivers/thunderbolt/Kconfig
@@ -1,13 +1,32 @@
-menuconfig THUNDERBOLT
- tristate "Thunderbolt support for Apple devices"
+config THUNDERBOLT
+ tristate "Thunderbolt support"
depends on PCI
select CRC32
help
- Cactus Ridge Thunderbolt Controller driver
+ Thunderbolt Controller driver
+
+if THUNDERBOLT
+
+config THUNDERBOLT_APPLE
+ tristate "Apple hardware support"
+ help
This driver is required if you want to hotplug Thunderbolt devices on
Apple hardware.
Device chaining is currently not supported.
- To compile this driver a module, choose M here. The module will be
+ To compile this driver as a module, choose M here. The module will be
called thunderbolt.
+
+config THUNDERBOLT_ICM
+ tristate "Thunderbolt Networking"
+ help
+ This driver is required if you want Thunderbolt Networking on
+ non-Apple hardware.
+ It creates a virtual Ethernet device that enables computer to
+ computer communication over a Thunderbolt cable.
+
+ To compile this driver as a module, choose M here. The module will be
+ called thunderbolt_icm.
+
+endif
diff --git a/drivers/thunderbolt/Makefile b/drivers/thunderbolt/Makefile
index 5d1053c..b6aa6a3 100644
--- a/drivers/thunderbolt/Makefile
+++ b/drivers/thunderbolt/Makefile
@@ -1,3 +1,4 @@
-obj-${CONFIG_THUNDERBOLT} := thunderbolt.o
+obj-${CONFIG_THUNDERBOLT_APPLE} := thunderbolt.o
thunderbolt-objs := nhi.o ctl.o tb.o switch.o cap.o path.o tunnel_pci.o eeprom.o
+obj-${CONFIG_THUNDERBOLT_ICM} += icm/
--
2.7.4
[toc] | [prev] | [next] | [standalone]
| From | Amir Levy <amir.jer.levy@intel.com> |
|---|---|
| Date | 2016-09-28 16:50 +0200 |
| Subject | [PATCH v8 2/8] thunderbolt: Updating the register definitions |
| Message-ID | <smolj-7YU-17@gated-at.bofh.it> |
| In reply to | #1492630 |
Adding more Thunderbolt(TM) register definitions
and some helper macros.
Signed-off-by: Amir Levy <amir.jer.levy@intel.com>
---
drivers/thunderbolt/nhi_regs.h | 109 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 109 insertions(+)
diff --git a/drivers/thunderbolt/nhi_regs.h b/drivers/thunderbolt/nhi_regs.h
index 75cf069..b8e961f 100644
--- a/drivers/thunderbolt/nhi_regs.h
+++ b/drivers/thunderbolt/nhi_regs.h
@@ -9,6 +9,11 @@
#include <linux/types.h>
+#define NHI_MMIO_BAR 0
+
+#define TBT_RING_MIN_NUM_BUFFERS 2
+#define TBT_RING_MAX_FRAME_SIZE (4 * 1024)
+
enum ring_flags {
RING_FLAG_ISOCH_ENABLE = 1 << 27, /* TX only? */
RING_FLAG_E2E_FLOW_CONTROL = 1 << 28,
@@ -39,6 +44,33 @@ struct ring_desc {
u32 time; /* write zero */
} __packed;
+/**
+ * struct tbt_buf_desc - TX/RX ring buffer descriptor.
+ * This is same as struct ring_desc, but without the use of bitfields and
+ * with explicit endianity.
+ */
+struct tbt_buf_desc {
+ __le64 phys;
+ __le32 attributes;
+ __le32 time;
+};
+
+#define DESC_ATTR_LEN_SHIFT 0
+#define DESC_ATTR_LEN_MASK GENMASK(11, DESC_ATTR_LEN_SHIFT)
+#define DESC_ATTR_EOF_SHIFT 12
+#define DESC_ATTR_EOF_MASK GENMASK(15, DESC_ATTR_EOF_SHIFT)
+#define DESC_ATTR_SOF_SHIFT 16
+#define DESC_ATTR_SOF_MASK GENMASK(19, DESC_ATTR_SOF_SHIFT)
+#define DESC_ATTR_TX_ISOCH_DMA_EN BIT(20) /* TX */
+#define DESC_ATTR_RX_CRC_ERR BIT(20) /* RX after use */
+#define DESC_ATTR_DESC_DONE BIT(21)
+#define DESC_ATTR_REQ_STS BIT(22) /* TX and RX before use */
+#define DESC_ATTR_RX_BUF_OVRN_ERR BIT(22) /* RX after use */
+#define DESC_ATTR_INT_EN BIT(23)
+#define DESC_ATTR_OFFSET_SHIFT 24
+#define DESC_ATTR_OFFSET_MASK GENMASK(31, DESC_ATTR_OFFSET_SHIFT)
+
+
/* NHI registers in bar 0 */
/*
@@ -60,6 +92,30 @@ struct ring_desc {
*/
#define REG_RX_RING_BASE 0x08000
+#define REG_RING_STEP 16
+#define REG_RING_PHYS_LO_OFFSET 0
+#define REG_RING_PHYS_HI_OFFSET 4
+#define REG_RING_CONS_PROD_OFFSET 8 /* cons - RO, prod - RW */
+#define REG_RING_CONS_SHIFT 0
+#define REG_RING_CONS_MASK GENMASK(15, REG_RING_CONS_SHIFT)
+#define REG_RING_PROD_SHIFT 16
+#define REG_RING_PROD_MASK GENMASK(31, REG_RING_PROD_SHIFT)
+#define REG_RING_SIZE_OFFSET 12
+#define REG_RING_SIZE_SHIFT 0
+#define REG_RING_SIZE_MASK GENMASK(15, REG_RING_SIZE_SHIFT)
+#define REG_RING_BUF_SIZE_SHIFT 16
+#define REG_RING_BUF_SIZE_MASK GENMASK(27, REG_RING_BUF_SIZE_SHIFT)
+
+#define TBT_RING_CONS_PROD_REG(iobase, ringbase, ringnumber) \
+ ((iobase) + (ringbase) + \
+ ((ringnumber) * REG_RING_STEP) + \
+ REG_RING_CONS_PROD_OFFSET)
+
+#define TBT_REG_RING_PROD_EXTRACT(val) (((val) & REG_RING_PROD_MASK) >> \
+ REG_RING_PROD_SHIFT)
+
+#define TBT_REG_RING_CONS_EXTRACT(val) (((val) & REG_RING_CONS_MASK) >> \
+ REG_RING_CONS_SHIFT)
/*
* 32 bytes per entry, one entry for every hop (REG_HOP_COUNT)
* 00: enum_ring_flags
@@ -77,6 +133,19 @@ struct ring_desc {
* ..: unknown
*/
#define REG_RX_OPTIONS_BASE 0x29800
+#define REG_RX_OPTS_TX_E2E_HOP_ID_SHIFT 12
+#define REG_RX_OPTS_TX_E2E_HOP_ID_MASK \
+ GENMASK(22, REG_RX_OPTS_TX_E2E_HOP_ID_SHIFT)
+#define REG_RX_OPTS_MASK_OFFSET 4
+#define REG_RX_OPTS_MASK_EOF_SHIFT 0
+#define REG_RX_OPTS_MASK_EOF_MASK GENMASK(15, REG_RX_OPTS_MASK_EOF_SHIFT)
+#define REG_RX_OPTS_MASK_SOF_SHIFT 16
+#define REG_RX_OPTS_MASK_SOF_MASK GENMASK(31, REG_RX_OPTS_MASK_SOF_SHIFT)
+
+#define REG_OPTS_STEP 32
+#define REG_OPTS_E2E_EN BIT(28)
+#define REG_OPTS_RAW BIT(30)
+#define REG_OPTS_VALID BIT(31)
/*
* three bitfields: tx, rx, rx overflow
@@ -86,6 +155,7 @@ struct ring_desc {
*/
#define REG_RING_NOTIFY_BASE 0x37800
#define RING_NOTIFY_REG_COUNT(nhi) ((31 + 3 * nhi->hop_count) / 32)
+#define REG_RING_NOTIFY_STEP 4
/*
* two bitfields: rx, tx
@@ -94,8 +164,47 @@ struct ring_desc {
*/
#define REG_RING_INTERRUPT_BASE 0x38200
#define RING_INTERRUPT_REG_COUNT(nhi) ((31 + 2 * nhi->hop_count) / 32)
+#define REG_RING_INT_TX_PROCESSED(ring_num) BIT(ring_num)
+#define REG_RING_INT_RX_PROCESSED(ring_num, num_paths) BIT((ring_num) + \
+ (num_paths))
+#define RING_INT_DISABLE(base, val) iowrite32( \
+ ioread32((base) + REG_RING_INTERRUPT_BASE) & ~(val), \
+ (base) + REG_RING_INTERRUPT_BASE)
+#define RING_INT_ENABLE(base, val) iowrite32( \
+ ioread32((base) + REG_RING_INTERRUPT_BASE) | (val), \
+ (base) + REG_RING_INTERRUPT_BASE)
+#define RING_INT_DISABLE_TX(base, ring_num) \
+ RING_INT_DISABLE(base, REG_RING_INT_TX_PROCESSED(ring_num))
+#define RING_INT_DISABLE_RX(base, ring_num, num_paths) \
+ RING_INT_DISABLE(base, REG_RING_INT_RX_PROCESSED(ring_num, num_paths))
+#define RING_INT_ENABLE_TX(base, ring_num) \
+ RING_INT_ENABLE(base, REG_RING_INT_TX_PROCESSED(ring_num))
+#define RING_INT_ENABLE_RX(base, ring_num, num_paths) \
+ RING_INT_ENABLE(base, REG_RING_INT_RX_PROCESSED(ring_num, num_paths))
+#define RING_INT_DISABLE_TX_RX(base, ring_num, num_paths) \
+ RING_INT_DISABLE(base, REG_RING_INT_TX_PROCESSED(ring_num) | \
+ REG_RING_INT_RX_PROCESSED(ring_num, num_paths))
+
+#define REG_RING_INTERRUPT_STEP 4
+
+#define REG_INT_THROTTLING_RATE 0x38c00
+#define REG_INT_THROTTLING_RATE_STEP 4
+#define NUM_INT_VECTORS 16
+
+#define REG_INT_VEC_ALLOC_BASE 0x38c40
+#define REG_INT_VEC_ALLOC_STEP 4
+#define REG_INT_VEC_ALLOC_FIELD_BITS 4
+#define REG_INT_VEC_ALLOC_FIELD_MASK (BIT(REG_INT_VEC_ALLOC_FIELD_BITS) - 1)
+#define REG_INT_VEC_ALLOC_PER_REG ((BITS_PER_BYTE * sizeof(u32)) / \
+ REG_INT_VEC_ALLOC_FIELD_BITS)
/* The last 11 bits contain the number of hops supported by the NHI port. */
#define REG_HOP_COUNT 0x39640
+#define REG_HOP_COUNT_TOTAL_PATHS_MASK GENMASK(10, 0)
+
+#define REG_HOST_INTERFACE_RST 0x39858
+
+#define REG_DMA_MISC 0x39864
+#define REG_DMA_MISC_INT_AUTO_CLEAR BIT(2)
#endif
--
2.7.4
[toc] | [prev] | [next] | [standalone]
| From | Amir Levy <amir.jer.levy@intel.com> |
|---|---|
| Date | 2016-09-28 17:00 +0200 |
| Subject | [PATCH v8 1/8] thunderbolt: Macro rename |
| Message-ID | <smouZ-82i-5@gated-at.bofh.it> |
| In reply to | #1492630 |
This first patch updates the NHI Thunderbolt controller registers file to reflect that it is not only for Cactus Ridge. No functional change intended. Signed-off-by: Amir Levy <amir.jer.levy@intel.com> Signed-off-by: Andreas Noever <andreas.noever@gmail.com> --- drivers/thunderbolt/nhi_regs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/thunderbolt/nhi_regs.h b/drivers/thunderbolt/nhi_regs.h index 86b996c..75cf069 100644 --- a/drivers/thunderbolt/nhi_regs.h +++ b/drivers/thunderbolt/nhi_regs.h @@ -1,11 +1,11 @@ /* - * Thunderbolt Cactus Ridge driver - NHI registers + * Thunderbolt driver - NHI registers * * Copyright (c) 2014 Andreas Noever <andreas.noever@gmail.com> */ -#ifndef DSL3510_REGS_H_ -#define DSL3510_REGS_H_ +#ifndef NHI_REGS_H_ +#define NHI_REGS_H_ #include <linux/types.h> -- 2.7.4
[toc] | [prev] | [next] | [standalone]
| From | David Miller <davem@davemloft.net> |
|---|---|
| Date | 2016-09-30 08:00 +0200 |
| Subject | Re: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking |
| Message-ID | <smZ1v-6b5-7@gated-at.bofh.it> |
| In reply to | #1492630 |
From: Amir Levy <amir.jer.levy@intel.com> Date: Wed, 28 Sep 2016 17:44:22 +0300 > This driver enables Thunderbolt Networking on non-Apple platforms > running Linux. Greg, any idea where this should get merged once fully vetted? I can take it through the net-next tree, but I'm fine with another more appropriate tree taking it as well. Thanks!
[toc] | [prev] | [next] | [standalone]
| From | Greg KH <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-30 08:40 +0200 |
| Subject | Re: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking |
| Message-ID | <smZEd-6EC-1@gated-at.bofh.it> |
| In reply to | #1493895 |
On Fri, Sep 30, 2016 at 01:55:55AM -0400, David Miller wrote: > From: Amir Levy <amir.jer.levy@intel.com> > Date: Wed, 28 Sep 2016 17:44:22 +0300 > > > This driver enables Thunderbolt Networking on non-Apple platforms > > running Linux. > > Greg, any idea where this should get merged once fully vetted? I can > take it through the net-next tree, but I'm fine with another more > appropriate tree taking it as well. I am supposed to be taking thunderbolt patches, but if this really is a network driver, it should go under drivers/net/ somewhere. It needs more review though, it's not ready to go through anyone's tree just yet :) I'll let the thunderbolt maintainer go through it first before asking for a netdev review. thanks, greg k-h
[toc] | [prev] | [next] | [standalone]
| From | David Miller <davem@davemloft.net> |
|---|---|
| Date | 2016-09-30 08:50 +0200 |
| Subject | Re: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking |
| Message-ID | <smZNU-6HU-9@gated-at.bofh.it> |
| In reply to | #1493908 |
From: Greg KH <gregkh@linuxfoundation.org> Date: Fri, 30 Sep 2016 08:30:05 +0200 > On Fri, Sep 30, 2016 at 01:55:55AM -0400, David Miller wrote: >> From: Amir Levy <amir.jer.levy@intel.com> >> Date: Wed, 28 Sep 2016 17:44:22 +0300 >> >> > This driver enables Thunderbolt Networking on non-Apple platforms >> > running Linux. >> >> Greg, any idea where this should get merged once fully vetted? I can >> take it through the net-next tree, but I'm fine with another more >> appropriate tree taking it as well. > > I am supposed to be taking thunderbolt patches, but if this really is a > network driver, it should go under drivers/net/ somewhere. It needs > more review though, it's not ready to go through anyone's tree just yet :) > > I'll let the thunderbolt maintainer go through it first before asking > for a netdev review. Ok, thanks Greg.
[toc] | [prev] | [next] | [standalone]
| From | "Levy, Amir (Jer)" <amir.jer.levy@intel.com> |
|---|---|
| Date | 2016-09-30 10:40 +0200 |
| Subject | RE: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking |
| Message-ID | <sn1wm-7PG-39@gated-at.bofh.it> |
| In reply to | #1493911 |
On Fri, Sep 30 2016, 09:40 AM, David Miller wrote: > From: Greg KH <gregkh@linuxfoundation.org> > Date: Fri, 30 Sep 2016 08:30:05 +0200 > > > On Fri, Sep 30, 2016 at 01:55:55AM -0400, David Miller wrote: > >> From: Amir Levy <amir.jer.levy@intel.com> > >> Date: Wed, 28 Sep 2016 17:44:22 +0300 > >> > >> > This driver enables Thunderbolt Networking on non-Apple platforms > >> > running Linux. > >> > >> Greg, any idea where this should get merged once fully vetted? I can > >> take it through the net-next tree, but I'm fine with another more > >> appropriate tree taking it as well. > > > > I am supposed to be taking thunderbolt patches, but if this really is > > a network driver, it should go under drivers/net/ somewhere. It needs > > more review though, it's not ready to go through anyone's tree just > > yet :) > > > > I'll let the thunderbolt maintainer go through it first before asking > > for a netdev review. > > Ok, thanks Greg. Greg, David, Andreas replied to similar request on patch v6: "This driver is independent from mine. It uses an interface provided by the firmware which is not present on Apple hardware and with which I am not familiar (also it does networking, not pci with which I am also not familiar). So I cannot comment on the driver itself. I don't mind a second driver, if that is what you are asking." Note that Thunderbolt Networking is the first feature we would like to submit, but the next features aren't related to network, but more to Thunderbolt functionality. This is the reason I created the directory thunderbolt/icm, since the next features requires ICM to be enabled as well. I also followed the firewire as example that includes net.c (in drivers/firewire directory) along with other firewire functionality. Thanks, Amir
[toc] | [prev] | [next] | [standalone]
| From | "gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-09-30 11:00 +0200 |
| Subject | Re: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking |
| Message-ID | <sn1PN-7WT-33@gated-at.bofh.it> |
| In reply to | #1493949 |
On Fri, Sep 30, 2016 at 08:37:36AM +0000, Levy, Amir (Jer) wrote: > On Fri, Sep 30 2016, 09:40 AM, David Miller wrote: > > From: Greg KH <gregkh@linuxfoundation.org> > > Date: Fri, 30 Sep 2016 08:30:05 +0200 > > > > > On Fri, Sep 30, 2016 at 01:55:55AM -0400, David Miller wrote: > > >> From: Amir Levy <amir.jer.levy@intel.com> > > >> Date: Wed, 28 Sep 2016 17:44:22 +0300 > > >> > > >> > This driver enables Thunderbolt Networking on non-Apple platforms > > >> > running Linux. > > >> > > >> Greg, any idea where this should get merged once fully vetted? I can > > >> take it through the net-next tree, but I'm fine with another more > > >> appropriate tree taking it as well. > > > > > > I am supposed to be taking thunderbolt patches, but if this really is > > > a network driver, it should go under drivers/net/ somewhere. It needs > > > more review though, it's not ready to go through anyone's tree just > > > yet :) > > > > > > I'll let the thunderbolt maintainer go through it first before asking > > > for a netdev review. > > > > Ok, thanks Greg. > > Greg, David, > Andreas replied to similar request on patch v6: > "This driver is independent from mine. It uses an interface provided > by the firmware which is not present on Apple hardware and with which > I am not familiar (also it does networking, not pci with which I am > also not familiar). So I cannot comment on the driver itself. I don't > mind a second driver, if that is what you are asking." Yes, but I still need an ack from the thunderbolt maintainer that you aren't doing anything foolish with that interface before I can take the code. > Note that Thunderbolt Networking is the first feature we would like to > submit, but the next features aren't related to network, but more to > Thunderbolt functionality. If this really is a real network device, it should probably live in drivers/net/ like other network drivers. > This is the reason I created the directory thunderbolt/icm, since the > next features requires ICM to be enabled as well. As long as you have ICM split out so that other drivers can use it, it should be fine, no matter where in the tree it lives, right? > I also followed the firewire as example that includes net.c (in > drivers/firewire directory) along with other firewire functionality. That's the old-style of placing files. We have moved the USB network drivers out of drivers/usb/ a while ago. The current thought is to group drivers of specific types, not busses, together wherever possible, as that is usually the majority of the logic in the driver (i.e. a USB network driver has more network-driver specific logic than USB-specific logic.) Hope this helps explain things. I'll get to your patches next week, they are in my queue at the moment, but have conferences to deal with at the moment. Don't let my delay stop you from working on further "ICM" drivers if needed, you can always send new series of patches that build on this one when you have it ready. thanks, greg k-h
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web