summaryrefslogtreecommitdiff
path: root/wifi/1.5/default/wifi_chip.cpp
AgeCommit message (Collapse)Author
2022-01-12Wifi: Uprev wifi HAL to 1.6Ahmed ElArabawy
This commit uprevs the Wifi vendor HAL to 1.6 Bug: 214108561 Test: atest VtsHalWifiV1_0TargetTest VtsHalWifiNanV1_0TargetTest VtsHalWifiApV1_0TargetTest \ VtsHalWifiV1_1TargetTest \ VtsHalWifiV1_2TargetTest VtsHalWifiNanV1_2TargetTest \ VtsHalWifiV1_3TargetTest \ VtsHalWifiApV1_4TargetTest VtsHalWifiNanV1_4TargetTest VtsHalWifiRttV1_4TargetTest \ VtsHalWifiV1_5TargetTest VtsHalWifiNanV1_5TargetTest VtsHalWifiApV1_5TargetTest Change-Id: I059a5de346e353f7fba1e008ecd9fb4611e66880
2021-10-19Update the p2p device interface nameSunil Ravi
In some implementations P2P device interface is created under primary interface(wlan0 by default). In those implementations p2p device name is predefined in system property wifi.direct.interface. And the interface is created by supplicant with primary interface as the parent interface. The naming of p2p device interface is p2p-dev-<parent interface> ("p2p-dev-wlan0"). With STA+STA feature, wlan0 interface gets deleted in certain scenarios and wlan1 becomes the active interface. In such scenarios P2P fails to create the interface as parent interface wlan0 is deleted. To fix the issue update the p2p device interface from system property based on the current active wlan interface. ie First get the p2p parent interface name from p2p device interface name set in property. Check if the parent interface derived from p2p device interface name is the current active interface. If not, get the current active interface and update the name as p2p-dev-<ifname> ("p2p-dev-wlan1"). This helps HIDL/supplicant to get an active wlan interface from p2p device interface name and succeed in creating the p2p interface under the active interface. Bug: 203434193 Bug: 200810773 Test: Manual - Tested STA+STA which ended up deleting wlan0 interface. Then ran p2p tests and confirmed that p2p scan and connection works. Change-Id: I522cec02a662c057e21d434f3ed98c7e7a4ca8f0
2021-07-12Merge "Clear ringbuffer after dumping to file" into sc-devOscar Shu
2021-07-11Clear ringbuffer after dumping to filexshu
Clear the in-memory ringbuffer after writing to file. Bug: 193007899 Test: Manually verified ringbuffers are cleared with command "adb shell lshal debug android.hardware.wifi@1.5::IWifi" Change-Id: Icfa08634e948d7155e231458edd394a4d699fbaa
2021-06-21wifi: Update active iface when bridged AP instance downLes Lee
The active interface need to be updated when any of interface changecd. Also fix the local cache bridged_ap_instances value incorrect when erasing. Bug: 191625124 Test: Manual check property "wifi.active.interface" after wlan2 down Test: Manual test with command "halutil -sar enable 0" after wlan2 down Change-Id: I40150c231313505ca355228e711c2448088f41ad
2021-03-20Add API "startSubsystemRestart" and callback functionchenpaul
In order to trigger subsystem restart to reload wlan firmware, this change adds an API for framework and vendor HAL. Meanwhile, create new callback function for subsystem restart instead of general callback "onFailure()". Bug: 178126071 Test: vendor HAL can received API call subsystem restart will callback "onSubsystemRestart()" Change-Id: If3dc84049a9171677ad281c9bcc67a44dc722bdb
2021-03-03wifi: Wait for driver ready and bring up the interface when setMacAddress failsRoshan Pius
setMacAddress may fail in some scenarios like SSR inprogress. In such case framework is not bringing up the iface again if it was brought down to set random MAC address. Due to this subsequent operations like scans are failing with "Network Down" error and Wi-Fi can't recover until Wi-Fi restarts. To avoid this bring up the iface irrespective of setMacAddress status. Modified the original CL to move the WifiIfaceUtil creation to inside Wifi object since that is where the legacy HAL instance is created for the corresponding chip. This helps keeping the setMacAddress logic still inside WifiIfaceUtil. Modified the iface_util lifetime - no longer a singleton, one instance created per wifi chip instance. Bug: 174183763 Test: Wifi can be enabled when back-to-back SSR and wifi on Change-Id: I926b59f5da126aba222e05d1e570c0c19de739ed
2021-02-16Wifi: Filter usable channels by Coex, ConcurrencyKumar Anand
Add ability to filter usable channel due to coex & concurrency limitations. List of usable channels could be limited due to coex restrictions and also due to concurrency limitations & connection state. Bug: 160212907 Test: VTS - VtsHalWifiV1_5TargetTest Change-Id: Ic36b792b93fc4a6e328b9bc606a5286b8c1fd690
2021-02-02Merge "wifi: Add new HAL API: getBridgedInstances" into sc-devLes Lee
2021-02-01Wifi: HAL API to query the list of usable channelsKumar Anand
API can be used to query what modes (SAP, STA, WFD Client, WFD Group Owner, TDLS, NAN) can be supported on each channel for specified band. Needs support from Wifi chip vendors. Bug: 160212907 Test: VTS - VtsHalWifiV1_5TargetTest Change-Id: Icf270b8c2ee14c794778421c9d988712c5c38380
2021-01-27wifi: Add new HAL API: getBridgedInstanceslesl
Also fix the instances doesn't update after removing the instance Cherry-pick from ag/13382534 which finished the review in master branch Bug: 173999527 Test: atest -c VtsHalWifiApV1_5TargetTest Change-Id: I439922d38c35b5367823f95f5f7d0e4c6ed05f57
2021-01-27wifi: fix a use of an uninitialized valueGeorge Burgess IV
This `if` is executed once, so using `legacy_status` from a prior execution is nonsensical. Caught by the static analyzer: > hardware/interfaces/wifi/1.5/default/wifi_chip.cpp:1053:39: warning: 1st function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage] Bug: 173999527 Test: atest -c VtsHalWifiApV1_5TargetTest Merged-In: Ib81f1496be53e453d9c99ede129a77bdaf860de7 Change-Id: Ib81f1496be53e453d9c99ede129a77bdaf860de7
2021-01-13Merge "Wifi: Chip level API to set the country code"Kumar Anand
2021-01-12Wifi: Chip level API to set the country codeKumar Anand
Country code is global setting across the Wifi chip and not really Wifi interface (STA or AP) specific. Framework should have the ability to set the country code on a chip level without requiring supplicant instance to be running. As long as there is at least one active interface to communicate to kernel driver, country code can be set and driver should apply the setting globally. Bug: 149936939 Test: VTS - VtsHalWifiV1_5TargetTest Change-Id: I1be5dae34b216a6152d09605d055872d5345507c
2021-01-08wifi: fix incorrect active wlan iface in bridged modelesl
The hal use first active wlan iface to get chip info. It should should return active wlan instance in bridged mode. Bug: 162686273 Test: Manual test. 1. Wifi Off (SAA off), make sure bridged AP is first wlan iface 2. Enable bridged mode Change-Id: Id5a3d5ab53c6ed34d5633be22ad56070f5f0d0e2
2021-01-07wifi: Fix removeIfaceInstanceFromBridgedApIfaceInternallesl
Fix the incorrect empty check. Bug: 162686273 Test: Manual Test, shutdown instance works normally Change-Id: I44c5c4adcc7a964e25b5fa5e291bb9b9f4932655
2020-12-17Merge changes from topic "fixCoexRestrictions"TreeHugger Robot
* changes: Add VTS test for IWifiChip::setCoexUnsafeChannels [WifiCoex] Add enum for wifi coex restrictions
2020-12-15[WifiCoex] Add enum for wifi coex restrictionsQuang Luong
Add custom enum for wifi coex restrictions since IfaceType is not suitable for use as a bitmask flag since it does not represent bit positions. Bug: 153651001 Test: build Change-Id: I15575ea12784a778a3b358eea1b05b75319aa95b
2020-12-14wifi: Fix bridged interface property and allociationlesl
1. The concurrent property name over the limitation. Rename the property name. 2. When allocate bridged iface name, it needs to increase the idx to avoid two ifaces use the same name. Bug: 162686273 Test: atest -c VtsHalWifiApV1_0TargetTest Test: atest -c VtsHalWifiApV1_4TargetTest Test: atest -c VtsHalWifiApV1_5TargetTest Change-Id: I388cdd812bd0448c03ad5ae982547629c1e5eff9
2020-12-08[WifiCoex] Add WifiChip HIDL APIs for coexQuang Luong
Add HIDL APIs to convey a list of unsafe Wifi channels to the driver for coex channel avoidance. Bug: 153651001 Test: build Change-Id: I8b14f0e2d8855c1f1e363d612617256d8e928f30
2020-12-03wifi: Add AP interface idx mechanism & predefine interface support.lesl
SAP Interface idx mechanism. STA+STA support, AP+AP will use wlan2 & wlan3, single AP use wlan2 STA+STA doesn't support, AP+AP use wlan1 & wlan 2, single AP use wlan 1 STA+AP doesn't support, AP + AP will take wlan0 & wlan 1 but single AP use wlan0 (Ideally it should not happen) Add predefine interface support for bridged AP interface. (property: ro.vendor.sap.concurrent.interface) PS: Rename: getApIfaceName to getPredefinedApIfaceName since it duplicates public HAL API: getApIfaceName AP+AP Part 4 includes: 1. Support API to indicate Bridged AP supported or not 2. SAP Interface idx mechanism. Bug: 162686273 Bug: 173999527 Test: atest -c VtsHalWifiApV1_0TargetTest Test: atest -c VtsHalWifiApV1_4TargetTest Test: atest -c VtsHalWifiApV1_5TargetTest Change-Id: I115e294ac2be201cfa3a58cfa0a8a98b481b29de
2020-12-02wifi: Add resetFactoryMac support (AP+AP Part 3)lesl
Support HAL API:resetToFactoryMacAddress to reset the MAC to factory MAC on each instances in IWifiApIface. AP+AP Part 3 includes: 1. Support resetToFactoryMac in IWifiApIface.Hal. 2. Vts support for non bridged API. 3. Framework support resetToFactoryMac in bridged Ap. Test: atest -c VtsHalWifiApV1_5TargetTest Test: atest -c VtsHalWifiApV1_4TargetTest Test: atest -c VtsHalWifiApV1_0TargetTest Bug: 162686273 Change-Id: Ic7f2c0d6f1d8bf46fabfbc874d5f2b74068e43cc
2020-11-23wifi: Add AP bridge operations support (AP+AP Part 2)lesl
The bridge interface name will take "ap_br_" + ap interface name. ex: The ap interface name is "wlan1". The bridge interface name will be "ap_br_wlan1" When OEM customize the ap interface name via property "ro.vendor.wifi.sap.interface". It will only apply on single AP mode. i.e. "ro.vendor.wifi.sap.interface" = "sap0" Single AP mode: ap interface name = "sap0" Dual AP mode: bridge interface name = "ap_br_sap0" first ap instance name: get from "getSupportedIfaceName" + idx ex: sap0 second ap instance name: get from "getSupportedIfaceName" + idx + 1 ex: sap1 PS: The VtsHalWifiApV1_5TargetTest will be added in another CL which will update another SAP related HAL:IWifiApIface.hal. AP+AP Part 2 includes: 1. Support bridge in libwifi_system_iface 2. WifiHal API a. createBridgedApIface (Support create bridge mode AP) b. removeIfaceInstanceFromBridgedApIface (Support remove one of the instance in bridge) 3. Framework: Create bridge AP when multi-bands configured. Bug: 162686273 Test: Manual Test (SAP enable normally) Test: atest -c VtsHalWifiApV1_0TargetTest Test: atest -c VtsHalWifiApV1_4TargetTest Change-Id: I8be510778e9772bcf1539e4915384949cbe13127
2020-11-06wifi: Add STA + STA HIDL API'sRoshan Pius
Add the HIDL API's + shim + VTS tests. Bug: 170305665 Test: atest VtsHalWifiV1_3TargetTest VtsHalWifiV1_5TargetTest Change-Id: I26ada11aebfe8082bfda251cf7e6990e0aa08a06
2020-09-02Wifi: add new chip capability WIGIGJimmy Chen
Add a new chip capability WIGIG, for chips that can operate on the 60GHz band. This capability is mapped to the vendor HAL feature WIFI_FEATURE_INFRA_60G. Bug: 147522435 Test: atest VtsHalWifiV1_0TargetTest VtsHalWifiNanV1_0TargetTest VtsHalWifiApV1_0TargetTest \ VtsHalWifiV1_1TargetTest \ VtsHalWifiV1_2TargetTest VtsHalWifiNanV1_2TargetTest \ VtsHalWifiV1_3TargetTest \ VtsHalWifiApV1_4TargetTest VtsHalWifiNanV1_4TargetTest VtsHalWifiRttV1_4TargetTest Change-Id: I37b1121c62acadb621dca5e38671c78817f592e1
2020-08-18Merge "Attach timestamp to ringbuffer generated files"Oscar Shu
2020-08-13Attach timestamp to ringbuffer generated filesxshu
The file last modified time expressed in seconds from epoch is attached to only the archived version of the file that is passed to dumpstate. Files stored on the device will still have no timestamp in their name. Bug: 159808285 Test: manual verification adb root adb shell lshal debug android.hardware.wifi@1.5::IWifi >> archive.cpio cpio -iv < archive.cpio Verify that a timestamp is attached to the filename at the end: connectivity_events_rbhOVjYpDdNY-1597364258 Change-Id: Iee0c2b37fc1d27cb979ec9125461416cd2d02549
2020-08-11Wifi: support multiple WIFI chipsJimmy Chen
The WIFI HAL API has support for multiple WIFI chips (IWifiChip instances) however the implementation is hard-coded to support only a single WIFI chip. This change reworks the implementation so multiple WIFI chips will be supported. Support for multiple chips is based on the concept that each chip is represented by its own vendor HAL library. The implementation will look for descriptor files for vendor HAL libraries under /vendor/etc/wifi/vendor_hals. It will parse descriptors, dynamically load vendor HAL libraries and create WifiLegacyHal and WifiChip objects for each loaded vendor HAL library. One of the descriptors should be marked with "primary" flag. The implementation will create the first WifiChip object for this library. Typically it is the one providing the best WIFI functionality, which was previously used as the only WIFI chip. Additional support is added inside WifiChip and WifiLegacyHal for getting available chip modes and concurrency combinations from the vendor HAL if available, and allowing the chip to override network interface name when creating interfaces. The mechanism for getting chip capabilities is improved to allow getting chip-global capabilities, which are independent of any created interfaces. For example, if the framework needs to start a SoftAP on the 60GHz band, it needs to find a chip which supports this band, but before creating any interface on the chip. The new mechanism allows this. Bug: 146922967 Test: atest VtsHalWifiV1_0TargetTest VtsHalWifiNanV1_0TargetTest VtsHalWifiApV1_0TargetTest \ VtsHalWifiV1_1TargetTest \ VtsHalWifiV1_2TargetTest VtsHalWifiNanV1_2TargetTest \ VtsHalWifiV1_3TargetTest \ VtsHalWifiApV1_4TargetTest VtsHalWifiNanV1_4TargetTest VtsHalWifiRttV1_4TargetTest Change-Id: Ibdff93ea56aff186d4b5361ac77f6f448a0dfd45
2020-08-11Wifi: fix bug during WIFI HAL stopJimmy Chen
In WifiChip::invalidateAndRemoveDependencies, the iterator was not implemented correctly as it was deleting objects while iterating. This could cause the entire WIFI HAL to be restarted when disabling WIFI. Bug: 146922967 Test: atest VtsHalWifiV1_0TargetTest VtsHalWifiNanV1_0TargetTest VtsHalWifiApV1_0TargetTest \ VtsHalWifiV1_1TargetTest \ VtsHalWifiV1_2TargetTest VtsHalWifiNanV1_2TargetTest \ VtsHalWifiV1_3TargetTest \ VtsHalWifiApV1_4TargetTest VtsHalWifiNanV1_4TargetTest VtsHalWifiRttV1_4TargetTest Change-Id: Id86f1a662684467d3b86a79b271144ac3055d0a0
2020-07-23Ringbuffer stops logging after wifi togglexshu
Forces ringbuffer updates before writing zipped files to bugreport. Also properly resets the ringbuffer callback when it's deregistered. Bug: 161307741 Test: make vts -j64 && vts-tradefed run commandAndExit vts --module VtsHalWifiV1_0Target Test: manual verification with triggering a bugreport Test: manual verification with wifi toggles Change-Id: I74deffda917054e20cfcf4f0dd90d778626c89d3
2020-07-22wifi: upgrade wifi interface to 1.5Jimmy Chen
Only a root interface is added and update relevant code. Bug: 160834354 Test: atest VtsHalWifiV1_0TargetTest VtsHalWifiNanV1_0TargetTest VtsHalWifiApV1_0TargetTest \ VtsHalWifiV1_1TargetTest \ VtsHalWifiV1_2TargetTest VtsHalWifiNanV1_2TargetTest \ VtsHalWifiV1_3TargetTest \ VtsHalWifiApV1_4TargetTest VtsHalWifiNanV1_4TargetTest VtsHalWifiRttV1_4TargetTest Change-Id: Ifdffa3a6996eca1d3c4b499258896cdfe5eb9c87