config RAETH
        tristate "Ralink GMAC"
	select RAETH_QDMA if ARCH_MT7623
        ---help---
          This driver supports Ralink gigabit ethernet family of
          adapters.

config PDMA_NEW
        bool
	default y if  (RALINK_MT7620 || RALINK_MT7621 || ARCH_MT7623)
        depends on RAETH

config RAETH_SCATTER_GATHER_RX_DMA
        bool
	default y if (RALINK_MT7620 || RALINK_MT7621 || ARCH_MT7623)
        depends on RAETH


choice
	prompt "Network BottomHalves"	
        depends on RAETH
	default RA_NETWORK_WORKQUEUE_BH

	config RA_NETWORK_TASKLET_BH
	bool "Tasklet"

	config RA_NETWORK_WORKQUEUE_BH
	bool "Work Queue"

	config RAETH_NAPI
        bool "NAPI"

endchoice

#config TASKLET_WORKQUEUE_SW
#        bool "Tasklet and Workqueue switch"
#        depends on RA_NETWORK_TASKLET_BH

config RAETH_SKB_RECYCLE_2K
        bool "SKB Recycling"
        depends on RAETH

config RAETH_SPECIAL_TAG
        bool "Ralink Special Tag (0x810x)"
        depends on RAETH && RT_3052_ESW

#config RAETH_JUMBOFRAME
#        bool "Jumbo Frame up to 4K bytes"
#        depends on RAETH && !(RALINK_RT3052 || RALINK_RT3352 || RALINK_RT5350 || RALINK_MT7628)

config RAETH_CHECKSUM_OFFLOAD
        bool "TCP/UDP/IP checksum offload"
	default y
        depends on RAETH && !RALINK_RT2880

#config RAETH_SW_FC
#        bool "When TX ring is full, inform kernel stop transmit and stop RX handler"
#	 default n
#        depends on RAETH

#config RAETH_8023AZ_EEE
#        bool "Enable Embeded Switch EEE"
#	 default n
#        depends on RAETH && (RALINK_MT7620 || RALINK_MT7621 || RALINK_MT7628)



config 32B_DESC
        bool "32bytes TX/RX description"
	default n
        depends on RAETH && (RALINK_MT7620 || RALINK_MT7621)
        ---help---
          At this moment, you cannot enable 32B description with Multiple RX ring at the same time.

config RAETH_LRO
        bool "LRO (Large Receive Offload )"
	select INET_LRO
        depends on RAETH && (RALINK_RT6855A || RALINK_MT7620 || RALINK_MT7621 || ARCH_MT7623)

config RAETH_HW_LRO
        bool "HW LRO (Large Receive Offload)"
	default n
        depends on RAETH && !RAETH_LRO

config RAETH_HW_LRO_DBG
        bool "HW LRO Debug"
	default n
	depends on RAETH_HW_LRO

#config RAETH_HW_LRO_REASON_DBG
#        bool "HW LRO Flush Reason Debug"
#	default n
#	depends on RAETH_HW_LRO

#config RAETH_HW_LRO_AUTO_ADJ_DBG
#        bool "HW LRO Auto Adjustment Debug"
#	default y
#	depends on RAETH_HW_LRO

config RAETH_HW_VLAN_TX
        bool "Transmit VLAN HW (DoubleVLAN is not supported)"
        depends on RAETH && !(RALINK_RT5350 || RALINK_MT7628)
        ---help---
          Please disable HW_VLAN_TX if you need double vlan

config RAETH_HW_VLAN_RX
        bool "Receive VLAN HW (DoubleVLAN is not supported)"
        depends on RAETH && RALINK_MT7621
        ---help---
          Please disable HW_VLAN_RX if you need double vlan

config RAETH_TSO
        bool "TSOV4 (Tcp Segmentaton Offload)"
	depends on (RAETH_HW_VLAN_TX && (RALINK_RT6855 || RALINK_RT6855A || RALINK_MT7620))||((RALINK_MT7621 || ARCH_MT7623) &&(RAETH_HW_VLAN_TX || RAETH_GMAC2 ))

