Thread (116 messages) 116 messages, 23 authors, 2011-08-05

Re: [net-next v2 70/71] tile: Move the Tilera driver

From: Jeff Kirsher <hidden>
Date: 2011-08-03 05:47:35

On Mon, 2011-08-01 at 10:21 -0700, Chris Metcalf wrote:
On 7/30/2011 11:27 PM, Jeff Kirsher wrote:
quoted
Move the Tilera driver into drivers/net/ethernet/tile and
make the necessary Kconfig and Makefile changes.

CC: Chris Metcalf <redacted>
Signed-off-by: Jeff Kirsher <redacted>
[...]
+++ b/drivers/net/ethernet/tile/Kconfig
@@ -0,0 +1,28 @@
+#
+# Tilera network device configuration
+#
+
+config NET_VENDOR_TILERA
+	bool "Tilera devices"
+	depends on TILE
+	---help---
+	  If you have a network (Ethernet) card belonging to this class, say Y
+	  and read the Ethernet-HOWTO, available from
+	  <http://www.tldp.org/docs.html#howto>.
+
+	  Note that the answer to this question doesn't directly affect the
+	  kernel: saying N will just cause the configurator to skip all
+	  the questions about Tilera cards. If you say Y, you will be asked for
+	  your specific card in the following questions.
+
+config TILE_NET
+	tristate "Tilera GBE/XGBE network driver support"
+	depends on NET_VENDOR_TILERA && TILE
+	default y
+	select CRC32
+	---help---
+	  This is a standard Linux network device driver for the
+	  on-chip Tilera Gigabit Ethernet and XAUI interfaces.
+
+	  To compile this driver as a module, choose M here: the module
+	  will be called tile_net.
Overall, this seems fine, since the Tilera drivers get grouped more
appropriately as a result.  However, the drivers in question are not
Ethernet cards (and Tilera is not an Ethernet card vendor and has no plans
to become one).  Instead, this is the driver support for the built-in
networking hardware on the Tilera multicore CPU chip.  I'm happy to group
this support under drivers/net/ethernet/tile/, but I think it's appropriate
to default it to "Y" if you are building a TILE kernel (since you are
guaranteed to have the networking hardware available).

I suspect for now the cleanest thing to do is to fold the two config
options together, using NET_VENDOR_TILERA for consistency with other
NET_VENDOR_xxx symbols, and defaulting it to "Y" via "depends on TILE".  I
don't think the Ethernet-HOWO reference is particularly helpful since it
mostly tackles all the various card issues, kernel boot param issues, etc.,
none of which are relevant to this driver.  Something like:

+config NET_VENDOR_TILERA
+	bool "Tilera devices"
+	depends on TILE
+	default y
+	select CRC32
+	---help---
+	  This is a standard Linux network device driver for the arch/tile
+	  on-chip Gigabit Ethernet and XAUI interfaces.
+
+	  To compile this driver as a module, choose M here: the module
+	  will be called tile_net.


Obviously you'd also need to tweak the TILE_NET symbol in the Makefile to
be VENDOR_TILERA.  If this makes sense to you, go ahead and make the
change, and feel free to use my

Acked-by: Chris Metcalf <redacted>
This definitely makes sense, I was not sure if there is ever a
possibility of another driver from Tilera for future silicon on TILE
kernels, so I would want to lean towards the Kconfig format I am using
(which got a minor tweak since I sent this out) because it provides a
easy what to add additional drivers.

I can modify the current Kconfig so that it defaults to yes on Tile
kernels by doing this:

+config NET_VENDOR_TILERA
+       bool "Tilera devices"
+       depends on TILE
+	default y if TILE
+       ---help---
+         If you have a network (Ethernet) card belonging to this class,
say Y
+         and read the Ethernet-HOWTO, available from
+         <http://www.tldp.org/docs.html#howto>.
+
+         Note that the answer to this question doesn't directly affect
the
+         kernel: saying N will just cause the configurator to skip all
+         the questions about Tilera cards. If you say Y, you will be
asked for
+         your specific card in the following questions.
+
+if NET_VENDOR_TILERA
+
+config TILE_NET
+       tristate "Tilera GBE/XGBE network driver support"
+       depends on TILE
+       default y
+       select CRC32
+       ---help---
+         This is a standard Linux network device driver for the
+         on-chip Tilera Gigabit Ethernet and XAUI interfaces.
+
+         To compile this driver as a module, choose M here: the module
+         will be called tile_net.
+
+endif # NET_VENDOR_TILERA

This Kconfig would automatically default to y for TILE kernels and would
allow you to easily add additional future drivers for Tilera silicon,
and if you expand to other architectures/systems in the future it would
also allow for that as well.  Your thoughts?

Otherwise I can have it just as this:
+config TILE_NET
+       tristate "Tilera GBE/XGBE network driver support"
+       depends on TILE
+       default y
+       select CRC32
+       ---help---
+         This is a standard Linux network device driver for the
+         on-chip Tilera Gigabit Ethernet and XAUI interfaces.
+
+         To compile this driver as a module, choose M here: the module
+         will be called tile_net.

Because you only have 1 driver, there is no large need to add the
NET_VENDOR_<blah> and it can always be added in the future if the need
arises.

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help