    loggerd_thread();
  
    return 0;
  }
 
</s> remove   if (Hardware::TICI()) {
 </s> add   if (!Hardware::PC()) { </s> remove     err = util::set_core_affinity({Hardware::TICI() ? 4 : 3});
 </s> add     err = util::set_core_affinity({4}); </s> remove     submaster_config={'ignore_avg_freq': ['radarState', 'longitudinalPlan']}
 </s> add     submaster_config={
      'ignore_avg_freq': ['radarState', 'longitudinalPlan', 'driverCameraState', 'driverMonitoringState'],  # dcam is expected at 20 Hz
      'ignore_alive': ['wideRoadCameraState'],  # TODO: Add to regen
    } </s> remove   if (Hardware::TICI()) {
 </s> add   if (!Hardware::PC()) { </s> remove   if (!Hardware::TICI() && ci->bayer) {
    // debayering does a 2x downscale
    rgb_width = ci->frame_width / 2;
    rgb_height = ci->frame_height / 2;
  }

 </s> add 
}
    loggerd_thread();
  
    return 0;
  }
}
keep keep keep add
 less TICI when not needed (#24698)

* less TICI when not needed

* fix process replay

* move reading voltages into hw abstraction layer

* Update selfdrive/hardware/tici/hardware.h

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* Update selfdrive/hardware/hw.h

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* Update selfdrive/hardware/base.h

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* rename init function

* Update selfdrive/athena/athenad.py

Co-authored-by: Robbe Derks <robbe.derks@gmail.com>

* Update selfdrive/boardd/boardd.cc

* Apply suggestions from code review

* Update selfdrive/thermald/thermald.py

* update ref

* fix alert width if all cameras are bad

* add ecam to test_loggerd

* bump cereal

* bump cereal

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Co-authored-by: Robbe Derks <robbe.derks@gmail.com> 
selfdrive/loggerd/loggerd.cc