Commit Graph

135 Commits

Author SHA1 Message Date
Amar Singhal
7f1f3ecd53 qcacld-3.0 : Remove the local regdomain mapping
Remove the local country to regdomain mapping in the driver.
Return a fixed regdomain index 0 to the caller. Also update
copyright for cds_regdomain.h for 2015.

Change-Id: I33e0a861b0a3bd95b20becb2d765b8300688ec4c
CRs-Fixed: 856727
2016-02-08 15:50:42 -08:00
Srinivas Girigowda
fb796d1985 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirSmeAssocCnf
Replace tSirMacAddr with cdf_mac_addr in tSirSmeAssocCnf.

Change-Id: I0b267ad09aac1f44079477cfde8d13265c1f2264
CRs-Fixed: 898864
2016-02-08 15:50:42 -08:00
Srinivas Girigowda
1a245364d6 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirSmeDisassocReq
Replace tSirMacAddr with cdf_mac_addr in tSirSmeDisassocReq.

Change-Id: I9d0b77e0ce624c48ca0fea2774c0f63285793cee
CRs-Fixed: 898864
2016-02-08 15:50:42 -08:00
Srinivas Girigowda
dd3c513e76 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirSmeDisassocRsp
Replace tSirMacAddr with cdf_mac_addr in tSirSmeDisassocRsp.

Change-Id: Ia196615e99506b4fa80a7d611cdefd2e7d2150fa
CRs-Fixed: 898864
2016-02-08 15:50:42 -08:00
Srinivas Girigowda
e13cc34fa3 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirSmeDisassocInd
Replace tSirMacAddr with cdf_mac_addr in tSirSmeDisassocInd.

Change-Id: Icdf3420c24762f919df73d57dffdf1b51151a0e8
CRs-Fixed: 898864
2016-02-08 15:50:42 -08:00
Srinivas Girigowda
5f3c81a672 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirSmeDeauthCnf
Replace tSirMacAddr with cdf_mac_addr in tSirSmeDeauthCnf.

Change-Id: I16b399bcb76a6dd3fcc35c52e5822e988d4e5001
CRs-Fixed: 898864
2016-02-08 15:50:42 -08:00
Srinivas Girigowda
9efa10edc0 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirSmeDeauthRsp
Replace tSirMacAddr with cdf_mac_addr in tSirSmeDeauthRsp.

Change-Id: I7036160f39ff69be5f937a71769e057d8906f2d3
CRs-Fixed: 898864
2016-02-08 15:50:42 -08:00
Srinivas Girigowda
9cf95c5d6f qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirSmeDeauthRsp
Replace tSirMacAddr with cdf_mac_addr in tSirSmeDeauthRsp.

Change-Id: I383f867f8847f66bc6f6e99ee2a56b4bc89ebe5b
CRs-Fixed: 898864
2016-02-08 15:50:42 -08:00
Srinivas Girigowda
9ee9a5c4cc qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirSmeDeauthInd
Replace tSirMacAddr with cdf_mac_addr in tSirSmeDeauthInd.

Change-Id: Ic8203cb89b970d5efb4c99e5e570af95ac9f802e
CRs-Fixed: 898864
2016-02-08 15:50:42 -08:00
Srinivas Girigowda
a230265a23 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirSmeStopBssReq
Replace tSirMacAddr with cdf_mac_addr in tSirSmeStopBssReq.

Change-Id: Ie758460224c632a8192f8dfbe14cbb508636ff25
CRs-Fixed: 898864
2016-02-08 15:50:42 -08:00
Srinivas Girigowda
591c56501c qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirSmeSwitchChannelInd
Replace tSirMacAddr with cdf_mac_addr in tSirSmeSwitchChannelInd.

Change-Id: Ide9e600c1c4b105740bd16a13366e1e2f5f9fda6
CRs-Fixed: 898864
2016-02-08 15:50:42 -08:00
Houston Hoffman
7260ecbc64 qcacld-3.0: Send one suspend indication message to wma
Send one suspend indication message to wma after configuring
all the offloads. Reduce context switches and complexity.