config RAETH_TSO_DBG
        bool "TSOV4 Debug"
	default n
	depends on RAETH_TSO

config RAETH_TSOV6
        bool "TSOV6 (Tcp Segmentaton Offload)"
	depends on RAETH_TSO

config RAETH_RW_PDMAPTR_FROM_VAR
	bool
	default y if RALINK_RT6855A || RALINK_MT7620
        depends on RAETH


config RAETH_DVT
        bool "RAETH DVT"
	depends on RAETH && (RALINK_MT7621 || ARCH_MT7623)
	
config RAETH_PDMA_DVT
        bool "PDMA DVT"
	depends on RAETH_DVT

config RAETH_PDMA_LEGACY_MODE
        bool "PDMA legacy mode"
	depends on RAETH_PDMA_DVT

#config RAETH_QOS
#        bool "QoS Feature"
#        depends on RAETH && !RALINK_RT2880 && !RALINK_MT7620 && !RALINK_MT7621 && !RAETH_TSO

choice
        prompt "QoS Type"
        depends on RAETH_QOS
        default DSCP_QOS_DSCP

config  RAETH_QOS_DSCP_BASED
        bool "DSCP-based"
        depends on RAETH_QOS 

config  RAETH_QOS_VPRI_BASED
        bool "VPRI-based"
        depends on RAETH_QOS

endchoice

config RAETH_QDMA
        bool "Choose QDMA instead PDMA"
	default n
        depends on RAETH && (RALINK_MT7621)

#config RAETH_QDMATX_QDMARX
#        bool "Choose QDMA RX instead PDMA RX"
#	default n
#       depends on RAETH_QDMA && !RALINK_MT7621

config RAETH_TX_RX_INT_SEPARATION 
        bool
        default y
 	depends on RAETH_QDMA && ARCH_MT7623

choice
        prompt "GMAC is connected to"
        depends on RAETH
        default GE1_RGMII_FORCE_1000
        default GE1_TRGMII_FORCE_1200 if CHIP_MT7615E

config  GE1_MII_FORCE_100
        bool "MII_FORCE_100 (10/100M Switch)"
        depends on (RALINK_RT2880 || RALINK_RT3883 || RALINK_MT7621) 

config  GE1_MII_AN
        bool "MII_AN (100Phy)"
        depends on (RALINK_RT2880 || RALINK_RT3883 || RALINK_MT7621) 

config  GE1_RVMII_FORCE_100
        bool "RvMII_FORCE_100 (CPU)"
        depends on (RALINK_RT2880 || RALINK_RT3883 || RALINK_MT7621) 

config  GE1_RGMII_FORCE_1000
        bool "RGMII_FORCE_1000 (GigaSW, CPU)"
        depends on (RALINK_RT2880 || RALINK_RT3883)
	select RALINK_SPI

config  GE1_RGMII_FORCE_1000
        bool "RGMII_FORCE_1000 (GigaSW, CPU)"
        depends on (RALINK_MT7621 || ARCH_MT7623) && (!CHIP_MT7615E)
	select RT_3052_ESW

config  GE1_TRGMII_FORCE_1200
        bool "TRGMII_FORCE_1200 (GigaSW, CPU)"
        depends on (RALINK_MT7621)
	select RT_3052_ESW

config  GE1_TRGMII_FORCE_2000
        bool "TRGMII_FORCE_2000 (GigaSW, CPU, for MT7623 and MT7683)"
        depends on (ARCH_MT7623)
        select RT_3052_ESW

config  GE1_TRGMII_FORCE_2600
        bool "TRGMII_FORCE_2600 (GigaSW, CPU, MT7623 only)"
        depends on (ARCH_MT7623)
        select RT_3052_ESW

