Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a89b1a9f authored by Łukasz Rymanowski (xWF)'s avatar Łukasz Rymanowski (xWF) Committed by Gerrit Code Review
Browse files

Merge "l2cap: Workaround for PTS issue" into main

parents 687f2b2a 27175c3a
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -119,6 +119,12 @@ static uint8_t pts_get_fcs_option(void) {
  log::info("Too many iterations: {}, return fcs = 0x01", fcs_opt_iter);
  return 1;
}

static void l2c_csm_send_config_req(tL2C_CCB* p_ccb);
static void l2c_ccb_pts_delay_config_timeout(void* data) {
  tL2C_CCB* p_ccb = (tL2C_CCB*)data;
  l2c_csm_send_config_req(p_ccb);
}
#endif

static uint8_t get_fcs_option(void) {
@@ -569,7 +575,13 @@ static void l2c_csm_term_w4_sec_comp(tL2C_CCB* p_ccb, tL2CEVT event, void* p_dat
        if (p_ccb->p_lcb->transport != BT_TRANSPORT_LE) {
          log::debug("Not LE connection, sending configure request");
          l2c_csm_send_connect_rsp(p_ccb);
#if (L2CAP_CONFORMANCE_TESTING == TRUE)
          // TODO: when b/374014194 is solved on PTS side, revert change adding this delay.
          alarm_set_on_mloop(p_ccb->pts_config_delay_timer, 5000, l2c_ccb_pts_delay_config_timeout,
                             p_ccb);
#else
          l2c_csm_send_config_req(p_ccb);
#endif
        } else {
          if (p_ccb->ecoc) {
            /* Handle Credit Based Connection */
+5 −0
Original line number Diff line number Diff line
@@ -282,6 +282,11 @@ struct tL2C_CCB {

  alarm_t* l2c_ccb_timer; /* CCB Timer Entry */

#if (L2CAP_CONFORMANCE_TESTING == TRUE)
  alarm_t* pts_config_delay_timer; /* Used to delay sending CONFIGURATION_REQ to overcome PTS issue
                                    */
#endif

  tL2C_RCB* p_rcb; /* Registration CB for this Channel */

#define IB_CFG_DONE 0x01
+10 −0
Original line number Diff line number Diff line
@@ -1466,6 +1466,11 @@ tL2C_CCB* l2cu_allocate_ccb(tL2C_LCB* p_lcb, uint16_t cid, bool is_eatt) {
  alarm_free(p_ccb->l2c_ccb_timer);
  p_ccb->l2c_ccb_timer = alarm_new("l2c.l2c_ccb_timer");

#if (L2CAP_CONFORMANCE_TESTING == TRUE)
  alarm_free(p_ccb->pts_config_delay_timer);
  p_ccb->pts_config_delay_timer = alarm_new("pts.delay");
#endif

  l2c_link_adjust_chnl_allocation();

  if (p_lcb != NULL) {
@@ -1575,6 +1580,11 @@ void l2cu_release_ccb(tL2C_CCB* p_ccb) {
  alarm_free(p_ccb->l2c_ccb_timer);
  p_ccb->l2c_ccb_timer = NULL;

#if (L2CAP_CONFORMANCE_TESTING == TRUE)
  alarm_free(p_ccb->pts_config_delay_timer);
  p_ccb->pts_config_delay_timer = NULL;
#endif

  fixed_queue_free(p_ccb->xmit_hold_q, osi_free);
  p_ccb->xmit_hold_q = NULL;