soc/braswell: Add method for Wifi regulatory domain

Get the WRDD domain code from VPD and put it in global nvs.
WRDD method in wifi.asl returns this value from global nvs.
This wifi.asl should be included in dsdt.asl under the root port where wifi
module resides.

Original-Reviewed-on: https://chromium-review.googlesource.com/314373
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-by: Pratikkumar V Prajapati <pratikkumar.v.prajapati@intel.com>
Original-Commit-Queue: Hannah Williams <hannah.williams@intel.com>

Change-Id: I809d28f10e80681471a785e604df102fb943a983
Signed-off-by: fdurairx <felixx.durairaj@intel.com>
Signed-off-by: Hannah Williams <hannah.williams@intel.com>
Reviewed-on: https://review.coreboot.org/12745
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Felix Durairaj
2015-11-23 14:07:40 -08:00
committed by Patrick Georgi
parent 8ff4308243
commit 15184e081a
4 changed files with 52 additions and 1 deletions

View File

@@ -44,6 +44,7 @@
#include <string.h>
#include <types.h>
#include <vendorcode/google/chromeos/gnvs.h>
#include <wrdd.h>
#define MWAIT_RES(state, sub_state) \
{ \
@@ -523,6 +524,13 @@ void southcluster_inject_dsdt(device_t device)
if (gnvs) {
acpi_create_gnvs(gnvs);
/* Fill in the Wifi Region id */
if (IS_ENABLED(CONFIG_HAVE_REGULATORY_DOMAIN)) {
gnvs->cid1 = wifi_regulatory_domain();
} else {
gnvs->cid1 = WRDD_DEFAULT_REGULATORY_DOMAIN;
}
acpi_save_gnvs((unsigned long)gnvs);
/* And tell SMI about it */
smm_setup_structures(gnvs, NULL, NULL);