Change-Id: I020fc8864dbf7378805361d54dc6cff60b2652e5
CRs-Fixed: 935297
2016-02-08 15:50:41 -08:00
Krunal Soni
1878d3a2cc qcacld-3.0: Merge two sme & csr config structure in to one
SME holds config item in tCsrConfigParams structure as well as some of
the same items in tSmeConfigParams which makes tCsrConfigParams super
set of tSmeConfigParams. There are high chances if somebody misses
copying item from tSmeConfigParams to tCsrConfigParams and that will
result in config item not being set correctly.

In order to make it clean and easy, merge both config structure in one.

Change-Id: I8c93d9fae0986cb90b4ed4c4712b1e2b023b4be3
CRs-Fixed: 963752
2016-02-08 15:50:41 -08:00
Ryan Hsu
4252a2fc6f qcacld-3.0: clean up the WLAN_FEATURE_MBSSID flag (phase 1)
WLAN_FEATURE_MBSSID flag is originally added to support MBSSID,
specifically for the MOBILE ROUTER build, and is now enabled for all
builds, there is no longer needed to have a separate feature flag,
so that removing it.

This commit cleans up the following modules - cds/mac/sap/sme.

Change-Id: I79ad9767b7945af0c567b6294ac07e7697898e9e
CRs-fixed: 958154
2016-02-08 15:50:40 -08:00
Kiran Kumar Lokere
999e58c920 qcacld-3.0: Remove the cb_mode usage in channel bonding
Remove the CB mode usage in channel bonding since the center
center frequency is calculated using channel width and channel
number.

Change-Id: Ie9685a833750bf3b69cce40c5d9587fb9b232047
CRs-Fixed: 962174
2016-02-08 15:50:40 -08:00
Varun Reddy Yeturu
d5939f8b45 qcacld-3.0: Optimize LFR3 roam synch propagation
The current roam sync propagation for LFR3.0 in the host driver is
based on queuing and message processing mechanism. This can lead
to many unknown sequence of operations as there might be other
messages sitting in the queue which may interrupt with this
operation. Hence, it would be good to introduce a callback mechanism
which take care of running the code to execution completely in case
of roam synch propagation.
It also improves to reduce the roam delay by 50 percent as compared
to the existing mechanism.

CRs-Fixed: 962290
Change-Id: I4af569b1e3020a64beb606e8bbffd7613775138f
2016-02-08 15:50:40 -08:00
Srinivas Girigowda
a9d12f1907 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirTdlsSendMgmtReq
Replace tSirMacAddr with struct cdf_mac_addr in tSirTdlsSendMgmtReq.

Change-Id: I0f545721d184c17b2d150df5435d51cd6ca7bf9e
CRs-Fixed: 898864
2016-02-08 15:50:39 -08:00
Abhishek Singh
acfdc92a12 qcacld-3.0: Remove roam cmd from sme active list in case of failure
qcacld-2.0 to qcacld-3.0 propagation

-In case CSR is already connected and it receives connect with the
 same profile, csr will silently return and try to send the connect
 success to HDD. But if roamInfo staId is 0 this roam command is not
 removed from sme active list and leads to active list timeout.
 This back to back connect to CSR can happen if HDD and CSR go out
 of sync and is taken care already.

-Also if disconnect is received in case scan for ssid is in progress
 it will be dropped and roam session state is set to disconnecting.
 But this roam session state is not reset for the fresh connection
 and thus if next connect also issue scan for ssid the connect
 command will be dropped assuming disconnect is in progress.

This change removes roam cmd from sme active list in case of
above failure and resets roam session state for fresh connections.
Also does some cleanup in HDD disconnect command.

Change-Id: I222626f1da6bdad83a5264668dde9aafd3dda149
CRs-Fixed: 953196
2016-02-08 15:50:39 -08:00
Abhishek Singh
7996eb7a8e qcacld-3.0: Send management frame indication directly to HDD from PE
qcacld-2.0 to qcacld-3.0 propagation.

