M:     Gary Zambrano <zambrano@broadcom.com>
 L:     netdev@vger.kernel.org
 S:     Supported
-F:     drivers/net/b44.*
+F:     drivers/net/ethernet/broadcom/b44.*
 
 BROADCOM BNX2 GIGABIT ETHERNET DRIVER
 M:     Michael Chan <mchan@broadcom.com>
 L:     netdev@vger.kernel.org
 S:     Supported
-F:     drivers/net/bnx2.*
-F:     drivers/net/bnx2_*
+F:     drivers/net/ethernet/broadcom/bnx2.*
+F:     drivers/net/ethernet/broadcom/bnx2_*
 
 BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER
 M:     Eilon Greenstein <eilong@broadcom.com>
 L:     netdev@vger.kernel.org
 S:     Supported
-F:     drivers/net/bnx2x/
+F:     drivers/net/ethernet/broadcom/bnx2x/
 
 BROADCOM TG3 GIGABIT ETHERNET DRIVER
 M:     Matt Carlson <mcarlson@broadcom.com>
 M:     Michael Chan <mchan@broadcom.com>
 L:     netdev@vger.kernel.org
 S:     Supported
-F:     drivers/net/tg3.*
+F:     drivers/net/ethernet/broadcom/tg3.*
 
 BROADCOM BRCM80211 IEEE802.11n WIRELESS DRIVER
 M:     Brett Rudley <brudley@broadcom.com>
 
          To compile this driver as a module, choose M here. The module
          will be called apricot.
 
-config B44
-       tristate "Broadcom 440x/47xx ethernet support"
-       depends on SSB_POSSIBLE && HAS_DMA
-       select SSB
-       select MII
-       help
-         If you have a network (Ethernet) controller of this type, say Y
-         or M and read the Ethernet-HOWTO, available from
-         <http://www.tldp.org/docs.html#howto>.
-
-         To compile this driver as a module, choose M here. The module
-         will be called b44.
-
-# Auto-select SSB PCI-HOST support, if possible
-config B44_PCI_AUTOSELECT
-       bool
-       depends on B44 && SSB_PCIHOST_POSSIBLE
-       select SSB_PCIHOST
-       default y
-
-# Auto-select SSB PCICORE driver, if possible
-config B44_PCICORE_AUTOSELECT
-       bool
-       depends on B44 && SSB_DRIVER_PCICORE_POSSIBLE
-       select SSB_DRIVER_PCICORE
-       default y
-
-config B44_PCI
-       bool
-       depends on B44_PCI_AUTOSELECT && B44_PCICORE_AUTOSELECT
-       default y
-
 config FORCEDETH
        tristate "nForce Ethernet support"
        depends on NET_PCI && PCI
        help
          This driver supports the 10/100 Ethernet Lite from Xilinx.
 
-config BCM63XX_ENET
-       tristate "Broadcom 63xx internal mac support"
-       depends on BCM63XX
-       select MII
-       select PHYLIB
-       help
-         This driver supports the ethernet MACs in the Broadcom 63xx
-         MIPS chipset family (BCM63XX).
-
 config FTMAC100
        tristate "Faraday FTMAC100 10/100 Ethernet support"
        depends on ARM
          To compile this driver as a module, choose M here: the module
          will be called r8169.  This is recommended.
 
-config SB1250_MAC
-       tristate "SB1250 Gigabit Ethernet support"
-       depends on SIBYTE_SB1xxx_SOC
-       select PHYLIB
-       ---help---
-         This driver supports Gigabit Ethernet interfaces based on the
-         Broadcom SiByte family of System-On-a-Chip parts.  They include
-         the BCM1120, BCM1125, BCM1125H, BCM1250, BCM1255, BCM1280, BCM1455
-         and BCM1480 chips.
-
-         To compile this driver as a module, choose M here: the module
-         will be called sb1250-mac.
-
 config SIS190
        tristate "SiS190/SiS191 gigabit ethernet support"
        depends on PCI
          To compile this driver as a module, choose M here. The module
          will be called via-velocity.
 
