default_defconfig 24 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066
  1. ifeq ($(CONFIG_CNSS_QCA6290), y)
  2. ifeq ($(CONFIG_CNSS_EMULATION), y)
  3. CONFIG_QCA_WIFI_NAPIER_EMULATION := y
  4. endif
  5. CONFIG_LITHIUM := y
  6. CONFIG_QCA6290_11AX := y
  7. CONFIG_WLAN_FEATURE_11AX := y
  8. CONFIG_WLAN_FEATURE_DFS_OFFLOAD := y
  9. CONFIG_IPA3 := n
  10. endif
  11. ifeq ($(CONFIG_CNSS_QCA6390), y)
  12. ifeq ($(CONFIG_CNSS_EMULATION), y)
  13. CONFIG_QCA_WIFI_NAPIER_EMULATION := y
  14. endif
  15. CONFIG_LITHIUM := y
  16. CONFIG_WLAN_FEATURE_11AX := y
  17. CONFIG_WLAN_FEATURE_DFS_OFFLOAD := y
  18. ifeq ($(CONFIG_ARCH_SDM845), y)
  19. CONFIG_IPA3 := n
  20. endif
  21. CONFIG_SCALE_INCLUDES := y
  22. CONFIG_HASTINGS_BT_WAR := y
  23. CONFIG_WDI3_IPA_OVER_GSI :=y
  24. CONFIG_DIRECT_BUF_RX_ENABLE := y
  25. CONFIG_WMI_DBR_SUPPORT := y
  26. endif
  27. ifeq ($(CONFIG_CNSS_QCA6490), y)
  28. ifeq ($(CONFIG_CNSS_EMULATION), y)
  29. CONFIG_QCA_WIFI_NAPIER_EMULATION := y
  30. endif
  31. CONFIG_LITHIUM := y
  32. CONFIG_WLAN_FEATURE_11AX := y
  33. CONFIG_WLAN_FEATURE_DFS_OFFLOAD := y
  34. ifeq ($(CONFIG_ARCH_SDM845), y)
  35. CONFIG_IPA3 := n
  36. endif
  37. CONFIG_SCALE_INCLUDES := y
  38. CONFIG_HASTINGS_BT_WAR := y
  39. CONFIG_WDI3_IPA_OVER_GSI :=y
  40. endif
  41. ifeq ($(CONFIG_CNSS_QCA6750), y)
  42. ifeq ($(CONFIG_CNSS_EMULATION), y)
  43. CONFIG_QCA_WIFI_NAPIER_EMULATION := y
  44. endif
  45. CONFIG_LITHIUM := y
  46. CONFIG_WLAN_FEATURE_11AX := y
  47. CONFIG_WLAN_FEATURE_DFS_OFFLOAD := y
  48. ifeq ($(CONFIG_ARCH_SDM845), y)
  49. CONFIG_IPA3 := n
  50. endif
  51. CONFIG_SCALE_INCLUDES := y
  52. CONFIG_HASTINGS_BT_WAR := y
  53. CONFIG_WDI3_IPA_OVER_GSI :=y
  54. endif
  55. ifeq ($(CONFIG_CLD_HL_SDIO_CORE), y)
  56. CONFIG_QCA_WIFI_SDIO := y
  57. ifndef CONFIG_SDIO_TRANSFER
  58. CONFIG_SDIO_TRANSFER = mailbox
  59. endif
  60. endif
  61. ifeq ($(CONFIG_QCA_WIFI_SDIO), y)
  62. CONFIG_ROME_IF = sdio
  63. endif
  64. ifdef CONFIG_ICNSS
  65. CONFIG_ROME_IF = snoc
  66. endif
  67. ifdef CONFIG_ICNSS2
  68. CONFIG_ROME_IF = ipci
  69. endif
  70. ifeq (y,$(findstring y,$(CONFIG_CNSS) $(CONFIG_CNSS2)))
  71. ifndef CONFIG_ROME_IF
  72. #use pci as default interface
  73. CONFIG_ROME_IF = pci
  74. endif
  75. endif
  76. ifeq (m,$(findstring m,$(CONFIG_CNSS2)))
  77. ifndef CONFIG_ROME_IF
  78. #use pci as default interface
  79. CONFIG_ROME_IF = pci
  80. endif
  81. endif
  82. # Make WLAN as open-source driver by default
  83. WLAN_OPEN_SOURCE := y
  84. ifeq ($(CONFIG_ICNSS), y)
  85. CONFIG_HELIUMPLUS := y
  86. CONFIG_64BIT_PADDR := y
  87. CONFIG_FEATURE_TSO := y
  88. CONFIG_FEATURE_TSO_DEBUG := y
  89. ifeq ($(CONFIG_INET_LRO), y)
  90. CONFIG_WLAN_LRO := y
  91. else
  92. CONFIG_WLAN_LRO := n
  93. endif
  94. endif
  95. ifneq ($(DEVELOPER_DISABLE_BUILD_TIMESTAMP), y)
  96. ifneq ($(WLAN_DISABLE_BUILD_TAG), y)
  97. CONFIG_BUILD_TAG := y
  98. endif
  99. endif
  100. ifeq ($(CONFIG_ARCH_MDM9630), y)
  101. CONFIG_MOBILE_ROUTER := y
  102. endif
  103. ifeq ($(CONFIG_ARCH_MDM9640), y)
  104. CONFIG_MOBILE_ROUTER := y
  105. endif
  106. ifeq ($(CONFIG_ARCH_SDX20), y)
  107. CONFIG_MOBILE_ROUTER := y
  108. endif
  109. ifeq ($(CONFIG_ARCH_SDXPRAIRIE), y)
  110. CONFIG_MOBILE_ROUTER := y
  111. endif
  112. ifeq ($(CONFIG_ARCH_MSM8917), y)
  113. ifeq ($(CONFIG_ROME_IF), sdio)
  114. CONFIG_WLAN_SYNC_TSF_PLUS := y
  115. endif
  116. endif
  117. ifeq (y,$(findstring y,$(CONFIG_ARCH_QCS405) $(CONFIG_ARCH_QCS403)))
  118. CONFIG_ARCH_QCS40X := y
  119. endif
  120. ifeq ($(CONFIG_ARCH_QCS40X), y)
  121. CONFIG_WLAN_SYNC_TSF_PLUS := y
  122. CONFIG_WLAN_SYNC_TSF_PLUS_NOIRQ := y
  123. CONFIG_RX_PERFORMANCE := y
  124. CONFIG_TGT_NUM_MSDU_DESC := 900
  125. CONFIG_MULTI_IF_LOG := y
  126. CONFIG_DFS_PRI_MULTIPLIER := y
  127. CONFIG_DFS_OVERRIDE_RF_THRESHOLD := y
  128. endif
  129. CONFIG_WLAN_FEATURE_MBSSID := y
  130. #Flag to enable Legacy Fast Roaming3(LFR3)
  131. ifeq (y,$(findstring y,$(CONFIG_HELIUMPLUS) $(CONFIG_LITHIUM)))
  132. CONFIG_QCACLD_WLAN_LFR3 := y
  133. else
  134. CONFIG_QCACLD_WLAN_LFR2 := y
  135. endif
  136. ifneq ($(CONFIG_MOBILE_ROUTER), y)
  137. #Flag to enable TDLS feature
  138. CONFIG_QCOM_TDLS := y
  139. CONFIG_WLAN_SYSFS := y
  140. #Enable Beacon Reception Stats
  141. CONFIG_FEATURE_BECN_STATS := y
  142. endif
  143. #Disable the Export Symbol config
  144. CONFIG_WLAN_DISABLE_EXPORT_SYMBOL := y
  145. CONFIG_QCACLD_FEATURE_GREEN_AP := y
  146. #Flag to enable Android Packet Filtering
  147. CONFIG_QCACLD_FEATURE_APF := y
  148. #Flag to enable SARv1 -> SARv2 conversion
  149. CONFIG_WLAN_FEATURE_SARV1_TO_SARV2 := n
  150. #Flag to enable get firmware state
  151. CONFIG_QCACLD_FEATURE_FW_STATE := y
  152. #Flag to enable set coex configuration
  153. CONFIG_QCACLD_FEATURE_COEX_CONFIG := n
  154. #Flag to enable get hw capability
  155. ifeq ($(CONFIG_ARCH_QCS40X), y)
  156. CONFIG_QCACLD_FEATURE_HW_CAPABILITY := y
  157. endif
  158. ifeq ($(CONFIG_ARCH_MSM8998), y)
  159. CONFIG_QCACLD_FEATURE_METERING := y
  160. endif
  161. ifeq ($(CONFIG_ARCH_SDM660), y)
  162. CONFIG_QCACLD_FEATURE_METERING := y
  163. endif
  164. ifeq ($(CONFIG_ARCH_SDM630), y)
  165. CONFIG_QCACLD_FEATURE_METERING := y
  166. endif
  167. ifeq ($(CONFIG_ARCH_SDM845), y)
  168. CONFIG_QCACLD_FEATURE_METERING := y
  169. endif
  170. ifeq ($(CONFIG_ARCH_SM8150), y)
  171. CONFIG_QCACLD_FEATURE_METERING := y
  172. endif
  173. ifeq ($(CONFIG_ARCH_SDM670), y)
  174. CONFIG_QCACLD_FEATURE_METERING := y
  175. endif
  176. ifeq ($(CONFIG_ARCH_SM6150), y)
  177. CONFIG_QCACLD_FEATURE_METERING := y
  178. endif
  179. ifeq ($(CONFIG_ARCH_LITO), y)
  180. CONFIG_QCACLD_FEATURE_METERING := y
  181. endif
  182. ifeq ($(CONFIG_ARCH_BENGAL), y)
  183. CONFIG_QCACLD_FEATURE_METERING := y
  184. endif
  185. ifeq ($(CONFIG_ARCH_KONA), y)
  186. CONFIG_QCACLD_FEATURE_METERING := y
  187. CONFIG_WDI3_STATS_UPDATE := y
  188. CONFIG_WLAN_SYNC_TSF_TIMER := y
  189. endif
  190. #Flag to enable Fast Transition (11r) feature
  191. CONFIG_QCOM_VOWIFI_11R := y
  192. #Flag to enable disable ACTION OUI feature
  193. CONFIG_WLAN_FEATURE_ACTION_OUI := y
  194. #Flag to enable Adaptive 11r feature
  195. CONFIG_ADAPTIVE_11R := y
  196. #Flag to enable FILS Feature (11ai)
  197. CONFIG_WLAN_FEATURE_FILS := y
  198. ifneq ($(CONFIG_QCA_CLD_WLAN),)
  199. ifeq (y,$(findstring y,$(CONFIG_CNSS) $(CONFIG_CNSS2) $(CONFIG_ICNSS)$(CONFIG_ICNSS2)))
  200. #Flag to enable Protected Management Frames (11w) feature
  201. CONFIG_WLAN_FEATURE_11W := y
  202. #Flag to enable LTE CoEx feature
  203. CONFIG_QCOM_LTE_COEX := y
  204. ifneq ($(CONFIG_MOBILE_ROUTER), y)
  205. #Flag to enable LPSS feature
  206. CONFIG_WLAN_FEATURE_LPSS := y
  207. endif
  208. endif
  209. ifeq (m,$(findstring m,$(CONFIG_CNSS2) $(CONFIG_ICNSS2)))
  210. #Flag to enable Protected Management Frames (11w) feature
  211. CONFIG_WLAN_FEATURE_11W := y
  212. #Flag to enable LTE CoEx feature
  213. CONFIG_QCOM_LTE_COEX := y
  214. ifneq ($(CONFIG_MOBILE_ROUTER), y)
  215. #Flag to enable LPSS feature
  216. CONFIG_WLAN_FEATURE_LPSS := y
  217. endif
  218. endif
  219. endif
  220. #Flag to enable Protected Management Frames (11w) feature
  221. ifeq ($(CONFIG_ROME_IF),usb)
  222. CONFIG_WLAN_FEATURE_11W := y
  223. endif
  224. ifeq ($(CONFIG_ROME_IF),sdio)
  225. CONFIG_WLAN_FEATURE_11W := y
  226. endif
  227. #Flag to enable the tx desc sanity check
  228. ifeq ($(CONFIG_ROME_IF),usb)
  229. CONFIG_QCA_TXDESC_SANITY_CHECKS := y
  230. endif
  231. ifneq ($(CONFIG_MOBILE_ROUTER), y)
  232. #Flag to enable NAN
  233. CONFIG_QCACLD_FEATURE_NAN := y
  234. endif
  235. #Flag to enable Linux QCMBR feature as default feature
  236. ifeq ($(CONFIG_ROME_IF),usb)
  237. CONFIG_LINUX_QCMBR :=y
  238. endif
  239. CONFIG_FEATURE_EPPING := y
  240. #Flag to enable offload packets feature
  241. CONFIG_WLAN_OFFLOAD_PACKETS := y
  242. #enable TSF get feature
  243. CONFIG_WLAN_SYNC_TSF := y
  244. #Enable DSRC feature
  245. ifeq ($(CONFIG_QCA_WIFI_SDIO), y)
  246. CONFIG_WLAN_FEATURE_DSRC := y
  247. endif
  248. ifneq ($(CONFIG_ROME_IF),usb)
  249. #Flag to enable SAE
  250. CONFIG_WLAN_FEATURE_SAE := y
  251. ifneq ($(CONFIG_ROME_IF),sdio)
  252. #Flag to enable DISA
  253. CONFIG_WLAN_FEATURE_DISA := y
  254. #Flag to enable FIPS
  255. CONFIG_WLAN_FEATURE_FIPS := y
  256. #Flag to enable Fast Path feature
  257. ifneq ($(CONFIG_LITHIUM), y)
  258. CONFIG_WLAN_FASTPATH := y
  259. endif
  260. # Flag to enable NAPI
  261. CONFIG_WLAN_NAPI := y
  262. CONFIG_WLAN_NAPI_DEBUG := n
  263. # Flag to enable FW based TX Flow control
  264. ifeq ($(CONFIG_LITHIUM), y)
  265. CONFIG_WLAN_TX_FLOW_CONTROL_V2 := y
  266. else
  267. CONFIG_WLAN_TX_FLOW_CONTROL_V2 := n
  268. endif
  269. endif
  270. endif
  271. CONFIG_POWER_MANAGEMENT_OFFLOAD := y
  272. ifeq ($(CONFIG_ROME_IF), snoc)
  273. CONFIG_WLAN_TX_FLOW_CONTROL_V2 := y
  274. endif
  275. ifeq ($(CONFIG_ARCH_QCS40X), y)
  276. CONFIG_WLAN_TX_FLOW_CONTROL_V2 := n
  277. # Flag to improve TCP TX throughput for both
  278. # CONFIG_WLAN_TX_FLOW_CONTROL_LEGACY and CONFIG_WLAN_TX_FLOW_CONTROL_V2
  279. # disabled platform, avoid frame drop in driver
  280. CONFIG_WLAN_PDEV_TX_FLOW_CONTROL := y
  281. endif
  282. # Flag to enable LFR Subnet Detection
  283. CONFIG_LFR_SUBNET_DETECTION := y
  284. # Flag to enable MCC to SCC switch feature
  285. CONFIG_MCC_TO_SCC_SWITCH := y
  286. ifeq ($(CONFIG_SLUB_DEBUG), y)
  287. # Enable Obj Mgr Degug services if slub build
  288. CONFIG_WLAN_OBJMGR_DEBUG:= y
  289. CONFIG_MPC_UT_FRAMEWORK := y
  290. CONFIG_LOCK_STATS_ON:= y
  291. endif
  292. ifeq (y,$(findstring y,$(CONFIG_QCA_WIFI_SDIO) $(CONFIG_HIF_USB)))
  293. CONFIG_HL_DP_SUPPORT := y
  294. else
  295. CONFIG_LL_DP_SUPPORT := y
  296. endif
  297. ifeq ($(CONFIG_ROME_IF),pci)
  298. ifneq ($(CONFIG_WLAN_TX_FLOW_CONTROL_V2), y)
  299. ifneq ($(CONFIG_LITHIUM), y)
  300. CONFIG_WLAN_TX_FLOW_CONTROL_LEGACY := y
  301. endif
  302. endif
  303. endif
  304. #Whether have QMI support
  305. CONFIG_QMI_SUPPORT := y
  306. ifeq ($(CONFIG_ICNSS), y)
  307. CONFIG_WIFI_3_0_ADRASTEA := y
  308. CONFIG_ADRASTEA_RRI_ON_DDR := y
  309. # Enable athdiag procfs debug support for adrastea
  310. CONFIG_ATH_PROCFS_DIAG_SUPPORT := y
  311. # Enable 11AC TX compact feature for adrastea
  312. CONFIG_ATH_11AC_TXCOMPACT := y
  313. ifeq ($(CONFIG_QMI_SUPPORT), y)
  314. CONFIG_ADRASTEA_SHADOW_REGISTERS := y
  315. endif
  316. endif
  317. # Enable fw stats version 2
  318. ifeq (y,$(findstring y,$(CONFIG_HELIUMPLUS) $(CONFIG_LITHIUM)))
  319. CONFIG_AR900B := y
  320. endif
  321. # NOTE: CONFIG_64BIT_PADDR requires CONFIG_HELIUMPLUS
  322. ifeq ($(CONFIG_HELIUMPLUS), y)
  323. ifeq ($(CONFIG_64BIT_PADDR), y)
  324. CONFIG_HTT_PADDR64 := y
  325. endif
  326. ifeq ($(CONFIG_SLUB_DEBUG_ON), y)
  327. CONFIG_OL_RX_INDICATION_RECORD := y
  328. CONFIG_TSOSEG_DEBUG := y
  329. CONFIG_HIF_LARGE_CE_RING_HISTORY := 8192
  330. endif
  331. endif #CONFIG_HELIUMPLUS
  332. ifeq ($(CONFIG_LITHIUM), y)
  333. #
  334. # Enable Shadow V2 for all lithium platform
  335. #
  336. CONFIG_SHADOW_V2 := y
  337. ifeq ($(CONFIG_CNSS_QCA6290), y)
  338. CONFIG_QCA6290_HEADERS_DEF := y
  339. CONFIG_QCA_WIFI_QCA6290 := y
  340. endif
  341. ifeq ($(CONFIG_CNSS_QCA6390), y)
  342. CONFIG_QCA6390_HEADERS_DEF := y
  343. CONFIG_QCA_WIFI_QCA6390 := y
  344. endif
  345. ifeq ($(CONFIG_CNSS_QCA6490), y)
  346. CONFIG_QCA6490_HEADERS_DEF := y
  347. CONFIG_QCA_WIFI_QCA6490 := y
  348. endif
  349. ifeq ($(CONFIG_CNSS_QCA6750), y)
  350. CONFIG_QCA6750_HEADERS_DEF := y
  351. CONFIG_QCA_WIFI_QCA6750 := y
  352. endif
  353. ifeq ($(CONFIG_LITHIUM), y)
  354. #
  355. # Enable VERBOSE debug INI mechanism
  356. #
  357. CONFIG_VERBOSE_DEBUG := y
  358. endif
  359. CONFIG_QCA_WIFI_QCA8074 := y
  360. CONFIG_QCA_WIFI_QCA8074_VP := y
  361. CONFIG_DP_INTR_POLL_BASED := y
  362. CONFIG_TX_PER_PDEV_DESC_POOL := y
  363. CONFIG_DP_TRACE := y
  364. CONFIG_FEATURE_TSO := y
  365. CONFIG_FEATURE_FORCE_WAKE := y
  366. CONFIG_DP_LFR := y
  367. CONFIG_DUP_RX_DESC_WAR := y
  368. CONFIG_HTT_PADDR64 := y
  369. CONFIG_RX_OL := y
  370. CONFIG_TX_TID_OVERRIDE := y
  371. CONFIG_DP_TXRX_SOC_ATTACH := y
  372. CONFIG_WLAN_CLD_PM_QOS := y
  373. CONFIG_DISABLE_DP_STATS := n
  374. CONFIG_REO_DESC_DEFER_FREE := y
  375. CONFIG_RXDMA_ERR_PKT_DROP := y
  376. ifeq ($(CONFIG_FEATURE_TSO), y)
  377. CONFIG_FEATURE_TSO_STATS := y
  378. CONFIG_TSO_DEBUG_LOG_ENABLE := y
  379. endif
  380. ifeq ($(CONFIG_DISABLE_DP_STATS), y)
  381. CONFIG_FEATURE_TSO_STATS := n
  382. endif
  383. endif
  384. # As per target team, build is done as follows:
  385. # Defconfig : build with default flags
  386. # Slub : defconfig + CONFIG_SLUB_DEBUG=y +
  387. # CONFIG_SLUB_DEBUG_ON=y + CONFIG_PAGE_POISONING=y
  388. # Perf : Using appropriate msmXXXX-perf_defconfig
  389. #
  390. # Shipment builds (user variants) should not have any debug feature
  391. # enabled. This is identified using 'TARGET_BUILD_VARIANT'. Slub builds
  392. # are identified using the CONFIG_SLUB_DEBUG_ON configuration. Since
  393. # there is no other way to identify defconfig builds, QCOMs internal
  394. # representation of perf builds (identified using the string 'perf'),
  395. # is used to identify if the build is a slub or defconfig one. This
  396. # way no critical debug feature will be enabled for perf and shipment
  397. # builds. Other OEMs are also protected using the TARGET_BUILD_VARIANT
  398. # config.
  399. ifneq ($(TARGET_BUILD_VARIANT),user)
  400. ifeq ($(CONFIG_LITHIUM), y)
  401. CONFIG_FEATURE_PKTLOG := n
  402. else
  403. CONFIG_FEATURE_PKTLOG := y
  404. endif
  405. CONFIG_WLAN_DEBUG_CRASH_INJECT := y
  406. endif
  407. #Enable WLAN/Power debugfs feature only if debug_fs is enabled
  408. ifeq ($(CONFIG_DEBUG_FS), y)
  409. # Flag to enable debugfs. Depends on CONFIG_DEBUG_FS in kernel
  410. # configuration.
  411. CONFIG_WLAN_DEBUGFS := y
  412. CONFIG_WLAN_POWER_DEBUGFS := y
  413. endif
  414. ifeq ($(CONFIG_WLAN_DEBUGFS), y)
  415. CONFIG_WLAN_MWS_INFO_DEBUGFS := y
  416. CONFIG_WLAN_FEATURE_MIB_STATS := y
  417. else
  418. CONFIG_WLAN_MWS_INFO_DEBUGFS := n
  419. CONFIG_WLAN_FEATURE_MIB_STATS := n
  420. endif
  421. # Feature flags which are not (currently) configurable via Kconfig
  422. #Whether to build debug version
  423. BUILD_DEBUG_VERSION := y
  424. #Enable this flag to build driver in diag version
  425. BUILD_DIAG_VERSION := y
  426. ifeq ($(CONFIG_SLUB_DEBUG), y)
  427. PANIC_ON_BUG := y
  428. WLAN_WARN_ON_ASSERT := y
  429. else ifeq ($(CONFIG_PERF_DEBUG), y)
  430. PANIC_ON_BUG := y
  431. WLAN_WARN_ON_ASSERT := y
  432. else
  433. PANIC_ON_BUG := n
  434. WLAN_WARN_ON_ASSERT := n
  435. endif
  436. # Compile all log levels by default
  437. CONFIG_WLAN_LOG_FATAL := y
  438. CONFIG_WLAN_LOG_ERROR := y
  439. CONFIG_WLAN_LOG_WARN := y
  440. CONFIG_WLAN_LOG_INFO := y
  441. CONFIG_WLAN_LOG_DEBUG := y
  442. CONFIG_WLAN_LOG_ENTER := y
  443. CONFIG_WLAN_LOG_EXIT := y
  444. #Enable OL debug and wmi unified functions
  445. CONFIG_ATH_PERF_PWR_OFFLOAD := y
  446. #Disable packet log
  447. CONFIG_REMOVE_PKT_LOG := n
  448. #Enable 11AC TX
  449. ifeq ($(CONFIG_ROME_IF),pci)
  450. CONFIG_ATH_11AC_TXCOMPACT := y
  451. endif
  452. ifeq ($(CONFIG_ROME_IF),ipci)
  453. CONFIG_ATH_11AC_TXCOMPACT := y
  454. endif
  455. ifeq ($(CONFIG_ROME_IF),usb)
  456. CONFIG_ATH_11AC_TXCOMPACT := n
  457. endif
  458. #Enable PCI specific APIS (dma, etc)
  459. ifeq ($(CONFIG_ROME_IF),pci)
  460. CONFIG_HIF_PCI := y
  461. endif
  462. ifeq ($(CONFIG_ROME_IF),ipci)
  463. CONFIG_HIF_IPCI := y
  464. endif
  465. #Enable USB specific APIS
  466. ifeq ($(CONFIG_ROME_IF),usb)
  467. CONFIG_HIF_USB := y
  468. endif
  469. #Enable SDIO specific APIS
  470. ifeq ($(CONFIG_ROME_IF),sdio)
  471. CONFIG_HIF_SDIO := y
  472. CONFIG_TX_DESC_HI_PRIO_RESERVE := y
  473. CONFIG_FEATURE_HL_GROUP_CREDIT_FLOW_CONTROL := y
  474. CONFIG_TGT_NUM_MSDU_DESC := 0
  475. endif
  476. ifeq ($(CONFIG_ROME_IF),snoc)
  477. CONFIG_HIF_SNOC:= y
  478. endif
  479. # enable/disable feature flags based upon mobile router profile
  480. ifeq ($(CONFIG_MOBILE_ROUTER), y)
  481. CONFIG_FEATURE_WLAN_MCC_TO_SCC_SWITCH := y
  482. CONFIG_FEATURE_WLAN_AUTO_SHUTDOWN := y
  483. CONFIG_FEATURE_WLAN_AP_AP_ACS_OPTIMIZE := y
  484. CONFIG_FEATURE_WLAN_STA_4ADDR_SCHEME := y
  485. CONFIG_MDM_PLATFORM := y
  486. ifneq ($(CONFIG_ARCH_SDXPRAIRIE), y)
  487. CONFIG_FEATURE_WLAN_STA_AP_MODE_DFS_DISABLE := y
  488. endif
  489. CONFIG_FEATURE_AP_MCC_CH_AVOIDANCE := y
  490. else
  491. CONFIG_QCOM_ESE := y
  492. CONFIG_FEATURE_WLAN_RMC := y
  493. CONFIG_WLAN_OPEN_P2P_INTERFACE := y
  494. CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY := y
  495. endif
  496. #enable 4addr support for QCS40X
  497. ifeq ($(CONFIG_ARCH_QCS40X), y)
  498. CONFIG_FEATURE_WLAN_STA_4ADDR_SCHEME := y
  499. endif
  500. #Enable power management suspend/resume functionality to PCI
  501. CONFIG_ATH_BUS_PM := y
  502. #Enable FLOWMAC module support
  503. CONFIG_ATH_SUPPORT_FLOWMAC_MODULE := n
  504. #Enable spectral support
  505. CONFIG_ATH_SUPPORT_SPECTRAL := n
  506. #Define the legacy pktlog
  507. ifeq ($(CONFIG_REMOVE_PKT_LOG), n)
  508. ifeq ($(CONFIG_HELIUMPLUS), y)
  509. CONFIG_PKTLOG_LEGACY := y
  510. endif
  511. #Customize DSCP_to-UP map based on RFC8325
  512. ifeq ($(CONFIG_HELIUMPLUS), y)
  513. CONFIG_WLAN_CUSTOM_DSCP_UP_MAP := y
  514. CONFIG_WLAN_SEND_DSCP_UP_MAP_TO_FW := y
  515. endif
  516. ifeq ($(CONFIG_ROME_IF), sdio)
  517. CONFIG_PKTLOG_LEGACY := y
  518. endif
  519. ifeq ($(CONFIG_ROME_IF), pci)
  520. CONFIG_PKTLOG_LEGACY := y
  521. endif
  522. ifeq ($(CONFIG_ROME_IF), usb)
  523. CONFIG_PKTLOG_LEGACY := y
  524. endif
  525. ifeq ($(CONFIG_ROME_IF), snoc)
  526. CONFIG_PKTLOG_LEGACY := y
  527. endif
  528. endif
  529. ifeq ($(CONFIG_LITHIUM), y)
  530. CONFIG_PKTLOG_LEGACY := n
  531. endif
  532. #Enable WDI Event support
  533. ifeq ($(CONFIG_REMOVE_PKT_LOG), y)
  534. CONFIG_WDI_EVENT_ENABLE := n
  535. else
  536. CONFIG_WDI_EVENT_ENABLE := y
  537. endif
  538. #Enable the type_specific_data in the ath_pktlog_arg
  539. ifeq ($(CONFIG_REMOVE_PKT_LOG), n)
  540. ifeq ($(CONFIG_LITHIUM), y)
  541. CONFIG_PKTLOG_HAS_SPECIFIC_DATA := y
  542. endif
  543. ifeq ($(CONFIG_HELIUMPLUS), y)
  544. CONFIG_PKTLOG_HAS_SPECIFIC_DATA := y
  545. endif
  546. endif
  547. #Endianness selection
  548. CONFIG_LITTLE_ENDIAN := y
  549. #Enable TX reclaim support
  550. CONFIG_TX_CREDIT_RECLAIM_SUPPORT := n
  551. #Enable FTM support
  552. CONFIG_QCA_WIFI_FTM := y
  553. ifeq ($(CONFIG_QCA_WIFI_FTM), y)
  554. ifeq ($(CONFIG_NL80211_TESTMODE), y)
  555. QCA_WIFI_FTM_NL80211 :=y
  556. else
  557. QCA_WIFI_FTM_NL80211 :=n
  558. endif
  559. CONFIG_LINUX_QCMBR :=y
  560. else
  561. QCA_WIFI_FTM_NL80211 :=n
  562. CONFIG_LINUX_QCMBR :=n
  563. endif
  564. #Enable Checksum Offload
  565. CONFIG_CHECKSUM_OFFLOAD := y
  566. #Enable GTK offload
  567. CONFIG_GTK_OFFLOAD := y
  568. #Enable EXT WOW
  569. ifeq ($(CONFIG_HIF_PCI), y)
  570. CONFIG_EXT_WOW := y
  571. endif
  572. #Set this to 1 to catch erroneous Target accesses during debug.
  573. CONFIG_ATH_PCIE_ACCESS_DEBUG := n
  574. #Enable IPA offload
  575. ifeq ($(CONFIG_IPA), y)
  576. CONFIG_IPA_OFFLOAD := y
  577. endif
  578. ifeq ($(CONFIG_IPA3), y)
  579. CONFIG_IPA_OFFLOAD := y
  580. endif
  581. #Flag to enable SMMU S1 support
  582. ifeq ($(CONFIG_ARCH_SDM845), y)
  583. ifeq ($(CONFIG_IPA_OFFLOAD), y)
  584. CONFIG_ENABLE_SMMU_S1_TRANSLATION := y
  585. endif
  586. endif
  587. ifeq ($(CONFIG_ARCH_SM8150), y)
  588. ifeq ($(CONFIG_IPA_OFFLOAD), y)
  589. ifneq ($(CONFIG_LITHIUM), y)
  590. CONFIG_ENABLE_SMMU_S1_TRANSLATION := y
  591. endif
  592. endif
  593. endif
  594. ifeq ($(CONFIG_ARCH_SDMMAGPIE), y)
  595. ifeq ($(CONFIG_IPA_OFFLOAD), y)
  596. CONFIG_ENABLE_SMMU_S1_TRANSLATION := y
  597. endif
  598. endif
  599. ifeq ($(CONFIG_ARCH_LITO), y)
  600. ifeq ($(CONFIG_IPA_OFFLOAD), y)
  601. CONFIG_ENABLE_SMMU_S1_TRANSLATION := y
  602. endif
  603. endif
  604. ifeq ($(CONFIG_ARCH_ATOLL), y)
  605. ifeq ($(CONFIG_IPA_OFFLOAD), y)
  606. CONFIG_ENABLE_SMMU_S1_TRANSLATION := y
  607. endif
  608. endif
  609. ifeq ($(CONFIG_ARCH_TRINKET), y)
  610. ifeq ($(CONFIG_IPA_OFFLOAD), y)
  611. CONFIG_ENABLE_SMMU_S1_TRANSLATION := y
  612. endif
  613. endif
  614. ifeq ($(CONFIG_ARCH_SDXPRAIRIE), y)
  615. ifeq ($(CONFIG_IPA_OFFLOAD), y)
  616. CONFIG_ENABLE_SMMU_S1_TRANSLATION := y
  617. endif
  618. endif
  619. ifeq ($(CONFIG_ARCH_KONA), y)
  620. ifeq ($(CONFIG_IPA_OFFLOAD), y)
  621. CONFIG_ENABLE_SMMU_S1_TRANSLATION := y
  622. endif
  623. endif
  624. ifeq ($(CONFIG_ARCH_SM6150), y)
  625. ifeq ($(CONFIG_IPA_OFFLOAD), y)
  626. CONFIG_ENABLE_SMMU_S1_TRANSLATION := y
  627. endif
  628. endif
  629. ifeq ($(CONFIG_ARCH_BENGAL), y)
  630. ifeq ($(CONFIG_IPA_OFFLOAD), y)
  631. CONFIG_ENABLE_SMMU_S1_TRANSLATION := y
  632. endif
  633. endif
  634. ifeq ($(CONFIG_ARCH_SDX20), y)
  635. ifeq ($(CONFIG_QCA_WIFI_SDIO), y)
  636. ifeq ($(CONFIG_WCNSS_SKB_PRE_ALLOC), y)
  637. CONFIG_FEATURE_SKB_PRE_ALLOC := y
  638. endif
  639. endif
  640. endif
  641. #Enable Signed firmware support for split binary format
  642. CONFIG_QCA_SIGNED_SPLIT_BINARY_SUPPORT := n
  643. #Enable single firmware binary format
  644. CONFIG_QCA_SINGLE_BINARY_SUPPORT := n
  645. #Enable collecting target RAM dump after kernel panic
  646. CONFIG_TARGET_RAMDUMP_AFTER_KERNEL_PANIC := y
  647. #Flag to enable/disable secure firmware feature
  648. CONFIG_FEATURE_SECURE_FIRMWARE := n
  649. #Flag to enable Stats Ext implementation
  650. CONFIG_FEATURE_STATS_EXT := y
  651. #Flag to allocate memory dynamically for different buffers
  652. CONFIG_WLAN_LOGGING_BUFFERS_DYNAMICALLY := n
  653. CONFIG_WLAN_DFS_STATIC_MEM_ALLOC := y
  654. #Flag to enable HTC credit history feature
  655. CONFIG_FEATURE_HTC_CREDIT_HISTORY := y
  656. #Flag to enable MTRACE feature
  657. CONFIG_TRACE_RECORD_FEATURE := y
  658. #Flag to enable p2p debug feature
  659. CONFIG_WLAN_FEATURE_P2P_DEBUG := y
  660. #Flag to enable roam debug log
  661. CONFIG_FEATURE_ROAM_DEBUG := y
  662. #Flag to enable DFS Master feature
  663. CONFIG_WLAN_DFS_MASTER_ENABLE := y
  664. #Flag to enable WEXT support for STA/AP/P2P interfaces
  665. CONFIG_WLAN_WEXT_SUPPORT_ENABLE := y
  666. #Flag to enable/disable MTRACE feature
  667. CONFIG_ENABLE_MTRACE_LOG := y
  668. #Flag to enable nud tracking feature
  669. CONFIG_WLAN_NUD_TRACKING := y
  670. #Flag to enable wbuff feature
  671. CONFIG_WLAN_WBUFF := y
  672. #Flag to enable set and get disable channel list feature
  673. CONFIG_DISABLE_CHANNEL_LIST :=y
  674. #Flag to enable beacon receive feature
  675. CONFIG_WLAN_BCN_RECV_FEATURE := y
  676. #Flag to enable LTE COEX feature
  677. CONFIG_LTE_COEX := y
  678. #Flag to enable/disable TARGET 11d scan
  679. CONFIG_TARGET_11D_SCAN := y
  680. #Flag to enable/disable Avoid acs freq feature
  681. CONFIG_SAP_AVOID_ACS_FREQ_LIST := y
  682. #Flag to enable HOST OPCLASS feature
  683. CONFIG_HOST_OPCLASS := y
  684. #Flag to enable Dynamic Voltage WDCVS (Config Voltage Mode)
  685. CONFIG_WLAN_DYNAMIC_CVM := y
  686. #Flag to enable SAR Safety Feature
  687. CONFIG_SAR_SAFETY_FEATURE := y
  688. CONFIG_WIFI_POS_CONVERGED := y
  689. ifneq ($(CONFIG_WIFI_POS_CONVERGED), y)
  690. CONFIG_WIFI_POS_LEGACY := y
  691. endif
  692. CONFIG_CP_STATS := y
  693. CONFIG_FEATURE_INTEROP_ISSUES_AP := y
  694. CONFIG_FEATURE_WLAN_WAPI := y
  695. CONFIG_AGEIE_ON_SCAN_RESULTS := y
  696. ifneq ($(CONFIG_LITHIUM), y)
  697. #Flag to enable FW log parsing support feature
  698. CONFIG_FEATURE_FW_LOG_PARSING := y
  699. endif
  700. CONFIG_PTT_SOCK_SVC_ENABLE := y
  701. CONFIG_SOFTAP_CHANNEL_RANGE := y
  702. CONFIG_FEATURE_WLAN_SCAN_PNO := y
  703. CONFIG_WLAN_FEATURE_PACKET_FILTERING := y
  704. CONFIG_WLAN_NS_OFFLOAD := y
  705. CONFIG_FEATURE_WLAN_RA_FILTERING:= y
  706. CONFIG_FEATURE_WLAN_LPHB := y
  707. CONFIG_QCA_SUPPORT_TX_THROTTLE := y
  708. CONFIG_WMI_INTERFACE_EVENT_LOGGING := y
  709. CONFIG_WLAN_FEATURE_LINK_LAYER_STATS := y
  710. CONFIG_FEATURE_WLAN_EXTSCAN := n
  711. CONFIG_WMI_BCN_OFFLOAD := y
  712. CONFIG_160MHZ_SUPPORT := y
  713. CONFIG_MCL := y
  714. CONFIG_REG_CLIENT := y
  715. CONFIG_WLAN_PMO_ENABLE := y
  716. CONFIG_CONVERGED_P2P_ENABLE := y
  717. CONFIG_WLAN_POLICY_MGR_ENABLE := y
  718. CONFIG_FEATURE_BLACKLIST_MGR := y
  719. CONFIG_SUPPORT_11AX := y
  720. CONFIG_HDD_INIT_WITH_RTNL_LOCK := y
  721. CONFIG_WLAN_CONV_SPECTRAL_ENABLE := y
  722. CONFIG_WLAN_SPECTRAL_ENABLE := y
  723. CONFIG_WMI_CMD_STRINGS := y
  724. CONFIG_FEATURE_MONITOR_MODE_SUPPORT := y
  725. CONFIG_WLAN_ALLOCATE_GLOBAL_BUFFERS_DYNAMICALLY := n
  726. CONFIG_WLAN_FEATURE_TWT := y
  727. CONFIG_FW_THERMAL_THROTTLE := y
  728. ifeq (y,$(findstring y,$(CONFIG_LITHIUM) $(CONFIG_ICNSS)))
  729. CONFIG_WLAN_FEATURE_BMI := n
  730. else
  731. CONFIG_WLAN_FEATURE_BMI := y
  732. endif
  733. #Flags to enable/disable vendor commands
  734. CONFIG_FEATURE_RSSI_MONITOR := y
  735. CONFIG_FEATURE_BSS_TRANSITION := y
  736. CONFIG_FEATURE_STATION_INFO := y
  737. CONFIG_FEATURE_TX_POWER := y
  738. CONFIG_FEATURE_OTA_TEST := y
  739. CONFIG_FEATURE_ACTIVE_TOS := y
  740. CONFIG_FEATURE_SAR_LIMITS := y
  741. CONFIG_FEATURE_CONCURRENCY_MATRIX := y
  742. CONFIG_FEATURE_SAP_COND_CHAN_SWITCH := y
  743. CONFIG_FEATURE_P2P_LISTEN_OFFLOAD := y
  744. CONFIG_QCACLD_FEATURE_MPTA_HELPER := n
  745. CONFIG_QCACLD_RX_DESC_MULTI_PAGE_ALLOC := y
  746. #Flags to enable/disable WMI APIs
  747. CONFIG_WMI_ROAM_SUPPORT := y
  748. CONFIG_WMI_CONCURRENCY_SUPPORT := y
  749. CONFIG_WMI_STA_SUPPORT := y
  750. CONFIG_DP_TRACE := y
  751. ifeq ($(CONFIG_HELIUMPLUS), y)
  752. ifneq ($(CONFIG_FORCE_ALLOC_FROM_DMA_ZONE), y)
  753. CONFIG_ENABLE_DEBUG_ADDRESS_MARKING := y
  754. endif
  755. CONFIG_RX_OL := y
  756. endif
  757. ifeq ($(CONFIG_SLUB_DEBUG_ON), y)
  758. CONFIG_DSC_DEBUG := y
  759. CONFIG_DESC_TIMESTAMP_DEBUG_INFO := y
  760. CONFIG_FEATURE_UNIT_TEST_SUSPEND := y
  761. CONFIG_LEAK_DETECTION := y
  762. CONFIG_MAX_LOGS_PER_SEC := 500
  763. CONFIG_SCHED_HISTORY_SIZE := 256
  764. CONFIG_TALLOC_DEBUG := y
  765. CONFIG_UNIT_TEST := y
  766. CONFIG_RX_DESC_DEBUG_CHECK:= y
  767. CONFIG_REGISTER_OP_DEBUG := y
  768. CONFIG_ENABLE_QDF_PTR_HASH_DEBUG := y
  769. endif
  770. ifeq ($(CONFIG_UNIT_TEST), y)
  771. CONFIG_DSC_TEST := y
  772. CONFIG_QDF_TEST := y
  773. CONFIG_FEATURE_WLM_STATS := y
  774. endif
  775. ifeq ($(CONFIG_LITHIUM), y)
  776. ifeq ($(CONFIG_SLUB_DEBUG_ON), y)
  777. CONFIG_WLAN_FEATURE_DP_EVENT_HISTORY := y
  778. CONFIG_HIF_CE_DEBUG_DATA_BUF := y
  779. CONFIG_WLAN_RECORD_RX_PADDR := y
  780. endif
  781. CONFIG_WLAN_SUPPORT_DATA_STALL := y
  782. CONFIG_WLAN_DP_PER_RING_TYPE_CONFIG := y
  783. CONFIG_WLAN_CE_INTERRUPT_THRESHOLD_CONFIG := y
  784. #Enable WMI TX/RX over QMI
  785. CONFIG_WMI_SEND_RECV_QMI := y
  786. CONFIG_WLAN_DP_PENDING_MEM_FLUSH := y
  787. endif
  788. #Flag to enable hdd memory dump feature
  789. CONFIG_FEATURE_MEMDUMP_ENABLE := y
  790. #Flag to enable/disable WLAN D0-WOW
  791. ifeq ($(CONFIG_PCI_MSM), y)
  792. ifeq ($(CONFIG_HIF_PCI), y)
  793. CONFIG_FEATURE_WLAN_D0WOW := y
  794. endif
  795. endif
  796. ifeq ($(CONFIG_ARCH_MDM9607), y)
  797. CONFIG_TUFELLO_DUAL_FW_SUPPORT := y
  798. endif
  799. ifeq ($(CONFIG_ARCH_MSM8996), y)
  800. CONFIG_CHANNEL_HOPPING_ALL_BANDS := y
  801. endif
  802. ifeq ($(CONFIG_ARCH_SDXPRAIRIE), y)
  803. ifneq ($(CONFIG_SLUB_DEBUG), y)
  804. CONFIG_DP_TRACE := n
  805. endif
  806. CONFIG_DIRECT_BUF_RX_ENABLE := n
  807. CONFIG_WMI_DBR_SUPPORT := n
  808. endif
  809. ifneq ($(CONFIG_HIF_USB), y)
  810. CONFIG_WLAN_LOGGING_SOCK_SVC := y
  811. endif
  812. ifneq ($(TARGET_BUILD_VARIANT),user)
  813. CONFIG_DESC_DUP_DETECT_DEBUG := y
  814. CONFIG_DEBUG_RX_RING_BUFFER := y
  815. endif
  816. ifeq ($(CONFIG_CNSS), y)
  817. ifeq ($(CONFIG_CNSS_SDIO), y)
  818. CONFIG_PLD_SDIO_CNSS_FLAG := y
  819. endif
  820. ifeq ($(CONFIG_HIF_PCI), y)
  821. CONFIG_PLD_PCIE_CNSS_FLAG := y
  822. endif
  823. endif
  824. ifeq ($(CONFIG_ICNSS2), y)
  825. CONFIG_PLD_IPCI_ICNSS_FLAG := y
  826. endif
  827. ifeq ($(CONFIG_CNSS2), y)
  828. ifeq ($(CONFIG_HIF_PCI), y)
  829. CONFIG_PLD_PCIE_CNSS_FLAG := y
  830. CONFIG_PLD_PCIE_INIT_FLAG := y
  831. endif
  832. endif
  833. ifeq ($(CONFIG_CNSS2), m)
  834. ifeq ($(CONFIG_HIF_PCI), y)
  835. CONFIG_PLD_PCIE_CNSS_FLAG := y
  836. CONFIG_PLD_PCIE_INIT_FLAG := y
  837. endif
  838. endif
  839. #Enable STATE MACHINE HISTORY
  840. CONFIG_SM_ENG_HIST := n
  841. #Enable OEM DATA feature
  842. CONFIG_FEATURE_OEM_DATA := y
  843. #Enable FW Offload
  844. CONFIG_WLAN_FW_OFFLOAD := y
  845. #Enable eLNA bypass feature
  846. ifeq ($(CONFIG_WLAN_FW_OFFLOAD), y)
  847. CONFIG_WLAN_FEATURE_ELNA := y
  848. endif
  849. ifeq (y,$(findstring y,$(CONFIG_ARCH_MSM) $(CONFIG_ARCH_QCOM)))
  850. CONFIG_WLAN_FEATURE_DP_BUS_BANDWIDTH := y
  851. endif
  852. ifeq ($(CONFIG_CNSS_QCA6490), y)
  853. #Enable 6 GHz Band
  854. CONFIG_BAND_6GHZ := y
  855. CONFIG_RX_FISA := y
  856. endif
  857. ifeq ($(CONFIG_BAND_6GHZ), y)
  858. CONFIG_6G_SCAN_CHAN_SORT_ALGO := y
  859. endif
  860. CONFIG_SAP_DHCP_FW_IND := y
  861. #Enable support to get ANI level
  862. CONFIG_ANI_LEVEL_REQUEST := y
  863. ifeq ($(CONFIG_ARCH_QCS405), y)
  864. CONFIG_FEATURE_WLAN_TIME_SYNC_FTM := y
  865. endif