If MC thread stall while waiting on any event, In case of WPS,
probe requests may get accumulated in PE message queue.

Now every time MC thread process a probe request,
eWNI_SME_MGMT_FRM_IND msg is posted in SME message queue. But
unless PE queue is fully processed SME queue won't be processed.
This will gradually use all vos message wrapper.

To avoid this register a callback to send management frame
indication directly to HDD from PE which avoids posting message to
SME queue.

Change-Id: Ib83700825112cc52dade594909bfa8993909ac29
CRs-Fixed: 944961
2016-02-08 15:50:39 -08:00
kaliu
154d789744 qcacld-3.0: eSmeCommandDelStaSession stuck in smeCmdActiveList
qcacld-2.0 to qcacld-3.0 propagation.

1.Use iw tool to let dut connect to remote ap, dut is working
on wlan0.
2.At same time, use hostapd to start sap also on interface
wlan0.

In item1, before connect to ap, dut will do an internal scan
to search ap, if scan result matched configured ap profile,
dut trys to connect to ap.

In item2, when starting sap, found it's sta mode it will try
to disconnect dut with remote ap and close sta session.

  #1 If ap start action happened in item1's scan period, trying
  disconnecting won't take effect as currently sta has not yet
  connected with remote ap.
  So after item1's scan finished, dut continues to do connection.

  #2 During closing sta session, sme issued eSmeCommandDelStaSession,
  as currently sta is doing connection, so session is in started
  status, this cause closure failed, so there is no chance to remove
  cmd in smeCmdActiveList.
  While cmd pending in smeCmdActiveList for 120s, driver issued crash.

The solution is in item1 after scan complete to check whether it's
needed to start following connection. If stop action has been issued
during scan period, then don't do the connection.

Change-Id: If632e21cb13277fba371ff1bf8df97febf856d09
CRs-Fixed: 923375
2016-02-08 15:50:38 -08:00
Krishna Kumaar Natarajan
9ac8efd704 qcacld-3.0: Add data length in oem data request msg
Add data length information in oem data request
messages.

Change-Id: Ibc132d31dd4345c4168dad23b4acf699f2a8c8e6
CRs-Fixed: 942260
2016-02-08 15:50:38 -08:00
Krishna Kumaar Natarajan
4e9cf39d1d qcacld-3.0: Add event handler for oem data response
Add event handler for oem data response event from FW.
Add new boolean member to differentiate the response
generated internally and one coming from the FW.

Change-Id: Ia906c5dcbb7e560fd78ccd96fc47c7801b33aa6a
CRs-Fixed: 942261
2016-02-08 15:50:38 -08:00
Deepak Dhamdhere
652d7e834e qcacld-3.0: Fix issue about signal jump
rssi_raw should not be updated when the channel
in probe response does not match the channel in BD.

Added rx_channel field to beacon descriptor passed from LIM to
CSR. Channel check is performed in csr_remove_dup_bss_description()
before computing new averaged rssi.

CRs-Fixed: 873549
Change-Id: Iefacbf73f880e9d0c957ad83839dd2203fdf862d
2016-02-08 15:50:38 -08:00
Deepak Dhamdhere
68929ec509 qcacld-3.0: Optionally report raw rssi value to supplicant
qcacld-2.0 to qcacld-3.0 propagation

Add raw rssi in the beacon header from WMI to beacon descriptor.
Pass it up to SME and report it to supplicant through a call to
wlan_hdd_cfg80211_inform_bss_frame().
It can be enabled as a .ini configuration parameter "gInformBssRssiRaw".
Default is 1, it will report raw rssi by default.
Roaming decisions are based on rssi field of beacon descriptor,
its interpretation and usage are unchanged.

