diff options
| author | Leah Rowe <leah@libreboot.org> | 2023-09-04 02:36:41 +0100 | 
|---|---|---|
| committer | Leah Rowe <leah@libreboot.org> | 2023-09-04 02:47:25 +0100 | 
| commit | da3c9bb3c5c3b1f2e6e67a3695ce39b17bf68d5b (patch) | |
| tree | b81cdd418a4906c846800a8c5094b312e74f57df /config/coreboot/default/patches/0021-ec-dell-mec5035-Add-command-to-enable-disable-radios.patch | |
| parent | a05010503f9a748943033d1fc40e36625e72dcbb (diff) | |
merge config/ and resources/
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'config/coreboot/default/patches/0021-ec-dell-mec5035-Add-command-to-enable-disable-radios.patch')
| -rw-r--r-- | config/coreboot/default/patches/0021-ec-dell-mec5035-Add-command-to-enable-disable-radios.patch | 61 | 
1 files changed, 61 insertions, 0 deletions
| diff --git a/config/coreboot/default/patches/0021-ec-dell-mec5035-Add-command-to-enable-disable-radios.patch b/config/coreboot/default/patches/0021-ec-dell-mec5035-Add-command-to-enable-disable-radios.patch new file mode 100644 index 00000000..f3dad1e1 --- /dev/null +++ b/config/coreboot/default/patches/0021-ec-dell-mec5035-Add-command-to-enable-disable-radios.patch @@ -0,0 +1,61 @@ +From f4c41a930b777128bd418cbae525ba509e5f19ff Mon Sep 17 00:00:00 2001 +From: Nicholas Chin <nic.c3.14@gmail.com> +Date: Sun, 27 Aug 2023 17:36:36 -0600 +Subject: [PATCH 1/3] ec/dell/mec5035: Add command to enable/disable radios + +These were determined by sniffing the LPC bus while toggling the +hardware wireless switch on the Latitude E6400. To differentiate devices +options in the vendor BIOS to change which radios the switch controlled +were used. + +Change-Id: I173dc197d63cda232dd7ede0cb798ab0a364482b +Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com> +--- + src/ec/dell/mec5035/mec5035.c | 9 +++++++++ + src/ec/dell/mec5035/mec5035.h | 8 ++++++++ + 2 files changed, 17 insertions(+) + +diff --git a/src/ec/dell/mec5035/mec5035.c b/src/ec/dell/mec5035/mec5035.c +index 8da11e5b1c..e0335a4635 100644 +--- a/src/ec/dell/mec5035/mec5035.c ++++ b/src/ec/dell/mec5035/mec5035.c +@@ -84,6 +84,15 @@ u8 mec5035_mouse_touchpad(u8 setting) + 	return buf[0]; + } +  ++void mec5035_radio_enable(enum mec5035_radio_dev dev, u8 on) ++{ ++	/* From LPC traces and userspace testing with other values, ++	   the second byte has to be 2 for an unknown reason. */ ++	u8 buf[3] = {dev, 2, on}; ++	write_mailbox_regs(buf, 2, 3); ++	ec_command(CMD_RADIO_EN); ++} ++ + void mec5035_early_init(void) + { + 	/* If this isn't sent the EC shuts down the system after about 15 +diff --git a/src/ec/dell/mec5035/mec5035.h b/src/ec/dell/mec5035/mec5035.h +index e7a05b64d4..16512e2cc2 100644 +--- a/src/ec/dell/mec5035/mec5035.h ++++ b/src/ec/dell/mec5035/mec5035.h +@@ -16,8 +16,16 @@ +  + #define CMD_CPU_OK	0xc2 +  ++#define CMD_RADIO_EN	0x2b ++enum mec5035_radio_dev { ++	RADIO_WLAN = 0, ++	RADIO_WWAN = 1, ++	RADIO_WPAN = 2, ++}; ++ + u8 mec5035_mouse_touchpad(u8 setting); + void mec5035_cpu_ok(void); + void mec5035_early_init(void); ++void mec5035_radio_enable(enum mec5035_radio_dev device, u8 on); +  + #endif /* _EC_DELL_MEC5035_H_ */ +--  +2.42.0 + | 
