From f12ed9899169d58797721e74c0732525a0fd82bc Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Mon, 5 Apr 2021 15:53:29 +1000 Subject: [PATCH] Cache FUSB polls --- source/Core/BSP/Miniware/Power.cpp | 8 +++++++- source/Core/BSP/Pine64/Power.cpp | 9 +++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/source/Core/BSP/Miniware/Power.cpp b/source/Core/BSP/Miniware/Power.cpp index 10494ea9..27384a2c 100644 --- a/source/Core/BSP/Miniware/Power.cpp +++ b/source/Core/BSP/Miniware/Power.cpp @@ -8,6 +8,7 @@ #include "int_n.h" #include "policy_engine.h" bool FUSB302_present = false; +bool FUSB302_probed = false; void power_check() { #ifdef POW_PD @@ -28,7 +29,12 @@ void power_check() { } uint8_t usb_pd_detect() { #ifdef POW_PD - FUSB302_present = fusb302_detect(); + if (FUSB302_probed) { + return FUSB302_present; + } else { + FUSB302_present = fusb302_detect(); + FUSB302_probed = true; + } return FUSB302_present; #endif return false; diff --git a/source/Core/BSP/Pine64/Power.cpp b/source/Core/BSP/Pine64/Power.cpp index 6de2fe82..540d757e 100644 --- a/source/Core/BSP/Pine64/Power.cpp +++ b/source/Core/BSP/Pine64/Power.cpp @@ -8,6 +8,7 @@ #include "int_n.h" #include "policy_engine.h" bool FUSB302_present = false; +bool FUSB302_probed = false; void power_check() { #ifdef POW_PD @@ -28,8 +29,12 @@ void power_check() { } uint8_t usb_pd_detect() { #ifdef POW_PD - FUSB302_present = fusb302_detect(); - + if (FUSB302_probed) { + return FUSB302_present; + } else { + FUSB302_present = fusb302_detect(); + FUSB302_probed = true; + } return FUSB302_present; #endif return false;