CRs-Fixed: 815344
Change-Id: I6dacdc0b333c093d16a74f8cf36471dfc183ce56
2016-02-08 15:50:37 -08:00
Tushnim Bhattacharyya
ca50b3204f qcacld-3.0: cleanup cds_concurrency files
Remove hdd context from argument list of all the cds concurrency
APIs.

Change-Id: Ic9f94ab2e0f975a745776675c254ecbd5ba6b203
CRs-fixed: 956394
2016-02-08 15:50:37 -08:00
Peng Xu
f5d60c8524 qcacld-3.0: Clean up usage of con_mode
Separate con_mode from adapter mode definition and clean up usage of
con_mode.

CRs-fixed: 917959
Change-Id: Ia058826cdb873558ab8703fcd4f80d37d3f782df
2016-02-08 15:50:37 -08:00
Abhishek Singh
10112381b7 qcacld-3.0: Add extended rates in Assoc req if AP has it
qcacld-2.0 to qcacld-3.0 propagation

Extended Supported Rates are filled in Assoc req based on the
dot11mode and in Case dot11mode is 11A it's not filled.
Some AP have Basic rate in Extended Rate set in 11A mode.
Thus AP reject the association as Driver does not sent the extended
rate set in 11A mode.

Removed the dot11mode dependency for Extended Supported Rates.
With this change if AP have Extended Supported Rates driver will
add the Extended Supported Rates IE in Assoc req.

Change-Id: Ibd1c98a7cfae46988ff4434579edde7d4222841d
CRs-Fixed: 903270
2016-02-08 15:50:37 -08:00
Abhishek Singh
b1d73ab4b5 qcacld-3.0: Abort preauth if disconnect is received for the current AP
qcacld-2.0 to qcacld-3.0 propagation

If preauth is in progress with too many APs in the roamable AP
list and at the same time disconnect is received from supplicant as
part of unload, the deauth req will be queued in sme pending list
till csr completes the preauth process.

Now as part of unload, driver may purge the sme pending command list
and with it the disconnect command may also get removed if preauth
takes too much time.

This will lead to DEL BSS missing before HAL STOP and thus crash.

To avoid this abort the preauth process once disconnect is received.

Change-Id: I1c35f0c7e38295cfadafdad69f0b9a99ba61404c
CRs-Fixed: 942579
2016-02-08 15:50:37 -08:00
Srinivas Girigowda
f9d9dd47ab qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirFTUpdateKeyInfo
Replace tSirMacAddr with cdf_mac_addr in struct sSirFTUpdateKeyInfo.

Change-Id: I427217dfb4f08dde6bef874de6d68ca5281502e0
CRs-Fixed: 898864
2016-02-08 15:50:36 -08:00
Srinivas Girigowda
d5965c4b92 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirSmeSetContext Req/Rsp
Replace tSirMacAddr with cdf_mac_addr in struct sSirSmeSetContext Req/Rsp.

Change-Id: If4f75c162dbb4156d462a927033f94b9170a518f
CRs-Fixed: 898864
2016-02-08 15:50:36 -08:00
Srinivas Girigowda
aeb3332ba9 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirAddtsReq
Replace tSirMacAddr with cdf_mac_addr in struct sSirAddtsReq.

Change-Id: I9a9f4cfc2185859c30d56ec4bc98891c9895531d
CRs-Fixed: 898864
2016-02-08 15:50:36 -08:00
Srinivas Girigowda
bab88935f0 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirDelts Req/Rsp
Replace tSirMacAddr with cdf_mac_addr in struct sSirDelts Req/Rsp.

Change-Id: I66f2b191b1eb823d395f70fc2c66697b377c7482
CRs-Fixed: 898864
2016-02-08 15:50:36 -08:00
Srinivas Girigowda
99faf48d43 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSirAggrQosReq
Replace tSirMacAddr with cdf_mac_addr in struct sSirAggrQosReq.

Change-Id: I1f58cf95eb3028ef763cd624fa05dcdc288d820e
CRs-Fixed: 898864
2016-02-08 15:50:36 -08:00
Srinivas Girigowda
01d1c3c1b5 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSmeIbssPeerInd
Replace tSirMacAddr with cdf_mac_addr in tSmeIbssPeerInd and
tSirIbssPeerInactivityInd.

