Commit graph

1775 commits

Author SHA1 Message Date
Steven Moreland
7a4f118c48 Stop all these merge conflicts.
Test: mma -j64
Change-Id: I319198af32adf1fef180c5c2c22ba4b360fa7609
2016-10-26 12:05:29 +02:00
Steven Moreland
ce9779412a Update headers (for export shared lib headers)
Test: mma -j64
Bug: 32337293
Change-Id: I93e7cab90efac407525a1a5f2ad30f816a530e17
2016-10-22 00:28:00 +00:00
Steven Moreland
fb8821066d wifi: Removing reference to IServiceManager.h.
Bug: 32313592
Test: make

Change-Id: If1b842c563b5934b58fb328c2f2315c42ae6fc06
2016-10-21 12:36:19 -07:00
Roshan Pius
f243631af8 wifi: Invoke failure callbacks
Invoke the failure callbacks for |requestChipDebugInfo|,
|requestDriverDebugDump| and |requestFirmwareDebugDump| methods.

Bug: 32014425
Test: Compiles
Change-Id: I49b8ae93fe846df6d9663b10d2a70eb89bd00931
2016-10-11 07:46:24 -07:00
Roshan Pius
5926828728 wifi: Add WifiRttController object
Create the WifiRttController object and add the createRttController
method in WifiChip.

Bug: 31991232
Test: Compiles
Change-Id: I34649097c96488c660bef5acceac1a6478f80dca
2016-10-11 07:46:24 -07:00
Roshan Pius
35d958c43f wifi: Add Iface related method implementations in WifiChip
Add the iface creation/retrieval/list method implementations in WifiChip.
WifiChip does not yet support the chip mode configuration. So, all
|createIface| method calls succeed today. Once the mode configuration
changes are in place, we will deny iface creation requests depending on
the iface combination supported in the current mode.

The iface objects are all invalidated and deleted on mode switches and
when HAL is stopped.

While there,
Change the |callbacks_| member to std::vector instead of std::set. We
don't really need a set to store the list of callbacks.

Bug: 31943042
Test: Compiles
Change-Id: Ic94864c8b11aabbe569b5157d68d6056364a3c4c
2016-10-11 07:46:24 -07:00
Roshan Pius
3e2d671a4c wifi: Add the various iface object implementation
This CL adds the implementation classes for the various iface HIDL
interfaces defined. These classes implement the
|getName| & |getType| methods in the Iface HIDL interface.

Integration of these objects with WifiChip class is implemented in the
next CL.

Bug: 31943042
Test: Compiles
Change-Id: I219afd6441e15c76cf7c61f7bcd2b3568dba2b98
2016-10-11 07:46:24 -07:00
Roshan Pius
ab5c471b0b wifi: Remove "Wlan" prefix from wifi_legacy_hal public methods
All the legacy HAL API's in the function table uses the "wlan0"
interface handle for the various operations. But, this is an internal
detail that should be abstracted inside WifiLegacyHal class. So, rename
the public methods to remove the "Wlan" prefix from them.

Also, add methods to fetch the iface names to use for the various types
of HAL.

Bug: 31943042
Test: Compiles
Change-Id: I35a6cdea0ad7cff295d33c0245953258129fba43
2016-10-11 07:46:24 -07:00
Roshan Pius
cd566bddd7 wifi: Add support for multiple chips in IWifi
The modified HIDL interface supports multiple chip instances on the
device. Modify the |IWifi| interface implementation to support the new
methods.

NOTE: The legacy HAL implementation will continue to only expose 1 chip.

While there,
Change the |callbacks_| member to std::vector instead of std::set. We
don't really need a set to store the list of callbacks.

Bug: 32003988
Test: Compiles
Change-Id: I31e704100f716e223095890279bdf93d2a04377e
2016-10-11 07:46:24 -07:00
Roshan Pius
fcbf923d3a wifi(interface): Add RTT Controller object
Create a RTT controller object to use for initiating all the RTT related
HAL opertations.
Since we don't want to fix the iface on which to initiate RTT operations,
these methods will be rooted in a new standalone object |RttController|.
Framework can decide to intiate an instance of |RttController| on a
specified iface or let the implementation pick one.

Bug: 31991232
Test: Interface compiles.
Change-Id: I65f7a7babd72db26ce6549f572abd9ef73700c82
2016-10-11 07:46:24 -07:00
Roshan Pius
adcfba4b09 wifi(interface): Add Iface objects
Create a child object under IWifiChip to represent each interface
within the chip. Each iface object has a |type| & |ifname| which should
help us uniquely identify them. This should help us expose methods that
are applicable only to a specific interface type.

While there,
Assign a unique id to every chip on the device.
Add IWifi.listChipIds() to retrieve the list of chip Id's avaiable on the
device. IWifi.getChip() will now use the provided Id to retrieve the
corresponding IWifiChip object(because HIDL language doesn't support
vec<HIDL objects>).

Bug: 31943042
Bug: 32003988
Test: Interface compiles (not implementation)
Change-Id: I723007566ca4220362c02d0f452753fee4e31fce
2016-10-11 07:46:24 -07:00
Roshan Pius
271f2c2d9c wifi(interface): Rename interface to iface
The HIDL objects are called "interface", so rename the wifi interface to
iface to distinguish between them better.

This is especially needed in the follow up CL.

Bug: 31943042
Test: mmm -j32 hardware/interfaces/wifi/1.0/
Change-Id: I3bc34930f75159d26321c0e071af9084d0585508
2016-10-05 10:30:24 -07:00
Roshan Pius
6f31d92e59 wifi(interface): Add/Correct docstring params
Changes in the CL:
1. Add missing docstring params in the HIDL interface.
2. Reword some method docs. Occurences of "will" is replaced
by "must" (based on comments received on supplicant HIDL interface:
go/aog/275115).
3. Add onFailure callbacks for all the methods and added docstrings for
them.

