11ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao/*
21ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Copyright (C) 2010-2014 NXP Semiconductors
31ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
41ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Licensed under the Apache License, Version 2.0 (the "License");
51ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * you may not use this file except in compliance with the License.
61ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * You may obtain a copy of the License at
71ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
81ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *      http://www.apache.org/licenses/LICENSE-2.0
91ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
101ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Unless required by applicable law or agreed to in writing, software
111ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * distributed under the License is distributed on an "AS IS" BASIS,
121ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * See the License for the specific language governing permissions and
141ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * limitations under the License.
151ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao */
161ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
17d897d6db79d709dc0b7969a9ad7dc141b3f06527Jiyong Park#include <stdio.h>
181ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao#include <string.h>
196fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#if !defined(NXPLOG__H_INCLUDED)
206fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#include "phNxpConfig.h"
216fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#include "phNxpLog.h"
221ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao#endif
231ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao#include <cutils/properties.h>
241ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
256fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiconst char* NXPLOG_ITEM_EXTNS = "NxpExtns";
266fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiconst char* NXPLOG_ITEM_NCIHAL = "NxpHal";
276fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiconst char* NXPLOG_ITEM_NCIX = "NxpNciX";
286fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiconst char* NXPLOG_ITEM_NCIR = "NxpNciR";
296fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiconst char* NXPLOG_ITEM_FWDNLD = "NxpFwDnld";
306fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiconst char* NXPLOG_ITEM_TML = "NxpTml";
311ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
321ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao#ifdef NXP_HCI_REQ
336fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiconst char* NXPLOG_ITEM_HCPX = "NxpHcpX";
346fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiconst char* NXPLOG_ITEM_HCPR = "NxpHcpR";
351ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao#endif /*NXP_HCI_REQ*/
361ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
371ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao/* global log level structure */
381ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liaonci_log_level_t gLog_level;
391ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
401ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao/*******************************************************************************
411ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
421ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Function         phNxpLog_SetGlobalLogLevel
431ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
441ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Description      Sets the global log level for all modules.
456fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi *                  This value is set by Android property
466fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi *nfc.nxp_log_level_global.
471ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *                  If value can be overridden by module log level.
481ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
491ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Returns          The value of global log level
501ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
511ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao ******************************************************************************/
526fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoistatic uint8_t phNxpLog_SetGlobalLogLevel(void) {
536fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t level = NXPLOG_DEFAULT_LOGLEVEL;
546fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  unsigned long num = 0;
556fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  char valueStr[PROPERTY_VALUE_MAX] = {0};
561ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
576fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  int len = property_get(PROP_NAME_NXPLOG_GLOBAL_LOGLEVEL, valueStr, "");
586fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  if (len > 0) {
596fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    /* let Android property override .conf variable */
606fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    sscanf(valueStr, "%lu", &num);
616fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    level = (unsigned char)num;
626fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  }
636fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  memset(&gLog_level, level, sizeof(nci_log_level_t));
646fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  return level;
651ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao}
661ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
671ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao/*******************************************************************************
681ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
691ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Function         phNxpLog_SetHALLogLevel
701ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
711ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Description      Sets the HAL layer log level.
721ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
731ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Returns          void
741ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
751ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao ******************************************************************************/
766fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoistatic void phNxpLog_SetHALLogLevel(uint8_t level) {
776fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  unsigned long num = 0;
786fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  int len;
796fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  char valueStr[PROPERTY_VALUE_MAX] = {0};
801ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
816fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  if (GetNxpNumValue(NAME_NXPLOG_HAL_LOGLEVEL, &num, sizeof(num))) {
826fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    gLog_level.hal_log_level =
836fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi        (level > (unsigned char)num) ? level : (unsigned char)num;
846fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    ;
856fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  }
861ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
876fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  len = property_get(PROP_NAME_NXPLOG_HAL_LOGLEVEL, valueStr, "");
886fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  if (len > 0) {
896fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    /* let Android property override .conf variable */
906fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    sscanf(valueStr, "%lu", &num);
916fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    gLog_level.hal_log_level = (unsigned char)num;
926fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  }
931ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao}
941ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
951ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao/*******************************************************************************
961ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
971ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Function         phNxpLog_SetExtnsLogLevel
981ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
991ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Description      Sets the Extensions layer log level.
1001ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
1011ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Returns          void
1021ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
1031ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao ******************************************************************************/
1046fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoistatic void phNxpLog_SetExtnsLogLevel(uint8_t level) {
1056fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  unsigned long num = 0;
1066fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  int len;
1076fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  char valueStr[PROPERTY_VALUE_MAX] = {0};
1086fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  if (GetNxpNumValue(NAME_NXPLOG_EXTNS_LOGLEVEL, &num, sizeof(num))) {
1096fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    gLog_level.extns_log_level =
1106fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi        (level > (unsigned char)num) ? level : (unsigned char)num;
1116fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    ;
1126fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  }
1131ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
1146fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  len = property_get(PROP_NAME_NXPLOG_EXTNS_LOGLEVEL, valueStr, "");
1156fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  if (len > 0) {
1166fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    /* let Android property override .conf variable */
1176fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    sscanf(valueStr, "%lu", &num);
1186fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    gLog_level.extns_log_level = (unsigned char)num;
1196fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  }
1201ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao}
1211ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
1221ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao/*******************************************************************************
1231ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
1241ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Function         phNxpLog_SetTmlLogLevel
1251ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
1261ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Description      Sets the Tml layer log level.
1271ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
1281ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Returns          void
1291ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
1301ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao ******************************************************************************/
1316fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoistatic void phNxpLog_SetTmlLogLevel(uint8_t level) {
1326fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  unsigned long num = 0;
1336fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  int len;
1346fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  char valueStr[PROPERTY_VALUE_MAX] = {0};
1356fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  if (GetNxpNumValue(NAME_NXPLOG_TML_LOGLEVEL, &num, sizeof(num))) {
1366fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    gLog_level.tml_log_level =
1376fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi        (level > (unsigned char)num) ? level : (unsigned char)num;
1386fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    ;
1396fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  }
1401ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
1416fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  len = property_get(PROP_NAME_NXPLOG_TML_LOGLEVEL, valueStr, "");
1426fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  if (len > 0) {
1436fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    /* let Android property override .conf variable */
1446fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    sscanf(valueStr, "%lu", &num);
1456fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    gLog_level.tml_log_level = (unsigned char)num;
1466fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  }
1471ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao}
1481ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
1491ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao/*******************************************************************************
1501ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
1511ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Function         phNxpLog_SetDnldLogLevel
1521ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
1531ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Description      Sets the FW download layer log level.
1541ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
1551ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Returns          void
1561ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
1571ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao ******************************************************************************/
1586fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoistatic void phNxpLog_SetDnldLogLevel(uint8_t level) {
1596fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  unsigned long num = 0;
1606fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  int len;
1616fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  char valueStr[PROPERTY_VALUE_MAX] = {0};
1626fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  if (GetNxpNumValue(NAME_NXPLOG_FWDNLD_LOGLEVEL, &num, sizeof(num))) {
1636fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    gLog_level.dnld_log_level =
1646fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi        (level > (unsigned char)num) ? level : (unsigned char)num;
1656fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    ;
1666fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  }
1671ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
1686fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  len = property_get(PROP_NAME_NXPLOG_FWDNLD_LOGLEVEL, valueStr, "");
1696fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  if (len > 0) {
1706fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    /* let Android property override .conf variable */
1716fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    sscanf(valueStr, "%lu", &num);
1726fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    gLog_level.dnld_log_level = (unsigned char)num;
1736fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  }
1741ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao}
1751ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
1761ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao/*******************************************************************************
1771ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
1781ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Function         phNxpLog_SetNciTxLogLevel
1791ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
1801ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Description      Sets the NCI transaction layer log level.
1811ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
1821ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Returns          void
1831ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
1841ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao ******************************************************************************/
1856fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoistatic void phNxpLog_SetNciTxLogLevel(uint8_t level) {
1866fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  unsigned long num = 0;
1876fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  int len;
1886fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  char valueStr[PROPERTY_VALUE_MAX] = {0};
1896fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  if (GetNxpNumValue(NAME_NXPLOG_NCIX_LOGLEVEL, &num, sizeof(num))) {
1906fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    gLog_level.ncix_log_level =
1916fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi        (level > (unsigned char)num) ? level : (unsigned char)num;
1926fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  }
1936fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  if (GetNxpNumValue(NAME_NXPLOG_NCIR_LOGLEVEL, &num, sizeof(num))) {
1946fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    gLog_level.ncir_log_level =
1956fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi        (level > (unsigned char)num) ? level : (unsigned char)num;
1966fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    ;
1976fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  }
1981ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
1996fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  len = property_get(PROP_NAME_NXPLOG_NCI_LOGLEVEL, valueStr, "");
2006fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  if (len > 0) {
2016fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    /* let Android property override .conf variable */
2026fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    sscanf(valueStr, "%lu", &num);
2036fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    gLog_level.ncix_log_level = (unsigned char)num;
2046fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi    gLog_level.ncir_log_level = (unsigned char)num;
2056fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  }
2061ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao}
2071ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
2081ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao/******************************************************************************
2091ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Function         phNxpLog_InitializeLogLevel
2101ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
2116fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi * Description      Initialize and get log level of module from libnfc-nxp.conf
2126fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi *or
2131ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *                  Android runtime properties.
2141ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *                  The Android property nfc.nxp_global_log_level is to
2156fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi *                  define log level for all modules. Modules log level will
2166fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi *overwide global level.
2171ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *                  The Android property will overwide the level
2181ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *                  in libnfc-nxp.conf
2191ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
2201ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *                  Android property names:
2216fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi *                      nfc.nxp_log_level_global    * defines log level for all
2226fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi *modules
2231ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *                      nfc.nxp_log_level_extns     * extensions module log
2241ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *                      nfc.nxp_log_level_hal       * Hal module log
2256fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi *                      nfc.nxp_log_level_dnld      * firmware download module
2266fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi *log
2271ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *                      nfc.nxp_log_level_tml       * TML module log
2281ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *                      nfc.nxp_log_level_nci       * NCI transaction log
2291ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
2301ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *                  Log Level values:
2311ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *                      NXPLOG_LOG_SILENT_LOGLEVEL  0        * No trace to show
2326fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi *                      NXPLOG_LOG_ERROR_LOGLEVEL   1        * Show Error trace
2336fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi *only
2346fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi *                      NXPLOG_LOG_WARN_LOGLEVEL    2        * Show Warning
2356fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi *trace and Error trace
2361ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *                      NXPLOG_LOG_DEBUG_LOGLEVEL   3        * Show all traces
2371ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
2381ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao * Returns          void
2391ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao *
2401ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao ******************************************************************************/
2416fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoivoid phNxpLog_InitializeLogLevel(void) {
2426fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t level = phNxpLog_SetGlobalLogLevel();
2436fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  phNxpLog_SetHALLogLevel(level);
2446fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  phNxpLog_SetExtnsLogLevel(level);
2456fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  phNxpLog_SetTmlLogLevel(level);
2466fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  phNxpLog_SetDnldLogLevel(level);
2476fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  phNxpLog_SetNciTxLogLevel(level);
2481ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao
2496fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  ALOGD(
2506fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      "%s: global =%u, Fwdnld =%u, extns =%u, \
2511ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao                hal =%u, tml =%u, ncir =%u, \
2526fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi                ncix =%u",
2536fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      __func__, gLog_level.global_log_level, gLog_level.dnld_log_level,
2546fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      gLog_level.extns_log_level, gLog_level.hal_log_level,
2556fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      gLog_level.tml_log_level, gLog_level.ncir_log_level,
2566fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      gLog_level.ncix_log_level);
2571ab8a755853d5118d6a504311d079bd5aa21a964Jizhou Liao}
258