Change-Id: Ie83aa414e312431aeb7f730a3f8027ea960acc36
CRs-Fixed: 898864
2016-02-08 15:50:36 -08:00
Srinivas Girigowda
61de4bbbfe qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in sSmeMaxAssocInd
Replace tSirMacAddr with cdf_mac_addr in sSmeMaxAssocInd and
tSirSmeGetAssocSTAsReq.

Change-Id: Ie36a22b5ee5c823833981b51ef91525f6c6af692
CRs-Fixed: 898864
2016-02-08 15:50:36 -08:00
Srinivas Girigowda
c9148f798b qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSmeCsaOffloadInd
Replace tSirMacAddr with cdf_mac_addr in tSmeCsaOffloadInd.

Change-Id: Iaf4357b2da216d9f11ca35331d45bff5193a2ee9
CRs-Fixed: 898864
2016-02-08 15:50:36 -08:00
Srinivas Girigowda
ca40f98808 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in WowlEnterParams
Replace tSirMacAddr with cdf_mac_addr in WowlEnterParams.

Change-Id: Ifc2edce83693fb01ef4ea642727902d493347225
CRs-Fixed: 898864
2016-02-08 15:50:36 -08:00
Srinivas Girigowda
5d4860029f qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirUpdateAPWPSIEsReq
Replace tSirMacAddr with cdf_mac_addr in tSirUpdateAPWPSIEsReq.

Change-Id: Ia6d8ea2523257caac541c84d10b7e6a81afc606b
CRs-Fixed: 898864
2016-02-08 15:50:36 -08:00
Srinivas Girigowda
8e717d30cf qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirChangeBIParams
Replace tSirMacAddr with cdf_mac_addr in tSirChangeBIParams.

Change-Id: I21823288cb43379625ec892967eab432c89510cc
CRs-Fixed: 898864
2016-02-08 15:50:36 -08:00
Srinivas Girigowda
c52474ded0 qcacld-3.0: Replace tSirMacAddr with cdf_mac_addr in tSirSetHT2040Mode
Replace tSirMacAddr with cdf_mac_addr in tSirSetHT2040Mode.

Change-Id: I802cd0353e6a6408f911ccf26a80b938be8a6e48
CRs-Fixed: 898864
2016-02-08 15:50:36 -08:00
Naveen Rawat
d1cee1208c qcacld-3.0: Fix rrm capability update from config ini file
Get rrm capab from mac_ctx in function sme_get_config_param().

This ensures that subsequent calls to this function will correctly
update rrm config.

Change-Id: Iddaae66b94ccaa127f08fd0a897bc986a959a0eb
CRs-Fixed: 955114
2016-02-08 15:50:36 -08:00
Naveen Rawat
16b8287816 qcacld-3.0: Move 5GHz channels ahead of 2 GHz for Early Stop
In case prefer 5 GHz preference is set, move the 5GHz channels ahead
of 2GHz channels in channel list as used in Early Stop Roaming Scan
feature. This ensures that while roaming, when these features are
enabled DUT will scan 5 GHz channels first and roam if a candidate
AP is found.

Change-Id: I96d997560a3eca5fd378aa3ed78c5766d097cafd
CRs-Fixed: 951959
2016-02-08 15:50:36 -08:00
Ryan Hsu
3c8f79f22c qcacld-3.0: Add Enhanced Green AP interfaces and event handler
qcacld-2.0 to qcacld-3.0 propagation

The firmware reports the Enhanced Green AP (EGAP) service
(EGAP_SERVICE) feature flag to indicate the support of EGAP
feature.

The EGAP is to offload the legacy Green AP feature to firmware
in order to aggressively enable the Green AP other than wait
for host control latency.

Add the knob to hold the EGAP infomation when firmware support
it, also populate the information up to hdd target config.