-config TIGON3
-       tristate "Broadcom Tigon3 support"
-       depends on PCI
-       select PHYLIB
-       help
-         This driver supports Broadcom Tigon3 based gigabit Ethernet cards.
-
-         To compile this driver as a module, choose M here: the module
-         will be called tg3.  This is recommended.
-
-config BNX2
-       tristate "Broadcom NetXtremeII support"
-       depends on PCI
-       select CRC32
-       select FW_LOADER
-       help
-         This driver supports Broadcom NetXtremeII gigabit Ethernet cards.
-
-         To compile this driver as a module, choose M here: the module
-         will be called bnx2.  This is recommended.
-
-config CNIC
-       tristate "Broadcom CNIC support"
-       depends on PCI
-       select BNX2
-       select UIO
-       help
-         This driver supports offload features of Broadcom NetXtremeII
-         gigabit Ethernet cards.
-
-         To compile this driver as a module, choose M here: the module
-         will be called cnic.  This is recommended.
-
 config SPIDER_NET
        tristate "Spider Gigabit Ethernet driver"
        depends on PCI && (PPC_IBM_CELL_BLADE || PPC_CELLEB)
        help
          Tehuti Networks 10G Ethernet NIC
 
-config BNX2X
-       tristate "Broadcom NetXtremeII 10Gb support"
-       depends on PCI
-       select FW_LOADER
-       select ZLIB_INFLATE
-       select LIBCRC32C
-       select MDIO
-       help
-         This driver supports Broadcom NetXtremeII 10 gigabit Ethernet cards.
-         To compile this driver as a module, choose M here: the module
-         will be called bnx2x.  This is recommended.
-
 config QLCNIC
        tristate "QLOGIC QLCNIC 1/10Gb Converged Ethernet NIC Support"
        depends on PCI
 
 obj-$(CONFIG_NATSEMI) += natsemi.o
 obj-$(CONFIG_NS83820) += ns83820.o
 obj-$(CONFIG_FEALNX) += fealnx.o
-obj-$(CONFIG_TIGON3) += tg3.o
-obj-$(CONFIG_BNX2) += bnx2.o
-obj-$(CONFIG_CNIC) += cnic.o
-obj-$(CONFIG_BNX2X) += bnx2x/
 spidernet-y += spider_net.o spider_net_ethtool.o
 obj-$(CONFIG_SPIDER_NET) += spidernet.o sungem_phy.o
 obj-$(CONFIG_GELIC_NET) += ps3_gelic.o
 ifeq ($(CONFIG_FEC_MPC52xx_MDIO),y)
        obj-$(CONFIG_FEC_MPC52xx) += fec_mpc52xx_phy.o
 endif
-obj-$(CONFIG_SB1250_MAC) += sb1250-mac.o
-obj-$(CONFIG_B44) += b44.o
 obj-$(CONFIG_FORCEDETH) += forcedeth.o
-obj-$(CONFIG_BCM63XX_ENET) += bcm63xx_enet.o
 obj-$(CONFIG_FTGMAC100) += ftgmac100.o
 obj-$(CONFIG_FTMAC100) += ftmac100.o
 
 
 source "drivers/net/ethernet/3com/Kconfig"
 source "drivers/net/ethernet/8390/Kconfig"
 source "drivers/net/ethernet/amd/Kconfig"
+source "drivers/net/ethernet/broadcom/Kconfig"
 
 endif # ETHERNET
 
 obj-$(CONFIG_NET_VENDOR_3COM) += 3com/
 obj-$(CONFIG_NET_VENDOR_8390) += 8390/
 obj-$(CONFIG_NET_VENDOR_AMD) += amd/
+obj-$(CONFIG_NET_VENDOR_BROADCOM) += broadcom/
 
