# SPDX-License-Identifier: GPL-2.0-only
#
# Mellanox driver configuration
#

config MLX4_EN
	tristate "Mellanox Technologies 1/10/40Gbit Ethernet support"
	depends on PCI && NETDEVICES && ETHERNET && INET
	depends on PTP_1588_CLOCK_OPTIONAL
	select MLX4_CORE
	help
	  This driver supports Mellanox Technologies ConnectX Ethernet
	  devices.

config MLX4_EN_DCB
	bool "Data Center Bridging (DCB) Support"
	default y
	depends on MLX4_EN && DCB
	help
	  Say Y here if you want to use Data Center Bridging (DCB) in the
	  driver.
	  If set to N, will not be able to configure QoS and ratelimit attributes.
	  This flag is depended on the kernel's DCB support.

	  If unsure, set to Y

config MLX4_CORE
	tristate
	depends on PCI
	select NET_DEVLINK
	default n

config MLX4_DEBUG
	bool "Verbose debugging output" if (MLX4_CORE && EXPERT)
	depends on MLX4_CORE
	default y
	help
	  This option causes debugging code to be compiled into the
	  mlx4_core driver.  The output can be turned on via the
	  debug_level module parameter (which can also be set after
	  the driver is loaded through sysfs).

config MLX4_CORE_GEN2
	bool "Support for old gen2 Mellanox PCI IDs" if (MLX4_CORE)
	depends on MLX4_CORE
	default y
	help
	  Say Y here if you want to use old gen2 Mellanox devices in the
	  driver.
