Subrata Banik has submitted this change. ( https://review.coreboot.org/c/coreboot/+/69427 )
Change subject: drivers/wifi: Fix DSM parsing issue ......................................................................
drivers/wifi: Fix DSM parsing issue
commit b6ebcdfde58a77bea03a67b376401b9f0f3edefb restructured the DSM implementation which resulted in a regression and DSM values gets filled with junk values. This CL fixes this issue and passes the right pointer to the dsm ids structure.
BUG=b:256938177 TEST=Build, boot Nivviks and check if the DSM values are parsed correctly in the SSDT dump.
Signed-off-by: Meera Ravindranath meera.ravindranath@intel.com Change-Id: I88782b0b7dde1fca0230472a38628e82dfd9c26c Reviewed-on: https://review.coreboot.org/c/coreboot/+/69427 Reviewed-by: Haribalaraman Ramasubramanian haribalaraman.r@intel.corp-partner.google.com Reviewed-by: Eric Lai eric_lai@quanta.corp-partner.google.com Reviewed-by: Reka Norman rekanorman@chromium.org Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Henry Sun henrysun@google.com Reviewed-by: Ronak Kanabar ronak.kanabar@intel.com --- M src/drivers/wifi/generic/acpi.c 1 file changed, 29 insertions(+), 2 deletions(-)
Approvals: build bot (Jenkins): Verified Ronak Kanabar: Looks good to me, approved Henry Sun: Looks good to me, but someone else must approve Reka Norman: Looks good to me, approved Haribalaraman Ramasubramanian: Looks good to me, but someone else must approve Eric Lai: Looks good to me, but someone else must approve
diff --git a/src/drivers/wifi/generic/acpi.c b/src/drivers/wifi/generic/acpi.c index ee122ea..869b92a 100644 --- a/src/drivers/wifi/generic/acpi.c +++ b/src/drivers/wifi/generic/acpi.c @@ -488,7 +488,7 @@
/* copy the dsm data to be later used for creating _DSM function */ if (sar_limits.dsm != NULL) - memcpy(dsm, &sar_limits.dsm, sizeof(struct dsm_profile)); + memcpy(dsm, sar_limits.dsm, sizeof(struct dsm_profile));
free(sar_limits.sar); } @@ -571,7 +571,7 @@ dsm_ids[dsm_count].uuid = ACPI_DSM_OEM_WIFI_UUID; dsm_ids[dsm_count].callbacks = &wifi_dsm_callbacks[0]; dsm_ids[dsm_count].count = ARRAY_SIZE(wifi_dsm_callbacks); - dsm_ids[dsm_count].arg = NULL; + dsm_ids[dsm_count].arg = &dsm; dsm_count++; } }