[coreboot-gerrit] Change in coreboot[master]: driver/intel/wifi: elog wifi wake source

Naresh Solanki (Code Review) gerrit at coreboot.org
Mon Jul 3 18:32:08 CEST 2017


Naresh Solanki has uploaded this change for review. ( https://review.coreboot.org/20455


Change subject: driver/intel/wifi: elog wifi wake source
......................................................................

driver/intel/wifi: elog wifi wake source

During S3 resume, if wifi is wake source then put it in elog if enabled
in config.

Change-Id: I7d42c5c81e0a3f7a3f94c3f6b7d2ebdf029d1aff
Signed-off-by: Naresh G Solanki <naresh.solanki at intel.com>
---
M src/drivers/intel/wifi/wifi.c
M src/include/elog.h
2 files changed, 30 insertions(+), 1 deletion(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/55/20455/1

diff --git a/src/drivers/intel/wifi/wifi.c b/src/drivers/intel/wifi/wifi.c
index a71f014..1fa3869 100644
--- a/src/drivers/intel/wifi/wifi.c
+++ b/src/drivers/intel/wifi/wifi.c
@@ -20,11 +20,15 @@
 #include <device/device.h>
 #include <device/pci.h>
 #include <device/pci_ids.h>
+#include <elog.h>
 #include <sar.h>
 #include <smbios.h>
 #include <string.h>
 #include <wrdd.h>
 #include "chip.h"
+
+#define PMCS_DR 0xcc
+#define PME_STS (1 << 15)
 
 #if IS_ENABLED(CONFIG_GENERATE_SMBIOS_TABLES)
 static int smbios_write_wifi(struct device *dev, int *handle,
@@ -196,6 +200,30 @@
 }
 #endif
 
+static void wifi_pci_dev_init(struct device *dev)
+{
+
+	pci_dev_init(dev);
+
+#if IS_ENABLED(CONFIG_ELOG)
+
+	size_t j;
+	uint32_t val;
+	for ( j = 0 ; j < 0xff ; j+=4 ) {
+		if ( (j% 0x10) == 0  )
+			printk(BIOS_DEBUG, "\n");
+			val = pci_read_config32(dev, j);
+			printk(BIOS_DEBUG, "\t0x%08X", val);
+	}
+	printk(BIOS_DEBUG,"\n");
+
+	val = pci_read_config16(dev, PMCS_DR);
+	if ( val & PME_STS )
+		elog_add_event_wake(ELOG_WAKE_SOURCE_PME_WIFI, 0);
+#endif
+
+}
+
 static struct pci_operations pci_ops = {
 	.set_subsystem = pci_dev_set_subsystem,
 };
@@ -204,7 +232,7 @@
 	.read_resources           = pci_dev_read_resources,
 	.set_resources            = pci_dev_set_resources,
 	.enable_resources         = pci_dev_enable_resources,
-	.init                     = pci_dev_init,
+	.init                     = wifi_pci_dev_init,
 #if IS_ENABLED(CONFIG_GENERATE_SMBIOS_TABLES)
 	.get_smbios_data          = smbios_write_wifi,
 #endif
diff --git a/src/include/elog.h b/src/include/elog.h
index c960186..9cb5b7c 100644
--- a/src/include/elog.h
+++ b/src/include/elog.h
@@ -147,6 +147,7 @@
 #define  ELOG_WAKE_SOURCE_PME_XDCI         0x1c
 #define  ELOG_WAKE_SOURCE_PME_XHCI_USB_2   0x1d
 #define  ELOG_WAKE_SOURCE_PME_XHCI_USB_3   0x1e
+#define ELOG_WAKE_SOURCE_PME_WIFI          0x1f
 
 struct elog_event_data_wake {
 	u8 source;

-- 
To view, visit https://review.coreboot.org/20455
To unsubscribe, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I7d42c5c81e0a3f7a3f94c3f6b7d2ebdf029d1aff
Gerrit-Change-Number: 20455
Gerrit-PatchSet: 1
Gerrit-Owner: Naresh Solanki <naresh.solanki at intel.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20170703/2a1d36a3/attachment-0001.html>


More information about the coreboot-gerrit mailing list