summaryrefslogtreecommitdiff
path: root/board/nocturne
diff options
context:
space:
mode:
Diffstat (limited to 'board/nocturne')
-rw-r--r--board/nocturne/usb_pd_policy.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/board/nocturne/usb_pd_policy.c b/board/nocturne/usb_pd_policy.c
index d06e92ac96..8e2c06bd61 100644
--- a/board/nocturne/usb_pd_policy.c
+++ b/board/nocturne/usb_pd_policy.c
@@ -4,6 +4,7 @@
*/
#include "charge_manager.h"
+#include "chipset.h"
#include "common.h"
#include "console.h"
#include "compile_time_macros.h"
@@ -275,6 +276,14 @@ static int svdm_enter_dp_mode(int port, uint32_t mode_caps)
/* Only enter mode if device is DFP_D capable */
if (mode_caps & MODE_DP_SNK) {
svdm_safe_dp_mode(port);
+
+ if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
+ /*
+ * Wake the system up since we're entering DP AltMode.
+ */
+ pd_notify_dp_alt_mode_entry();
+
+
return 0;
}
@@ -363,6 +372,14 @@ static int svdm_dp_attention(int port, uint32_t *payload)
cur_lvl = gpio_get_level(hpd);
dp_status[port] = payload[1];
+ if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
+ (irq || lvl))
+ /*
+ * Wake up the AP. IRQ or level high indicates a DP sink is now
+ * present.
+ */
+ pd_notify_dp_alt_mode_entry();
+
/* Its initial DP status message prior to config */
if (!(dp_flags[port] & DP_FLAGS_DP_ON)) {
if (lvl)