config  GE1_RGMII_AN
        bool "RGMII_AN (GigaPhy)"
        depends on (RALINK_RT2880 || RALINK_RT3883 || RALINK_MT7621 || ARCH_MT7623) 

config  GE1_RGMII_NONE
        bool "NONE (NO CONNECT)"
        depends on (RALINK_MT7621 || ARCH_MT7623)

endchoice

config HW_SFQ
        bool "HW_SFQ"
	default n
        depends on RAETH_QDMA && (ARCH_MT7623)
        
        
config  RT_3052_ESW
        bool "Ralink Embedded Switch"
	default y
        depends on RAETH && (RALINK_RT3052 || RALINK_RT3352 || RALINK_RT5350 || RALINK_RT6855 || RALINK_RT6855A || RALINK_MT7620 || RALINK_MT7621 || RALINK_MT7628 || ARCH_MT7623)

config LAN_WAN_SUPPORT
        bool "LAN/WAN Partition"
        depends on RAETH && (RAETH_ROUTER || RT_3052_ESW)

config ETH_MEMORY_OPTIMIZATION
	bool "Ethernet memory optimization"
	depends on RALINK_MT7628

config ETH_ONE_PORT_ONLY
	bool "One Port Only"
	depends on RALINK_MT7628

choice
        prompt "Switch Board Layout Type"
        depends on LAN_WAN_SUPPORT || P5_RGMII_TO_MAC_MODE ||  GE1_RGMII_FORCE_1000 || GE1_TRGMII_FORCE_1200 || GE2_RGMII_FORCE_1000
	default WAN_AT_P0

	config  WAN_AT_P4
	        bool "LLLL/W"
		
	config  WAN_AT_P0
	        bool "W/LLLL"
endchoice

config	RALINK_VISTA_BASIC
	bool 'Vista Basic Logo for IC+ 175C'
        depends on LAN_WAN_SUPPORT && (RALINK_RT2880 || RALINK_RT3883)

config	ESW_DOUBLE_VLAN_TAG
	bool
	default y if RT_3052_ESW

config RAETH_HAS_PORT4
        bool "Port 4 Support"
        depends on RAETH && RALINK_MT7620
choice
        prompt "Target Mode"
        depends on RAETH_HAS_PORT4
	default P4_RGMII_TO_MAC_MODE

	config P4_MAC_TO_PHY_MODE
		bool "Giga_Phy (RGMII)"
	config  GE_RGMII_MT7530_P0_AN
		bool "GE_RGMII_MT7530_P0_AN (MT7530 Internal GigaPhy)"
	config  GE_RGMII_MT7530_P4_AN
		bool "GE_RGMII_MT7530_P4_AN (MT7530 Internal GigaPhy)"
	config P4_RGMII_TO_MAC_MODE
		bool "Giga_SW/iNIC (RGMII)"
	config P4_MII_TO_MAC_MODE
		bool "External_CPU (MII_RvMII)"
	config P4_RMII_TO_MAC_MODE
		bool "External_CPU (RvMII_MII)"
endchoice

config  MAC_TO_GIGAPHY_MODE_ADDR2
        hex "Port4 Phy Address"
	default 0x4
        depends on P4_MAC_TO_PHY_MODE

config RAETH_HAS_PORT5
        bool "Port 5 Support"
        depends on RAETH && (RALINK_RT3052 || RALINK_RT3352 || RALINK_RT6855 || RALINK_RT6855A || RALINK_MT7620)
choice
        prompt "Target Mode"
        depends on RAETH_HAS_PORT5
	default P5_RGMII_TO_MAC_MODE

	config P5_MAC_TO_PHY_MODE
		bool "Giga_Phy (RGMII)"
	config P5_RGMII_TO_MAC_MODE
		bool "Giga_SW/iNIC (RGMII)"
	config P5_RGMII_TO_MT7530_MODE
		bool "MT7530 Giga_SW (RGMII)"
		depends on RALINK_MT7620
	config P5_MII_TO_MAC_MODE
		bool "External_CPU (MII_RvMII)"
	config P5_RMII_TO_MAC_MODE
		bool "External_CPU (RvMII_MII)"
