Snap for 4778776 from 972df2734d4481f91509310ccb6bf57cd07547a7 to pi-release

Change-Id: Ied545c40fe89bca3fd4685d78462c53f3fffbe5e
diff --git a/src/nfa/dm/nfa_dm_discover.cc b/src/nfa/dm/nfa_dm_discover.cc
index d494e1f..62332cb 100644
--- a/src/nfa/dm/nfa_dm_discover.cc
+++ b/src/nfa/dm/nfa_dm_discover.cc
@@ -1047,27 +1047,29 @@
     if (dm_disc_mask & NFA_DM_DISC_MASK_NFC_DEP) {
       nfa_p2p_set_config(dm_disc_mask);
     }
-    if (dm_disc_mask &
-        (NFA_DM_DISC_MASK_PF_NFC_DEP | NFA_DM_DISC_MASK_PF_T3T)) {
-      /* According to the NFC Forum Activity spec, controllers must:
-       * 1) Poll with RC=0 and SC=FFFF to find NFC-DEP targets
-       * 2) Poll with RC=1 and SC=FFFF to find T3T targets
-       * Many controllers don't do this yet, and seem to be activating
-       * NFC-DEP by default.
-       *
-       * We can at least fix the scenario where we're not interested
-       * in NFC-DEP, by setting RC=1 in that case. Otherwise, keep
-       * the default of RC=0. */
-      p = config_params;
-      UINT8_TO_STREAM(p, NFC_PMID_PF_RC);
-      UINT8_TO_STREAM(p, NCI_PARAM_LEN_PF_RC);
-      if ((dm_disc_mask & NFA_DM_DISC_MASK_PF_NFC_DEP) &&
-          !nfa_dm_is_p2p_paused()) {
-        UINT8_TO_STREAM(p, 0x00);  // RC=0
-      } else {
-        UINT8_TO_STREAM(p, 0x01);  // RC=1
+    if (NFC_GetNCIVersion() == NCI_VERSION_1_0) {
+      if (dm_disc_mask &
+          (NFA_DM_DISC_MASK_PF_NFC_DEP | NFA_DM_DISC_MASK_PF_T3T)) {
+        /* According to the NFC Forum Activity spec, controllers must:
+         * 1) Poll with RC=0 and SC=FFFF to find NFC-DEP targets
+         * 2) Poll with RC=1 and SC=FFFF to find T3T targets
+         * Many controllers don't do this yet, and seem to be activating
+         * NFC-DEP by default.
+         *
+         * We can at least fix the scenario where we're not interested
+         * in NFC-DEP, by setting RC=1 in that case. Otherwise, keep
+         * the default of RC=0. */
+        p = config_params;
+        UINT8_TO_STREAM(p, NFC_PMID_PF_RC);
+        UINT8_TO_STREAM(p, NCI_PARAM_LEN_PF_RC);
+        if ((dm_disc_mask & NFA_DM_DISC_MASK_PF_NFC_DEP) &&
+            !nfa_dm_is_p2p_paused()) {
+          UINT8_TO_STREAM(p, 0x00);  // RC=0
+        } else {
+          UINT8_TO_STREAM(p, 0x01);  // RC=1
+        }
+        nfa_dm_check_set_config(p - config_params, config_params, false);
       }
-      nfa_dm_check_set_config(p - config_params, config_params, false);
     }
   }
 
diff --git a/src/nfa/ee/nfa_ee_act.cc b/src/nfa/ee/nfa_ee_act.cc
index a9d5cd6..743034d 100644
--- a/src/nfa/ee/nfa_ee_act.cc
+++ b/src/nfa/ee/nfa_ee_act.cc
@@ -951,12 +951,12 @@
     return;
   }
 
-  p_cb->proto_switch_on = p_data->set_proto.protocols_switch_on;
-  p_cb->proto_switch_off = p_data->set_proto.protocols_switch_off;
-  p_cb->proto_battery_off = p_data->set_proto.protocols_battery_off;
-  p_cb->proto_screen_lock = p_data->set_proto.protocols_screen_lock;
-  p_cb->proto_screen_off = p_data->set_proto.protocols_screen_off;
-  p_cb->proto_screen_off_lock = p_data->set_proto.protocols_screen_off_lock;
+  p_cb->proto_switch_on |= p_data->set_proto.protocols_switch_on;
+  p_cb->proto_switch_off |= p_data->set_proto.protocols_switch_off;
+  p_cb->proto_battery_off |= p_data->set_proto.protocols_battery_off;
+  p_cb->proto_screen_lock |= p_data->set_proto.protocols_screen_lock;
+  p_cb->proto_screen_off |= p_data->set_proto.protocols_screen_off;
+  p_cb->proto_screen_off_lock |= p_data->set_proto.protocols_screen_off_lock;
   nfa_ee_update_route_size(p_cb);
   if (nfa_ee_total_lmrt_size() > NFC_GetLmrtSize()) {
     LOG(ERROR) << StringPrintf("nfa_ee_api_set_proto_cfg Exceed LMRT size");