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