#
# WARNING: The symbols below define the version of the kernel sources used by Freetz,
#          which could be older than that used by AVM. The following cases of version
#          mismatch are the most frequent ones:
#            - labor firmwares (kernel sources used by AVM are never released)
#            - freshly released stable firmwares (kernel sources used by AVM are released with a delay)
#            - new devices without released sources, which use sources of similar hardware
#

config FREETZ_KERNEL_VERSION_2_6_13
	bool
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_AR7_SANGAM || \
		FREETZ_SYSTEM_TYPE_AR7_OHIO

config FREETZ_KERNEL_VERSION_2_6_19
	bool
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_UR8 && FREETZ_AVM_VERSION_04_XX_MAX

config FREETZ_KERNEL_VERSION_2_6_28
	bool
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_IKS

config FREETZ_KERNEL_VERSION_2_6_32_41
	bool
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_UR8 && FREETZ_AVM_VERSION_05_2X_MIN && FREETZ_AVM_VERSION_05_5X_MAX

config FREETZ_KERNEL_VERSION_2_6_32_60
	bool
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_UR8 && FREETZ_AVM_VERSION_06_0X_MIN

config FREETZ_KERNEL_VERSION_2_6_32_61
	bool
	default y
	depends on \
		(FREETZ_SYSTEM_TYPE_AR9     && FREETZ_AVM_VERSION_06_2X_MIN) || \
		(FREETZ_SYSTEM_TYPE_AR10    && FREETZ_AVM_VERSION_06_2X_MIN) || \
		(FREETZ_SYSTEM_TYPE_AR934x  && FREETZ_AVM_VERSION_06_2X_MIN) || \
		(FREETZ_SYSTEM_TYPE_QCA955x && FREETZ_AVM_VERSION_06_8X_MAX) || \
		(FREETZ_SYSTEM_TYPE_QCA956x && FREETZ_AVM_VERSION_06_8X_MAX) || \
		(FREETZ_SYSTEM_TYPE_VR9     && FREETZ_AVM_VERSION_06_2X_MAX)

config FREETZ_KERNEL_VERSION_2_6_32
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_2_6_32_41 || FREETZ_KERNEL_VERSION_2_6_32_60 || FREETZ_KERNEL_VERSION_2_6_32_61

config FREETZ_KERNEL_VERSION_2_6_39_3
	bool
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_PUMA6 && FREETZ_AVM_VERSION_06_8X_MIN

config FREETZ_KERNEL_VERSION_2_6_39
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_2_6_39_3

config FREETZ_KERNEL_VERSION_3_10_12
	bool
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_GRX5 && FREETZ_AVM_VERSION_06_9X_MAX

config FREETZ_KERNEL_VERSION_3_10_73
	bool
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_VR9 && FREETZ_AVM_VERSION_06_5X_MIN && FREETZ_AVM_VERSION_06_9X_MAX

config FREETZ_KERNEL_VERSION_3_10_104
	bool
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_GRX5 && FREETZ_AVM_VERSION_07_0X_MIN

config FREETZ_KERNEL_VERSION_3_10_107
	bool
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_VR9 && FREETZ_AVM_VERSION_07_0X_MIN

config FREETZ_KERNEL_VERSION_3_10
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_3_10_12  || \
		FREETZ_KERNEL_VERSION_3_10_73  || \
		FREETZ_KERNEL_VERSION_3_10_104 || \
		FREETZ_KERNEL_VERSION_3_10_107

config FREETZ_KERNEL_VERSION_4_4_60
	bool
	default y
	depends on \
		(FREETZ_SYSTEM_TYPE_IPQ40xx && FREETZ_AVM_VERSION_07_0X_MIN) || \
		(FREETZ_SYSTEM_TYPE_QCA955x && FREETZ_AVM_VERSION_07_0X_MIN) || \
		(FREETZ_SYSTEM_TYPE_QCA956x && FREETZ_AVM_VERSION_07_0X_MIN)

config FREETZ_KERNEL_VERSION_4_4
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_4_4_60

# full kernel version
config FREETZ_KERNEL_VERSION
	string
	default "2.6.13.1"  if FREETZ_KERNEL_VERSION_2_6_13
	default "2.6.19.2"  if FREETZ_KERNEL_VERSION_2_6_19
	default "2.6.28.10" if FREETZ_KERNEL_VERSION_2_6_28
	default "2.6.32.41" if FREETZ_KERNEL_VERSION_2_6_32_41
	default "2.6.32.60" if FREETZ_KERNEL_VERSION_2_6_32_60
	default "2.6.32.61" if FREETZ_KERNEL_VERSION_2_6_32_61
	default "2.6.39.3"  if FREETZ_KERNEL_VERSION_2_6_39_3
	default "3.10.12"   if FREETZ_KERNEL_VERSION_3_10_12
	default "3.10.73"   if FREETZ_KERNEL_VERSION_3_10_73
	default "3.10.104"  if FREETZ_KERNEL_VERSION_3_10_104
	default "3.10.107"  if FREETZ_KERNEL_VERSION_3_10_107
	default "4.4.60"    if FREETZ_KERNEL_VERSION_4_4_60

