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

Commit ddff29f1 authored by William Escande's avatar William Escande Committed by Automerger Merge Worker
Browse files
parents b990d399 d7952bb7
Loading
Loading
Loading
Loading
+375 −317
Original line number Diff line number Diff line
@@ -44,14 +44,6 @@
#define BTA_DM_AVOID_SCATTER_A2DP TRUE
#endif

/* For Insight, PM cfg lookup tables are runtime configurable (to allow tweaking
 * of params for power consumption measurements) */
#ifndef BTE_SIM_APP
#define tBTA_DM_PM_TYPE_QUALIFIER const
#else
#define tBTA_DM_PM_TYPE_QUALIFIER
#endif

const tBTA_DM_CFG bta_dm_cfg = {
    /* page timeout in 625uS */
    BTA_DM_PAGE_TIMEOUT,
@@ -134,16 +126,21 @@ tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_CFG
        {BTA_ID_GATTS, BTA_ALL_APP_ID, 15}  /* gatts spec table */
};

tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC* get_bta_dm_pm_spec() {
  static tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC
      bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
          /* AG : 0 */
          {(BTA_DM_PM_SNIFF | BTA_DM_PM_PARK), /* allow park & sniff */
           (BTA_DM_PM_SSR2),                   /* the SSR entry */
           {
               {{BTA_DM_PM_SNIFF_A2DP_IDX, 7000},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open sniff  */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* conn close  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_SNIFF_SCO_OPEN_IDX, 7000},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open, active */
               {{BTA_DM_PM_SNIFF_A2DP_IDX, 7000},
@@ -161,9 +158,12 @@ tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
           {
               {{BTA_DM_PM_PARK, 5000},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open  park */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* conn close  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_SNIFF_A2DP_IDX, 5000},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open sniff */
               {{BTA_DM_PM_PARK, 5000},
@@ -180,11 +180,15 @@ tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
           {
               {{BTA_DM_PM_SNIFF, 5000},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open active */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* conn close  */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
               {{BTA_DM_PM_ACTIVE, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_SNIFF, 1000}, {BTA_DM_PM_NO_ACTION, 0}}, /* idle */
               {{BTA_DM_PM_ACTIVE, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* busy */
               {{BTA_DM_PM_NO_ACTION, 0},
@@ -197,11 +201,16 @@ tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
           {
               {{BTA_DM_PM_SNIFF_HD_ACTIVE_IDX, 5000},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open sniff */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* conn close */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco close */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco close */
               {{BTA_DM_PM_SNIFF_HD_IDLE_IDX, 5000},
                {BTA_DM_PM_NO_ACTION, 0}}, /* idle */
               {{BTA_DM_PM_SNIFF_HD_ACTIVE_IDX, 0},
@@ -216,11 +225,16 @@ tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
           {
               {{BTA_DM_PM_SNIFF_A2DP_IDX, 7000},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open  sniff */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* conn close  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_SNIFF_A2DP_IDX, 7000},
                {BTA_DM_PM_NO_ACTION, 0}},                        /* idle */
               {{BTA_DM_PM_ACTIVE, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* busy */
@@ -234,10 +248,14 @@ tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
           {
               {{BTA_DM_PM_SNIFF6, BTA_DM_PM_HH_OPEN_DELAY},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open  sniff */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* conn close  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco close, used for HH suspend */
               {{BTA_DM_PM_SNIFF6, BTA_DM_PM_HH_IDLE_DELAY},
@@ -254,10 +272,14 @@ tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
           {
               {{BTA_DM_PM_SNIFF_HH_OPEN_IDX, BTA_DM_PM_HH_OPEN_DELAY},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open  sniff */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* conn close  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco close, used for HH suspend */
               {{BTA_DM_PM_SNIFF_HH_IDLE_IDX, BTA_DM_PM_HH_IDLE_DELAY},
@@ -274,11 +296,15 @@ tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
           {
               {{BTA_DM_PM_ACTIVE, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open  active */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* conn close  */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
               {{BTA_DM_PM_ACTIVE, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_SNIFF_A2DP_IDX, BTA_FTC_IDLE_TO_SNIFF_DELAY_MS},
                {BTA_DM_PM_NO_ACTION, 0}},                        /* idle */
               {{BTA_DM_PM_ACTIVE, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* busy */
@@ -292,11 +318,15 @@ tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
           {
               {{BTA_DM_PM_ACTIVE, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open  active */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* conn close  */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
               {{BTA_DM_PM_ACTIVE, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_SNIFF_A2DP_IDX, BTA_FTS_OPS_IDLE_TO_SNIFF_DELAY_MS},
                {BTA_DM_PM_NO_ACTION, 0}},                        /* idle */
               {{BTA_DM_PM_ACTIVE, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* busy */
@@ -310,9 +340,12 @@ tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
           {
               {{BTA_DM_PM_SNIFF_A2DP_IDX, 5000},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open sniff  */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* conn close  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open, active */
               {{BTA_DM_PM_NO_ACTION, 0},
@@ -329,11 +362,15 @@ tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
           {
               {{BTA_DM_PM_ACTIVE, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open  active */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* conn close  */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
               {{BTA_DM_PM_ACTIVE, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_SNIFF_A2DP_IDX, 5000},
                {BTA_DM_PM_NO_ACTION, 0}},                        /* idle */
               {{BTA_DM_PM_ACTIVE, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* busy */
@@ -347,11 +384,15 @@ tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
           {
               {{BTA_DM_PM_ACTIVE, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open  active */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* conn close  */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
               {{BTA_DM_PM_ACTIVE, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_SNIFF_A2DP_IDX, 5000},
                {BTA_DM_PM_NO_ACTION, 0}},                        /* idle */
               {{BTA_DM_PM_ACTIVE, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* busy */
@@ -366,9 +407,12 @@ tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
           {
               {{BTA_DM_PM_SNIFF, 7000},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open sniff  */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* conn close  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_SNIFF3, 7000},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open, active */
               {{BTA_DM_PM_SNIFF, 7000},
@@ -385,47 +429,60 @@ tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
           {
               {{BTA_DM_PM_SNIFF, 3000},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open  sniff */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* conn close  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_SNIFF4, 3000}, {BTA_DM_PM_NO_ACTION, 0}}, /* idle */
               {{BTA_DM_PM_ACTIVE, 0}, {BTA_DM_PM_NO_ACTION, 0}},    /* busy */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}} /* mode change retry */
     }}
           }},

          /* GATTC : 14 */
    ,
          {(BTA_DM_PM_SNIFF | BTA_DM_PM_PARK), /* allow park & sniff */
           (BTA_DM_PM_SSR2),                   /* the SSR entry */
           {
               {{BTA_DM_PM_SNIFF_A2DP_IDX, 10000},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open  active */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}},   /* conn close  */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
               {{BTA_DM_PM_ACTIVE, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
         {{BTA_DM_PM_NO_ACTION, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
               {{BTA_DM_PM_NO_ACTION, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco close   */
               {{BTA_DM_PM_SNIFF_A2DP_IDX, 10000},
                {BTA_DM_PM_NO_ACTION, 0}},                        /* idle */
               {{BTA_DM_PM_ACTIVE, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* busy */
               {{BTA_DM_PM_RETRY, 5000},
                {BTA_DM_PM_NO_ACTION, 0}} /* mode change retry */
     }}
           }},

          /* GATTS : 15 */
    ,
          {(BTA_DM_PM_SNIFF | BTA_DM_PM_PARK), /* allow park & sniff */
           (BTA_DM_PM_SSR2),                   /* the SSR entry */
           {
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn open  active */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
         {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* sco close */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* conn close  */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app open */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* app close */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco open  */
               {{BTA_DM_PM_NO_PREF, 0},
                {BTA_DM_PM_NO_ACTION, 0}}, /* sco close */
               {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* idle */
               {{BTA_DM_PM_NO_PREF, 0}, {BTA_DM_PM_NO_ACTION, 0}}, /* busy */
               {{BTA_DM_PM_RETRY, 5000},
@@ -445,6 +502,8 @@ tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC bta_dm_pm_spec[BTA_DM_NUM_PM_SPEC] = {
          {BTA_DM_PM_NO_PREF}  /* pm_spec USER_DEFINED_1 */
#endif                   /* BTE_SIM_APP */
      };
  return bta_dm_pm_spec;
}

/* Please refer to the SNIFF table definitions in bta_api.h.
 *
@@ -541,7 +600,6 @@ tBTA_DM_SSR_SPEC bta_dm_ssr_spec[] = {
tBTA_DM_SSR_SPEC* p_bta_dm_ssr_spec = &bta_dm_ssr_spec[0];

const tBTA_DM_PM_CFG* p_bta_dm_pm_cfg = &bta_dm_pm_cfg[0];
const tBTA_DM_PM_SPEC* p_bta_dm_pm_spec = &bta_dm_pm_spec[0];
const tBTM_PM_PWR_MD* p_bta_dm_pm_md = &bta_dm_pm_md[0];

/* The performance impact of EIR packet size
+9 −1
Original line number Diff line number Diff line
@@ -470,8 +470,16 @@ typedef struct {

extern const uint16_t bta_service_id_to_uuid_lkup_tbl[];

/* For Insight, PM cfg lookup tables are runtime configurable (to allow tweaking
 * of params for power consumption measurements) */
#ifndef BTE_SIM_APP
#define tBTA_DM_PM_TYPE_QUALIFIER const
#else
#define tBTA_DM_PM_TYPE_QUALIFIER
#endif

extern const tBTA_DM_PM_CFG* p_bta_dm_pm_cfg;
extern const tBTA_DM_PM_SPEC* p_bta_dm_pm_spec;
tBTA_DM_PM_TYPE_QUALIFIER tBTA_DM_PM_SPEC* get_bta_dm_pm_spec();
extern const tBTM_PM_PWR_MD* p_bta_dm_pm_md;
extern tBTA_DM_SSR_SPEC* p_bta_dm_ssr_spec;

+8 −7
Original line number Diff line number Diff line
@@ -344,7 +344,8 @@ static void bta_dm_pm_cback(tBTA_SYS_CONN_STATUS status, uint8_t id,
      break;
  }

  /* if no entries are there for the app_id and subsystem in p_bta_dm_pm_spec*/
  /* if no entries are there for the app_id and subsystem in
   * get_bta_dm_pm_spec()*/
  if (i > p_bta_dm_pm_cfg[0].app_id) {
    LOG_DEBUG("Ignoring power management callback as no service entries exist");
    return;
@@ -365,18 +366,18 @@ static void bta_dm_pm_cback(tBTA_SYS_CONN_STATUS status, uint8_t id,
  int index = BTA_DM_PM_SSR0;
  if ((BTA_SYS_CONN_OPEN == status) && p_dev &&
      (p_dev->Info() & BTA_DM_DI_USE_SSR)) {
    index = p_bta_dm_pm_spec[p_bta_dm_pm_cfg[i].spec_idx].ssr;
    index = get_bta_dm_pm_spec()[p_bta_dm_pm_cfg[i].spec_idx].ssr;
  } else if (BTA_ID_AV == id) {
    if (BTA_SYS_CONN_BUSY == status) {
      /* set SSR4 for A2DP on SYS CONN BUSY */
      index = BTA_DM_PM_SSR4;
    } else if (BTA_SYS_CONN_IDLE == status) {
      index = p_bta_dm_pm_spec[p_bta_dm_pm_cfg[i].spec_idx].ssr;
      index = get_bta_dm_pm_spec()[p_bta_dm_pm_cfg[i].spec_idx].ssr;
    }
  }

  /* if no action for the event */
  if (p_bta_dm_pm_spec[p_bta_dm_pm_cfg[i].spec_idx]
  if (get_bta_dm_pm_spec()[p_bta_dm_pm_cfg[i].spec_idx]
          .actn_tbl[status][0]
          .power_mode == BTA_DM_PM_NO_ACTION) {
    if (BTA_DM_PM_SSR0 == index) /* and do not need to set SSR, return. */
@@ -395,7 +396,7 @@ static void bta_dm_pm_cback(tBTA_SYS_CONN_STATUS status, uint8_t id,

  /* if subsystem has no more preference on the power mode remove
 the cb */
  if (p_bta_dm_pm_spec[p_bta_dm_pm_cfg[i].spec_idx]
  if (get_bta_dm_pm_spec()[p_bta_dm_pm_cfg[i].spec_idx]
          .actn_tbl[status][0]
          .power_mode == BTA_DM_PM_NO_PREF) {
    if (j != bta_dm_conn_srvcs.count) {
@@ -532,7 +533,7 @@ static void bta_dm_pm_set_mode(const RawAddress& peer_addr,
      }

      p_pm_cfg = &p_bta_dm_pm_cfg[j];
      p_pm_spec = &p_bta_dm_pm_spec[p_pm_cfg->spec_idx];
      p_pm_spec = &get_bta_dm_pm_spec()[p_pm_cfg->spec_idx];
      p_act0 = &p_pm_spec->actn_tbl[p_srvcs->state][0];
      p_act1 = &p_pm_spec->actn_tbl[p_srvcs->state][1];

@@ -781,7 +782,7 @@ static void bta_dm_pm_ssr(const RawAddress& peer_addr, const int ssr) {
    for (int j = 1; j <= p_bta_dm_pm_cfg[0].app_id; j++) {
      /* find the associated p_bta_dm_pm_cfg */
      const tBTA_DM_PM_CFG& config = p_bta_dm_pm_cfg[j];
      current_ssr_index = p_bta_dm_pm_spec[config.spec_idx].ssr;
      current_ssr_index = get_bta_dm_pm_spec()[config.spec_idx].ssr;
      if ((config.id == service.id) && ((config.app_id == BTA_ALL_APP_ID) ||
                                        (config.app_id == service.app_id))) {
        LOG_INFO("Found connected service:%s app_id:%d peer:%s spec_name:%s",