Bug: 31352200
Test: mmma -j32 hardware/interfaces/wifi/1.0
Change-Id: Ib7152625851023d6244f742bb77a8fdc0829e00d
2016-10-05 10:30:15 -07:00
Roshan Pius
cdb77f3cf2 wifi: Add implementation of driver/firmware memory dumps
Bug: 31352200
Test: mmma -j32 hardware/interfaces/wifi/1.0/default
Change-Id: I25d42cfd4c2b1ea7e63bdc036f37f81aed93c565
2016-10-05 09:22:06 -07:00
Roshan Pius
4b26c832ed wifi: Add Implementation of IWifiChip.requestChipDebugInfo
Bug: 31352200
Test: mmma -j32 hardware/interfaces/wifi/1.0/default
Change-Id: Id0c02e37dac66de6f830785881cb67f113c0fb19
2016-10-05 09:21:07 -07:00
Roshan Pius
908a69a53a wifi: Use hal_tool & if_tool
Changes in the CL:
1. Currently |WifiNative.cpp|, uses |hal_tool| to initialize the
function table and |if_tool| to set the interface up when |startHAL|
method is invoked. Use the same sequence in the HIDL'ized HAL.
2. Remove the assertion if the function table initialization fails. This
will result in a failure indication on starting the HAL now.

Bug: 31352200
Test: mmma -j32 hardware/interfaces/wifi/1.0/default
Change-Id: I268845ed62158b6a2ff36659f0bb15c4100a7222
2016-10-04 18:36:25 -07:00
Roshan Pius
aabe575536 wifi: Restructure wifi legacy HAL implementation
Restructured the existing code to create a new class called
|WifiLegacyHal|. This class will be used as a wrapper to invoke
all the legacy HAL functions and handle the "C" style callbacks.

Bug: 31936700
Test: mmma -j32 hardware/interfaces/wifi/1.0/default
Change-Id: I63e8543f49886f8446101320a97d1e96e30d1035
2016-10-04 18:36:22 -07:00
Roshan Pius
79a9975d07 wifi: Change namespace
Move the implementation to "android::hardware::wifi:V1_0::implementation"
namespace.
This is following the style guidelines in NFC HIDL
implementation(go/aog/279421).

While there,
Run checkstyle to correct formatting issues.

Bug:31936700
Test: mmma -j32 hardware/interfaces/wifi/1.0/default
Change-Id: I5600a60a0041b3318ed9289823ec335a8ed8a83d
2016-10-04 13:23:20 -07:00
Roshan Pius
3c4e8a358c wifi: Move legacy HAL implementation
Changes in the CL:
1. Move the legacy HAL implementation from
"frameworks/opt/net/wifi/wifi_hal_legacy" to
"hardware/interfaces/wifi/1.0/default".
2. Renamed the .rc file and the module name in makefile to
conform to the HIDL style guide.

Files renamed from:
wifi_hal_service.cpp/h -> wifi.cpp/h
wifi_chip_service.cpp/h -> wifi_chip.cpp/h
main.cpp -> service

Bug: 31821133
Test: mmma -j32 hardware/interfaces/wifi/1.0/default
Change-Id: I5e65e2fdb5596346bde6963588031dcea42d633a
2016-10-04 13:10:25 -07:00
Dan Willemsen
242b34edd5 Convert to Android.bp
See build/soong/README.md for more information.

Bug: 31742855
Test: mma -j
Change-Id: Icb93f3b1b2caeb5e9c00f88ca35841b927ad075d
2016-09-30 10:31:54 -07:00
Roshan Pius
22ab8b2451 wifi: Move supplicant HIDL interfaces to subfolder
Move all the supplicant HIDL interfaces to a separate subfolder.

Bug: 31800508
Test: Compiles
Change-Id: I09bfb17b626312e8be819238ab2edbb83ca04322
2016-09-28 13:37:45 -07:00
Roshan Pius
9a3a84f5a3 wifi(hidl): Add supplicant HIDL interface
Convert the existing AIDL binder interface of wpa_supplicant to HIDL.

Summary of changes:
1. Every HIDL method returns an instance of |SupplicantStatus|
along with any others params (for getters). This is needed to return the
equivalent of |Binder::Status| to indicate errors in the args passed,
stale proxy, etc.
2. All constants are changed to enums. There were some constants which
should have been enums in the first place, but wasn't because AIDL did
not support enums. But, there are others which should be standalone
constants, but are enums now because constants are not supported in HIDL.
3. Conform to HIDL style guide.

Bug: 31365276
Test: `mmm -j32 hardware/interfaces/wifi/1.0/`
Change-Id: Iba753e279fd260788d8628ea2f5c2281b5844095
2016-09-28 11:03:17 -07:00
Yifan Hong
b0b5322e7d Updated indentation to 4 spaces for Android.mk.
Test: `cd system/tools/hidl && mma`
Change-Id: I088893c3c8b080239f0f32e3434faf3da3fefc7a
2016-09-26 16:02:39 -07:00
Andreas Huber
495391aad8 Updated makefiles that also add static java library targets.
Bug: 31684178
Test: hidl_test and hidl_test_java
Change-Id: Ib53d1be2b1535837ca97cb61796e335141fc7611
2016-09-23 09:21:15 -07:00
Mitchell Wills
5443a9fc9b Initial pieces of WiFi HAL interface definition
Test: make -j48 android.hardware.wifi@1.0 android.hardware.wifi@1.0-java
Bug: 31350762
Change-Id: I1b598be397e08165fc9fd607888e064b139e8007
2016-09-22 10:50:27 -07:00