--- /dev/null
+#
+# Broadcom device configuration
+#
+
+config NET_VENDOR_BROADCOM
+       bool "Broadcom devices"
+       depends on (SSB_POSSIBLE && HAS_DMA) || PCI || BCM63XX || \
+                  SIBYTE_SB1xxx_SOC
+       ---help---
+         If you have a network (Ethernet) chipset belonging to this class,
+         say Y.
+
+         Note that the answer to this question does not directly affect
+         the kernel: saying N will just case the configurator to skip all
+         the questions regarding AMD chipsets. If you say Y, you will be asked
+         for your specific chipset/driver in the following questions.
+
+if NET_VENDOR_BROADCOM
+
+config B44
+       tristate "Broadcom 440x/47xx ethernet support"
+       depends on SSB_POSSIBLE && HAS_DMA
+       select SSB
+       select MII
+       ---help---
+         If you have a network (Ethernet) controller of this type, say Y
+         or M and read the Ethernet-HOWTO, available from
+         <http://www.tldp.org/docs.html#howto>.
+
+         To compile this driver as a module, choose M here. The module
+         will be called b44.
+
+# Auto-select SSB PCI-HOST support, if possible
+config B44_PCI_AUTOSELECT
+       bool
+       depends on B44 && SSB_PCIHOST_POSSIBLE
+       select SSB_PCIHOST
+       default y
+
+# Auto-select SSB PCICORE driver, if possible
+config B44_PCICORE_AUTOSELECT
+       bool
+       depends on B44 && SSB_DRIVER_PCICORE_POSSIBLE
+       select SSB_DRIVER_PCICORE
+       default y
+
+config B44_PCI
+       bool
+       depends on B44_PCI_AUTOSELECT && B44_PCICORE_AUTOSELECT
+       default y
+
+config BCM63XX_ENET
+       tristate "Broadcom 63xx internal mac support"
+       depends on BCM63XX
+       select MII
+       select PHYLIB
+       help
+         This driver supports the ethernet MACs in the Broadcom 63xx
+         MIPS chipset family (BCM63XX).
+
+config BNX2
+       tristate "Broadcom NetXtremeII support"
+       depends on PCI
+       select CRC32
+       select FW_LOADER
+       ---help---
+         This driver supports Broadcom NetXtremeII gigabit Ethernet cards.
+
+         To compile this driver as a module, choose M here: the module
+         will be called bnx2.  This is recommended.
+
+config CNIC
+       tristate "Broadcom CNIC support"
+       depends on PCI
+       select BNX2
+       select UIO
+       ---help---
+         This driver supports offload features of Broadcom NetXtremeII
+         gigabit Ethernet cards.
+
+         To compile this driver as a module, choose M here: the module
+         will be called cnic.  This is recommended.
+
+config SB1250_MAC
+       tristate "SB1250 Gigabit Ethernet support"
+       depends on SIBYTE_SB1xxx_SOC
+       select PHYLIB
+       ---help---
+         This driver supports Gigabit Ethernet interfaces based on the
+         Broadcom SiByte family of System-On-a-Chip parts.  They include
+         the BCM1120, BCM1125, BCM1125H, BCM1250, BCM1255, BCM1280, BCM1455
+         and BCM1480 chips.
+
+         To compile this driver as a module, choose M here: the module
+         will be called sb1250-mac.
+
+config TIGON3
+       tristate "Broadcom Tigon3 support"
+       depends on PCI
+       select PHYLIB
+       ---help---
+         This driver supports Broadcom Tigon3 based gigabit Ethernet cards.
+
+         To compile this driver as a module, choose M here: the module
+         will be called tg3.  This is recommended.
+
+config BNX2X
+       tristate "Broadcom NetXtremeII 10Gb support"
+       depends on PCI
+       select FW_LOADER
+       select ZLIB_INFLATE
+       select LIBCRC32C
+       select MDIO
+       ---help---
+         This driver supports Broadcom NetXtremeII 10 gigabit Ethernet cards.
+         To compile this driver as a module, choose M here: the module
+         will be called bnx2x.  This is recommended.
+
+endif # NET_VENDOR_BROADCOM
 
--- /dev/null
+#
+# Makefile for the Broadcom network device drivers.
+#
+
+obj-$(CONFIG_B44) += b44.o
+obj-$(CONFIG_BCM63XX_ENET) += bcm63xx_enet.o
+obj-$(CONFIG_BNX2) += bnx2.o
+obj-$(CONFIG_CNIC) += cnic.o
+obj-$(CONFIG_BNX2X) += bnx2x/
+obj-$(CONFIG_SB1250_MAC) += sb1250-mac.o
+obj-$(CONFIG_TIGON3) += tg3.o
 
 #include "bnx2x/bnx2x_reg.h"
 #include "bnx2x/bnx2x_fw_defs.h"
 #include "bnx2x/bnx2x_hsi.h"
-#include "../scsi/bnx2i/57xx_iscsi_constants.h"
-#include "../scsi/bnx2i/57xx_iscsi_hsi.h"
+#include "../../../scsi/bnx2i/57xx_iscsi_constants.h"
+#include "../../../scsi/bnx2i/57xx_iscsi_hsi.h"
 #include "cnic.h"
 #include "cnic_defs.h"
 
 
 
 #include "57xx_hsi_bnx2fc.h"
 #include "bnx2fc_debug.h"
-#include "../../net/cnic_if.h"
+#include "../../net/ethernet/broadcom/cnic_if.h"
 #include "bnx2fc_constants.h"
 
 #define BNX2FC_NAME            "bnx2fc"
 
 #include <scsi/libiscsi.h>
 #include <scsi/scsi_transport_iscsi.h>
 
-#include "../../net/cnic_if.h"
+#include "../../net/ethernet/broadcom/cnic_if.h"
 #include "57xx_iscsi_hsi.h"
 #include "57xx_iscsi_constants.h"