pn547: Force rewrite of config even if we think it's the same
When configuring the chip, we assume our stored values are still
what's on the chip. This isn't necessarily true, as at least some
implementations of pn547 reset config blocks when entering power-saving
states. If BOARD_NFC_LPM_LOSES_CONFIG is set, always force a rewrite
of the configuration blocks.
Change-Id: I9421f89de5eb5acad67bb59bda45972bcdcde41d
diff --git a/Android.mk b/Android.mk
index 59bc991..424954b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -35,6 +35,13 @@
$(call all-c-files-under, src/gki) \
$(HALIMPL)/adaptation/android_logmsg.cpp \
src/nfca_version.c
+
+ifeq ($(BOARD_NFC_CHIPSET),pn547)
+ifeq ($(BOARD_NFC_LPM_LOSES_CONFIG),true)
+ LOCAL_CFLAGS += -DNFCC_FORCE_CONFIG_UPDATE
+endif
+endif
+
include $(BUILD_SHARED_LIBRARY)
diff --git a/src/nfa/dm/nfa_dm_main.c b/src/nfa/dm/nfa_dm_main.c
index 466eff0..b4d687b 100644
--- a/src/nfa/dm/nfa_dm_main.c
+++ b/src/nfa/dm/nfa_dm_main.c
@@ -379,7 +379,9 @@
*p_cur_len = len;
update = TRUE;
}
+#ifndef NFCC_FORCE_CONFIG_UPDATE
else if (memcmp (p_value, p_stored, len))
+#endif
{
update = TRUE;
}