And then add a SME interface to allow hdd layer to configure
the EGAP configuration.

Change-Id: I9be927369e7cf07731f8e9ba49d65224e05c340b
CRs-fixed: 929063
2016-02-08 15:50:35 -08:00
Deepak Dhamdhere
ecce974317 qcacld-3.0: Remove #ifdef FEATURE_WLAN_LFR from SME
The condition #ifdef WLAN_FEATURE_LFR is used to include some of
the roaming code. It has been defined for all the recent driver
builds. Roaming code underneath is permanent part of the driver.
Remove #ifdef FEATURE_WLAN_LFR compiler flag from SME so that the code
will always be compiled in.

CRs-Fixed: 936683
Change-Id: I86b9e3dee6b92c89a54de6df769800c31fc3ad17
2016-02-08 15:50:35 -08:00
Deepak Dhamdhere
42b5c11dd8 qcacld-3.0: Remove #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING from SME
The condition #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING is used to include
some of the roaming code. It has been defined for all the recent driver
builds. Roaming code underneath is permanent part of the driver.

Remove #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING compiler flag from SME
and CSR so that the code will always be compiled in.

CRs-Fixed: 936683
Change-Id: I63a43b7cfd9360341d4ac4126cbf9fc8ac89071a
2016-02-08 15:50:35 -08:00
Deepak Dhamdhere
9d1615c29b qcacld-3.0: Remove #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING from HDD
The condition #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING is used to include
some of the roaming code. It has been defined for all the recent driver
builds. Roaming code underneath is permanent part of the driver.

Remove #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING compiler flag from HDD so
that the code will always be compiled in.

CRs-Fixed: 936683
Change-Id: I777d48f26aea36383747281bd4fef2eadc7beefb
2016-02-08 15:50:35 -08:00
Abhishek Singh
e068085f29 qcacld-3.0: Delete preauth session in case of deauth from host
qcacld-2.0 to qcacld-3.0 propagation

The preauth session is not deleted if the deauth is from host
(eCsrForcedDeauth).
Adds the check to delete the preauth session and stop the
preAuthReassocIntvlTimer timer, in case of deauth from host.

Change-Id: I181344b0f3a41ff5c3a77f30b4c8cf80557c23b5
CRs-fixed: 649521
2016-02-08 15:50:35 -08:00
Abhishek Singh
1e39fc24ee qcacld-3.0: If RSN IE is present ignore WPA IE to get cbmode
qcacld-2.0 to qcacld-3.0 propagation

if AP has RSN IE and supports AES, driver goes on to check
WPA IE and if it contains only TKIP in unicast cipher, it
sets cbmode to 0 (20Mhz).
Added a check to ignore the WPA IE if RSN IE is present and take
decision on cbmode with respect to RSN IE only.

Change-Id: I4eaf8a2d6a9f3a43e74e606045af995fbaa800ad
CRs-Fixed: 739345
2016-02-08 15:50:35 -08:00
Sreelakshmi Konamki
c88f537ccb qcacld-3.0: Add missing MTRACE log in HDD
qcacld-2.0 to qcacld-3.0 propagation

Currently, MTRACE logs are not captured for the events posted
from SME to HDD. So, add missing MTRACE log in hdd_smeRoamCallback()
and also add missing eRoamCmdStatus enums in get_eRoamCmdStatus_str().

Change-Id: I26ef8c651b7b873939341b643056ff977a40ea19
CRs-Fixed: 855875
2016-02-08 15:50:34 -08:00
Sreelakshmi Konamki
39acb13377 qcacld-3.0: Changes in Protocol Stack logs from numerical values to string
qcacld-2.0 to qcacld-3.0 propagation

As a part of logging enhancement,to make logs more
interactive, changed pmcstate,scanType etc from
numerical values to human readable string in
Protocol stack.

Change-Id: I589088c2c5fd0afa106a1d0773a2ff525b0dd083
CRs-Fixed: 638916
2016-02-08 15:50:34 -08:00