Use NFCC_CONFIG_CONTROL to configure listen parameters
If the NCI 2.0 NFCC_CONFIG_CONTROL parameter is set to allow the NFCC to
manage the RF configuration, the DH should only program the
configuration for itself (and not the UICC).
Change-Id: Ic299b6e557e719f5790dc2bf90fd71f2f3a3f795
diff --git a/src/nfa/dm/nfa_dm_discover.cc b/src/nfa/dm/nfa_dm_discover.cc
index fc2671a..3414c91 100644
--- a/src/nfa/dm/nfa_dm_discover.cc
+++ b/src/nfa/dm/nfa_dm_discover.cc
@@ -307,14 +307,16 @@
p = params;
/*
- ** for Listen A
- **
- ** Set ATQA 0x0C00 for T1T listen
- ** If the ATQA values are 0x0000, then the FW will use 0x0400
- ** which works for ISODEP, T2T and NFCDEP.
- */
- if (nfa_dm_cb.disc_cb.listen_RT[NFA_DM_DISC_LRT_NFC_A] ==
- NFA_DM_DISC_HOST_ID_DH) {
+ * for Listen A
+ *
+ * Set ATQA 0x0C00 for T1T listen
+ * If the ATQA values are 0x0000, then the FW will use 0x0400
+ * which works for ISODEP, T2T and NFCDEP.
+ *
+ * In mode NFCC allowed to manage RF config (NFCC_CONFIG_CONTROL),
+ * DH will only add RF parameters for itself.
+ * In this case, we must program LA_SEL_INFO for DH techs only
+ */
UINT8_TO_STREAM(p, NFC_PMID_LA_BIT_FRAME_SDD);
UINT8_TO_STREAM(p, NCI_PARAM_LEN_LA_BIT_FRAME_SDD);
UINT8_TO_STREAM(p, 0x04);
@@ -324,23 +326,9 @@
UINT8_TO_STREAM(p, NFC_PMID_LA_SEL_INFO);
UINT8_TO_STREAM(p, NCI_PARAM_LEN_LA_SEL_INFO);
UINT8_TO_STREAM(p, sens_info);
- } else /* Let NFCC use UICC configuration by configuring with length = 0 */
- {
- UINT8_TO_STREAM(p, NFC_PMID_LA_BIT_FRAME_SDD);
- UINT8_TO_STREAM(p, 0);
- UINT8_TO_STREAM(p, NFC_PMID_LA_PLATFORM_CONFIG);
- UINT8_TO_STREAM(p, 0);
- UINT8_TO_STREAM(p, NFC_PMID_LA_SEL_INFO);
- UINT8_TO_STREAM(p, 0);
- UINT8_TO_STREAM(p, NFC_PMID_LA_NFCID1);
- UINT8_TO_STREAM(p, 0);
- UINT8_TO_STREAM(p, NFC_PMID_LA_HIST_BY);
- UINT8_TO_STREAM(p, 0);
- }
/* for Listen B */
- if (nfa_dm_cb.disc_cb.listen_RT[NFA_DM_DISC_LRT_NFC_B] ==
- NFA_DM_DISC_HOST_ID_DH) {
+
UINT8_TO_STREAM(p, NFC_PMID_LB_SENSB_INFO);
UINT8_TO_STREAM(p, NCI_PARAM_LEN_LB_SENSB_INFO);
if (tech_proto_mask & NFA_DM_DISC_MASK_LB_ISO_DEP) {
@@ -348,19 +336,6 @@
} else {
UINT8_TO_STREAM(p, 0x00);
}
- } else /* Let NFCC use UICC configuration by configuring with length = 0 */
- {
- UINT8_TO_STREAM(p, NFC_PMID_LB_SENSB_INFO);
- UINT8_TO_STREAM(p, 0);
- UINT8_TO_STREAM(p, NFC_PMID_LB_NFCID0);
- UINT8_TO_STREAM(p, 0);
- UINT8_TO_STREAM(p, NFC_PMID_LB_APPDATA);
- UINT8_TO_STREAM(p, 0);
- UINT8_TO_STREAM(p, NFC_PMID_LB_ADC_FO);
- UINT8_TO_STREAM(p, 0);
- UINT8_TO_STREAM(p, NFC_PMID_LB_H_INFO);
- UINT8_TO_STREAM(p, 0);
- }
/* for Listen F */
/* NFCC can support NFC-DEP and T3T listening based on NFCID routing