From 0b64ddb678ff187b027583ec89525c08f415596a Mon Sep 17 00:00:00 2001 From: Igor Biletskyy Date: Mon, 7 Mar 2022 18:55:16 -0800 Subject: [PATCH] panda.cc: add panda deep sleep mode(#23911) * needed for panda deepsleep mode * add set_deepsleep to panda.cc * rename to enable_deepsleep * remove void * fix value * bump panda --- panda | 2 +- selfdrive/boardd/boardd.cc | 2 +- selfdrive/boardd/panda.cc | 4 ++++ selfdrive/boardd/panda.h | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/panda b/panda index 51ccb9fbd2..234e436e93 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit 51ccb9fbd266796e1bf6ffda8b93c4119ab09ff4 +Subproject commit 234e436e93f4dbd084fd912fe9b10d504ca9882e diff --git a/selfdrive/boardd/boardd.cc b/selfdrive/boardd/boardd.cc index d7e1adf1eb..9ae00d4e90 100644 --- a/selfdrive/boardd/boardd.cc +++ b/selfdrive/boardd/boardd.cc @@ -371,7 +371,7 @@ std::optional send_panda_states(PubMaster *pm, const std::vector size_t j = 0; for (size_t f = size_t(cereal::PandaState::FaultType::RELAY_MALFUNCTION); - f <= size_t(cereal::PandaState::FaultType::INTERRUPT_RATE_TICK); f++) { + f <= size_t(cereal::PandaState::FaultType::INTERRUPT_RATE_EXTI); f++) { if (fault_bits.test(f)) { faults.set(j, cereal::PandaState::FaultType(f)); j++; diff --git a/selfdrive/boardd/panda.cc b/selfdrive/boardd/panda.cc index 5e621b12cd..1d8880dc3f 100644 --- a/selfdrive/boardd/panda.cc +++ b/selfdrive/boardd/panda.cc @@ -338,6 +338,10 @@ void Panda::set_power_saving(bool power_saving) { usb_write(0xe7, power_saving, 0); } +void Panda::enable_deepsleep(void) { + usb_write(0xfb, 0, 0); +} + void Panda::set_usb_power_mode(cereal::PeripheralState::UsbPowerMode power_mode) { usb_write(0xe6, (uint16_t)power_mode, 0); } diff --git a/selfdrive/boardd/panda.h b/selfdrive/boardd/panda.h index dbd866adf4..279c96a6a6 100644 --- a/selfdrive/boardd/panda.h +++ b/selfdrive/boardd/panda.h @@ -85,6 +85,7 @@ class Panda { std::optional> get_firmware_version(); std::optional get_serial(); void set_power_saving(bool power_saving); + void enable_deepsleep(); void set_usb_power_mode(cereal::PeripheralState::UsbPowerMode power_mode); void send_heartbeat(bool engaged); void set_can_speed_kbps(uint16_t bus, uint16_t speed);