Free the reg rule pointers while handing error conditions.
Also free pointers when channel list building is completed.
Change-Id: I4c8d67ae191f86175f9cc684ba703fea11e66f1f
CRs-Fixed: 2002892
Some countries have no reg rules. Check is added to avoid
NULL pointer dereference in cur_reg_rule.
Change-Id: I1840ca85121f0f61abab8fcf288fdde6a9ca22c5
CRs-Fixed: 2002892
Antenna gains are added to per regdomain structure. Howerver,
during parsing they are copied to per current reg rule and
finally to per channel.
Change-Id: Ib456248e2dee26ed3b2a9878d1b27fc5c9827e81
CRs-Fixed: 2002892
The IOCTL may pass country ISO or country code or regDomain pair
ID as input. In all 3 cases, get the regrules and build master
channel list.
Change-Id: I643734dff175709853cb013b9b58365cceffd5d4
CRs-Fixed: 2002892
When a country code is not available from inside the device
(from EEPROM), a default country needs to be set. Also get
the regdomains from the default country code and build the
master channel list.
Change-Id: If307ad18318b2aea3fcdd149c01b39a678163bb5
CRs-Fixed: 2002892
Since the array size can be specified by a different macro or a
different value in future, let the compiler calculate the array
size directly instead of using the hard-coded value of the macro.
Change-Id: I3fb1719db5165d0155e73c0653ec6f13fa95f69a
CRs-Fixed: 2002892
Instead of having a large function, the parse function is
split into 3 for A)Country ISO B)CountryCode and
C)RegDomain Pair ID.
Change-Id: I5b3574cd54644d1eac13e3eff762eb7cbdd35a73
CRs-Fixed: 2002892
Country and regdomain parse functions are added for the regDB in
host. Given a country code or ISO or RegDomain, these functions
find the regulatory rules and builds master channel list.
Change-Id: I7c632098561e3bbab1ac6ded2ae80e03d53b00bb
CRs-Fixed: 2002892
When a new master channel list is created, populate master chan list to all
pdevs. Do not make any assumption on availability of pdevs. Make other
stability and initialization fixes. Also add extra fields to data
structures.
Change-Id: I0a59c41e9425435f6069807a3c5de0b389d8fa5e
CRs-Fixed: 2002892
Filter the PCL with NOL before providing to the requester to avoid
including radar channels in PCL.
Change-Id: I915572f6653a6c9c98cb525c03570543cfc86e12
CRs-Fixed: 2009818
Antenna gain is per regulatory structure. However we need it in
per channel during transmission. Firmware sends antenna gain per
regulatory rule. Host copies it to per channel structure.
Change-Id: Ia163f46facec03ccd450994acbeb28d1e9f2a111
CRs-Fixed: 2002892
For 2GHz HT40+/HT40- band width reg_get_2g_bonded_channel_state function
always returns the state as invalid due to function argument mismatch.
Change-Id: Ida04339fcaf680807aa425b3f28c627baa317b02
CRs-Fixed: 2002892
Move remaining regulatory public data structures to
reg_services_public_struct.h
Change-Id: I658d434c46989f90b527f7d6a8e5a4da032628f7
CRs-Fixed: 2002892
Add API to pass initial configuration settings to
regulatory component.The regulatory component would
re-compute initialization channel list when this API
is called.
Change-Id: I414ecd189c0879515bd9b3f07537b3143a5cb0ed
CRs-Fixed: 2002892
Policy mgr needs APIs for chan to freq and freq to chan APIs.
Add these APIs to regulatory component at pdev level.
Change-Id: I4a0cf2a4b02e16b81d24088c9e9b6c8d36ce6b6c
CRs-Fixed: 2002892
If high limit value is not found; there can be infinite loop
for searching for it. Fix it by checking for lower limit. Also
do NULL check on extended service capabilities pointer.
Change-Id: Ie3f78e470be77b2e9b34a1003c9e273c33da21db
CRs-Fixed: 2002892
Provides the public API to set/reset the NOL channel status in the
regulatory current channel list.
Change-Id: Ic04b55a88705c94aa2933ac402ba9c538147aecd
CRs-Fixed: 2002892
Fix the population of tx power. Also fix the WMI TLV processing
for regulatory channel list event. Also make sure correct
range enums are calculated for pdev range.
Change-Id: Iec9559c0ab4b2b5e52d0b0a3eb4a0e8d038dc791
CRs-Fixed: 2002892
4.9 ghz channels would be added when we do different channel
enumerations for different operating classes. Remove them now
to simplify the reg component logic.
Change-Id: Iceb199d5cc531a83b613101cdb61a78c9b0746c0
CRs-Fixed: 2002892
The current channel list is now maintained at pdev level. Accordingly,
change the relevant public APIs to take pdev and not psoc as an argument.
Also add operating class public APIs and other public macros needed from
regulatory component.
Change-Id: I953d254c5c438fa0aacc8eed07bda1ce16b01912
CRs-Fixed: 2002892
The current channel list needs to be maintained at pdev level.
Compute the current channel list when a pdev is created.
Change-Id: I4922c2d2f9145fb5acfd694f7d2d364af8e676fa
CRs-Fixed: 2002892
Add event handler for WMI_REG_CHAN_LIST_CC_EVENTID.This handler
would be called from psoc_open object manager framework
initialization.
Change-Id: Icfd52fdb7056fdb77afdbd1be576d160719b7285
CRs-Fixed: 2002892
Process the message WMI_REG_CHAN_LIST_CC_EVENTID. This message is used to
populate the master channel list.
Change-Id: I96d8f7ff5f71a35686ba990175c4a37995bfa6b2
CRs-Fixed 2002892
Register the regulatory component with obj mgr. Regulatory
component only needs to listen to psoc level messages.
Change-Id: I3d060d66cb7bac2912afb1301ef1960f8bd9c0ef
CRs-Fixed: 2002892
New regulatory database that is offload friendly. The
same database would be used in firmware also.
Change-Id: I4f8ee3555882fcc672d893ff544e119773dfd4c0
CRs-Fixed: 2002892
Define the regulatory component public APIs, private APIs and
initialization of the regulatory object
Change-Id: I536078592aa7e66e96d4dcab8efdedfd6fd03711
CRs-Fixed: 2002892