# major kernel version
config FREETZ_KERNEL_VERSION_MAJOR
	string
	default "2.6.13"    if FREETZ_KERNEL_VERSION_2_6_13
	default "2.6.19"    if FREETZ_KERNEL_VERSION_2_6_19
	default "2.6.28"    if FREETZ_KERNEL_VERSION_2_6_28
	default "2.6.32"    if FREETZ_KERNEL_VERSION_2_6_32
	default "2.6.39"    if FREETZ_KERNEL_VERSION_2_6_39
	default "3.10"      if FREETZ_KERNEL_VERSION_3_10
	default "4.4"       if FREETZ_KERNEL_VERSION_4_4

# the name of the directory kernel modules are installed in
# this directory contains the kernel version in its name
config FREETZ_KERNEL_VERSION_MODULES_SUBDIR
	string
	default "2.6.13.1-ar7"  if FREETZ_KERNEL_VERSION_2_6_13 && FREETZ_SYSTEM_TYPE_AR7_SANGAM
	default "2.6.13.1-ohio" if FREETZ_KERNEL_VERSION_2_6_13 && FREETZ_SYSTEM_TYPE_AR7_OHIO
	default FREETZ_KERNEL_VERSION

config FREETZ_KERNEL_VERSION_2_6_13_MIN
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_2_6_13 || \
		FREETZ_KERNEL_VERSION_2_6_19_MIN

config FREETZ_KERNEL_VERSION_2_6_19_MIN
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_2_6_19 || \
		FREETZ_KERNEL_VERSION_2_6_28_MIN

config FREETZ_KERNEL_VERSION_2_6_28_MIN
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_2_6_28 || \
		FREETZ_KERNEL_VERSION_2_6_32_MIN

config FREETZ_KERNEL_VERSION_2_6_32_MIN
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_2_6_32 || \
		FREETZ_KERNEL_VERSION_2_6_39_MIN

config FREETZ_KERNEL_VERSION_2_6_39_MIN
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_2_6_39 || \
		FREETZ_KERNEL_VERSION_3_10_MIN

config FREETZ_KERNEL_VERSION_3_10_MIN
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_3_10 || \
		FREETZ_KERNEL_VERSION_4_4_MIN

config FREETZ_KERNEL_VERSION_4_4_MIN
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_4_4

config FREETZ_KERNEL_VERSION_2_6_13_MAX
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_2_6_13

config FREETZ_KERNEL_VERSION_2_6_19_MAX
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_2_6_13_MAX || \
		FREETZ_KERNEL_VERSION_2_6_19

config FREETZ_KERNEL_VERSION_2_6_28_MAX
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_2_6_19_MAX || \
		FREETZ_KERNEL_VERSION_2_6_28

config FREETZ_KERNEL_VERSION_2_6_32_MAX
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_2_6_28_MAX || \
		FREETZ_KERNEL_VERSION_2_6_32

config FREETZ_KERNEL_VERSION_2_6_39_MAX
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_2_6_32_MAX || \
		FREETZ_KERNEL_VERSION_2_6_39

config FREETZ_KERNEL_VERSION_3_10_MAX
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_2_6_39_MAX || \
		FREETZ_KERNEL_VERSION_3_10

config FREETZ_KERNEL_VERSION_4_4_MAX
	bool
	default y
	depends on \
		FREETZ_KERNEL_VERSION_3_10_MAX || \
		FREETZ_KERNEL_VERSION_4_4

# AVM kernel config area size in KB
config FREETZ_AVM_KERNEL_CONFIG_AREA_SIZE
	depends on FREETZ_KERNEL_VERSION_3_10_MIN
	int
	#
	default 96              if FREETZ_SYSTEM_TYPE_GRX5    && FREETZ_AVM_VERSION_06_8X_MAX
	default 160             if FREETZ_SYSTEM_TYPE_GRX5    && FREETZ_AVM_VERSION_06_9X_MIN
	#
	default 128             if FREETZ_SYSTEM_TYPE_IPQ40xx && FREETZ_AVM_VERSION_07_0X_MAX
	default 256             if FREETZ_SYSTEM_TYPE_IPQ40xx && FREETZ_AVM_VERSION_07_1X_MIN
	#
	default 64              if FREETZ_SYSTEM_TYPE_VR9
	#
	# unknown, let it intentionally fail
	default -1
