Android 14.0.0 release 0.138
DHD: synadhd driver update

- Fix wl command failed with Linux kernel 5.15
      There is a new "ndo_siocdevprivate" instead of private ioctl command handler "ndo_ioctl".
      write a wrapper function to hook the new ndo_siocdevprivate callback.

- Fix cpu lock during p2p go creation when kernel version > 6.0
      Protect netdev registration and unregistration by rtnl_lock.

- Fix for deadlock occurring in wl_notify_regd due to rtnl_lock race condition
	From 5.12 kernel onwards, the vendor API commands aren't using rtnl lock and instead added wiphy_lock.
	With newer kernel, if the country set call from HAL is getting called while any context is already holding rtnl lock,
	we were invoking regulatory_set_wiphy_regd_sync with wiphy_lock due to wrong check of checking mutex lock state which can change dynamically.
	This would lead to a deadlock since the caller already has wiphy lock held.
	Solution: Use regulatory_set_wiphy_regd and avoid using regulatory_set_wiphy_regd_sync.
	Downside is that the channels will not be updated in the API invocation context.

- Fix for nan iface failure in kernel > 5.15, for acts test_run_aware_then_p2p

- Add wakelock for whole interface add/del procecure
	Reported adding p2p interface failure after suspend due to applications can request p2p during suspend (by background application).
	We already have wakelock at dhd_ifadd_event_handler() and dhd_ifdel_event_handler() to avoid some conflict for add/remove interface,
	but it doesn't cover this case, so we need to add wakelock for whole procedure for add/del interface operation.
	So we added wakelock to protect the whole interface add/del procedure
	and the event handling part is not required anymore, so it was removed.

- Update netdev features by scheduling deferred work

Bug: 303021965
Test: t6pro kernel 6.1 wbs test pass

Change-Id: I3cc6b8fb8df19c9409147c19ad2aa9a96e1175a4
Signed-off-by: Terry Chen <terry.chen@synaptics.corp-partner.google.com>
11 files changed
tree: ede74bfb0051a4649534c5189cc3fb861ad8bd13
  1. include/
  2. aiutils.c
  3. bcm_app_utils.c
  4. bcm_l2_filter.c
  5. bcmbloom.c
  6. bcmevent.c
  7. bcmsdh.c
  8. bcmsdh_linux.c
  9. bcmsdh_sdmmc.c
  10. bcmsdh_sdmmc_linux.c
  11. bcmsdspi.h
  12. bcmsdspi_linux.c
  13. bcmsdstd.c
  14. bcmsdstd.h
  15. bcmsdstd_linux.c
  16. bcmspibrcm.c
  17. bcmsrom.c
  18. bcmstdlib.c
  19. bcmstdlib_s.c
  20. bcmutils.c
  21. bcmwifi_channels.c
  22. bcmwifi_monitor.c
  23. bcmwifi_radiotap.c
  24. bcmwifi_rates.c
  25. bcmwifi_rspec.c
  26. bcmwpa.c
  27. bcmxtlv.c
  28. BUILD.bazel
  29. dhd.h
  30. dhd_bitpack.c
  31. dhd_bitpack.h
  32. dhd_bus.h
  33. dhd_buzzz.h
  34. dhd_cdc.c
  35. dhd_cfg80211.c
  36. dhd_cfg80211.h
  37. dhd_common.c
  38. dhd_config.c
  39. dhd_config.h
  40. dhd_custom_cis.c
  41. dhd_custom_exynos.c
  42. dhd_custom_google.c
  43. dhd_custom_gpio.c
  44. dhd_custom_hikey.c
  45. dhd_custom_memprealloc.c
  46. dhd_custom_msm.c
  47. dhd_custom_sec.c
  48. dhd_dbg.h
  49. dhd_dbg_ring.c
  50. dhd_dbg_ring.h
  51. dhd_debug.c
  52. dhd_debug.h
  53. dhd_debug_linux.c
  54. dhd_event_log_filter.c
  55. dhd_event_log_filter.h
  56. dhd_flowring.c
  57. dhd_flowring.h
  58. dhd_fwtrace.c
  59. dhd_fwtrace.h
  60. dhd_ip.c
  61. dhd_ip.h
  62. dhd_linux.c
  63. dhd_linux.h
  64. dhd_linux_exportfs.c
  65. dhd_linux_lb.c
  66. dhd_linux_pktdump.c
  67. dhd_linux_pktdump.h
  68. dhd_linux_platdev.c
  69. dhd_linux_priv.h
  70. dhd_linux_sched.c
  71. dhd_linux_sock_qos.c
  72. dhd_linux_sock_qos.h
  73. dhd_linux_wq.c
  74. dhd_linux_wq.h
  75. dhd_macdbg.c
  76. dhd_macdbg.h
  77. dhd_mschdbg.c
  78. dhd_mschdbg.h
  79. dhd_msgbuf.c
  80. dhd_pcie.c
  81. dhd_pcie.h
  82. dhd_pcie_linux.c
  83. dhd_pktlog.c
  84. dhd_pktlog.h
  85. dhd_plat.h
  86. dhd_pno.c
  87. dhd_pno.h
  88. dhd_proto.h
  89. dhd_qos_algo.h
  90. dhd_rtt.c
  91. dhd_rtt.h
  92. dhd_sdio.c
  93. dhd_sec_feature.h
  94. dhd_statlog.c
  95. dhd_statlog.h
  96. dhd_timesync.c
  97. dhd_timesync.h
  98. dhd_wet.c
  99. dhd_wet.h
  100. dhd_wlfc.c
  101. dhd_wlfc.h
  102. frag.c
  103. frag.h
  104. ftdi_sio_external.h
  105. hnd_pktpool.c
  106. hnd_pktq.c
  107. hndlhl.c
  108. hndmem.c
  109. hndpmu.c
  110. Kbuild
  111. Kconfig
  112. linux_osl.c
  113. linux_osl_priv.h
  114. linux_pkt.c
  115. Makefile
  116. nciutils.c
  117. pcie_core.c
  118. pom.h
  119. sbutils.c
  120. siutils.c
  121. siutils_priv.h
  122. wb_regon_coordinator.c
  123. wifi_stats.h
  124. wl_android.c
  125. wl_android.h
  126. wl_bam.c
  127. wl_bigdata.c
  128. wl_cfg80211.c
  129. wl_cfg80211.h
  130. wl_cfg_btcoex.c
  131. wl_cfgnan.c
  132. wl_cfgnan.h
  133. wl_cfgp2p.c
  134. wl_cfgp2p.h
  135. wl_cfgscan.c
  136. wl_cfgscan.h
  137. wl_cfgvendor.c
  138. wl_cfgvendor.h
  139. wl_cfgvif.c
  140. wl_cfgvif.h
  141. wl_dbg.h
  142. wl_export.h
  143. wl_linux_mon.c
  144. wl_roam.c
  145. wlan_config.ini
  146. wlc_types.h
  147. wldev_common.c