endchoice

config  MAC_TO_GIGAPHY_MODE_ADDR
        hex "GE1 Phy Address"
	default 0x1F
        depends on GE1_MII_AN || GE1_RGMII_AN

config  MAC_TO_GIGAPHY_MODE_ADDR
        hex "Port5 Phy Address"
	default 0x5
        depends on P5_MAC_TO_PHY_MODE

config RAETH_GMAC2
        bool "GMAC2 Support"
        depends on RAETH && (RALINK_RT3883 || RALINK_MT7621 || ARCH_MT7623)

choice
        prompt "GMAC2 is connected to"
        depends on RAETH_GMAC2
        default GE2_RGMII_AN

config  GE2_MII_FORCE_100
        bool "MII_FORCE_100 (10/100M Switch)"
        depends on RAETH_GMAC2

config  GE2_MII_AN
        bool "MII_AN (100Phy)"
        depends on RAETH_GMAC2

config  GE2_RVMII_FORCE_100
        bool "RvMII_FORCE_100 (CPU)"
        depends on RAETH_GMAC2

config  GE2_RGMII_FORCE_1000
        bool "RGMII_FORCE_1000 (GigaSW, CPU)"
        depends on RAETH_GMAC2
	select RALINK_SPI

config  GE2_RGMII_AN
        bool "RGMII_AN (External GigaPhy)"
        depends on RAETH_GMAC2

config  GE2_INTERNAL_GPHY
        bool "RGMII_AN (Internal GigaPhy)"
        depends on RAETH_GMAC2
	select LAN_WAN_SUPPORT

endchoice

config  GE_RGMII_INTERNAL_P0_AN
	bool
        depends on GE2_INTERNAL_GPHY
	default y if WAN_AT_P0

config  GE_RGMII_INTERNAL_P4_AN
	bool
        depends on GE2_INTERNAL_GPHY
	default y if WAN_AT_P4

config  MAC_TO_GIGAPHY_MODE_ADDR2
        hex
	default 0 if GE_RGMII_INTERNAL_P0_AN
	default 4 if GE_RGMII_INTERNAL_P4_AN
        depends on GE_RGMII_INTERNAL_P0_AN || GE_RGMII_INTERNAL_P4_AN

config  MAC_TO_GIGAPHY_MODE_ADDR2
        hex "GE2 Phy Address"
	default 0x1E
        depends on GE2_MII_AN || GE2_RGMII_AN

#force 100M
config RAETH_ROUTER
bool
default y if GE1_MII_FORCE_100 || GE2_MII_FORCE_100 || GE1_RVMII_FORCE_100 || GE2_RVMII_FORCE_100

#force 1000M
config MAC_TO_MAC_MODE
bool
default y if GE1_RGMII_FORCE_1000 || GE2_RGMII_FORCE_1000
depends on (RALINK_RT2880 || RALINK_RT3883) 

#AN
config GIGAPHY
bool
default y if GE1_RGMII_AN || GE2_RGMII_AN

#AN
config 100PHY
bool
default y if GE1_MII_AN || GE2_MII_AN

#SKB alloc selection
config ETH_SKB_ALLOC_SELECT
        bool "SKB Allocation API Select"
        default n
choice
	prompt "SKB Allocation API Selection"
        depends on ETH_SKB_ALLOC_SELECT
	default ETH_PAGE_ALLOC_SKB

	config  ETH_SLAB_ALLOC_SKB
		bool "SLAB skb allocation"

	config  ETH_PAGE_ALLOC_SKB
		bool "Page skb allocation"
endchoice

#OOM debug info
config ETH_WIFI_OOM_DEBUG
bool	"ETH WIFI OOM DEBUG"
default n

