18605731e8f17d1fde003084811f13f52539eb20cJizhou Liao/*
28605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Copyright (C) 2015 The Android Open Source Project
38605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
48605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Licensed under the Apache License, Version 2.0 (the "License");
58605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * you may not use this file except in compliance with the License.
68605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * You may obtain a copy of the License at
78605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
88605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *      http://www.apache.org/licenses/LICENSE-2.0
98605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
108605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Unless required by applicable law or agreed to in writing, software
118605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * distributed under the License is distributed on an "AS IS" BASIS,
128605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
138605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * See the License for the specific language governing permissions and
148605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * limitations under the License.
158605731e8f17d1fde003084811f13f52539eb20cJizhou Liao */
16f70a3961c8c1fc4267a55813075fa3edeb785effMark Salyzyn#define LOG_TAG "pn54x"
178605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
183a48d8f90dc1d2f2d127b0b32de500cfc52ab8c6Mark Salyzyn#include <stdio.h>
198605731e8f17d1fde003084811f13f52539eb20cJizhou Liao#include <string.h>
208605731e8f17d1fde003084811f13f52539eb20cJizhou Liao#if !defined (NXPLOG__H_INCLUDED)
218605731e8f17d1fde003084811f13f52539eb20cJizhou Liao#    include "phNxpLog.h"
228605731e8f17d1fde003084811f13f52539eb20cJizhou Liao#    include "phNxpConfig.h"
238605731e8f17d1fde003084811f13f52539eb20cJizhou Liao#endif
248605731e8f17d1fde003084811f13f52539eb20cJizhou Liao#include <cutils/properties.h>
25d76d4cb3a67fd3cc74c6682ad0b7031bd619e7f5Mark Salyzyn#include <log/log.h>
268605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
278605731e8f17d1fde003084811f13f52539eb20cJizhou Liaoconst char * NXPLOG_ITEM_EXTNS   = "NxpExtns";
288605731e8f17d1fde003084811f13f52539eb20cJizhou Liaoconst char * NXPLOG_ITEM_NCIHAL  = "NxpHal";
298605731e8f17d1fde003084811f13f52539eb20cJizhou Liaoconst char * NXPLOG_ITEM_NCIX    = "NxpNciX";
308605731e8f17d1fde003084811f13f52539eb20cJizhou Liaoconst char * NXPLOG_ITEM_NCIR    = "NxpNciR";
318605731e8f17d1fde003084811f13f52539eb20cJizhou Liaoconst char * NXPLOG_ITEM_FWDNLD  = "NxpFwDnld";
328605731e8f17d1fde003084811f13f52539eb20cJizhou Liaoconst char * NXPLOG_ITEM_TML     = "NxpTml";
338605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
348605731e8f17d1fde003084811f13f52539eb20cJizhou Liao#ifdef NXP_HCI_REQ
358605731e8f17d1fde003084811f13f52539eb20cJizhou Liaoconst char * NXPLOG_ITEM_HCPX    = "NxpHcpX";
368605731e8f17d1fde003084811f13f52539eb20cJizhou Liaoconst char * NXPLOG_ITEM_HCPR    = "NxpHcpR";
378605731e8f17d1fde003084811f13f52539eb20cJizhou Liao#endif /*NXP_HCI_REQ*/
388605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
398605731e8f17d1fde003084811f13f52539eb20cJizhou Liao/* global log level structure */
408605731e8f17d1fde003084811f13f52539eb20cJizhou Liaonci_log_level_t gLog_level;
418605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
428605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
438605731e8f17d1fde003084811f13f52539eb20cJizhou Liao/*******************************************************************************
448605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
458605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Function         phNxpLog_SetGlobalLogLevel
468605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
478605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Description      Sets the global log level for all modules.
488605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                  This value is set by Android property nfc.nxp_log_level_global.
498605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                  If value can be overridden by module log level.
508605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
518605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Returns          The value of global log level
528605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
538605731e8f17d1fde003084811f13f52539eb20cJizhou Liao ******************************************************************************/
548605731e8f17d1fde003084811f13f52539eb20cJizhou Liaostatic uint8_t phNxpLog_SetGlobalLogLevel (void)
558605731e8f17d1fde003084811f13f52539eb20cJizhou Liao{
568605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    uint8_t level = NXPLOG_DEFAULT_LOGLEVEL;
578605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    unsigned long num = 0;
588605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    char valueStr [PROPERTY_VALUE_MAX] = {0};
598605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
608605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    int len = property_get (PROP_NAME_NXPLOG_GLOBAL_LOGLEVEL, valueStr, "");
618605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    if (len > 0)
628605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    {
638605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        /* let Android property override .conf variable */
648605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        sscanf (valueStr, "%lu", &num);
658605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        level = (unsigned char) num;
668605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    }
678605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    memset(&gLog_level, level, sizeof(nci_log_level_t));
688605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    return level;
698605731e8f17d1fde003084811f13f52539eb20cJizhou Liao}
708605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
718605731e8f17d1fde003084811f13f52539eb20cJizhou Liao/*******************************************************************************
728605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
738605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Function         phNxpLog_SetHALLogLevel
748605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
758605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Description      Sets the HAL layer log level.
768605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
778605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Returns          void
788605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
798605731e8f17d1fde003084811f13f52539eb20cJizhou Liao ******************************************************************************/
808605731e8f17d1fde003084811f13f52539eb20cJizhou Liaostatic void phNxpLog_SetHALLogLevel (uint8_t level)
818605731e8f17d1fde003084811f13f52539eb20cJizhou Liao{
828605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    unsigned long num = 0;
838605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    int len;
848605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    char valueStr [PROPERTY_VALUE_MAX] = {0};
858605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
868605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    if (GetNxpNumValue (NAME_NXPLOG_HAL_LOGLEVEL, &num, sizeof(num)))
878605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    {
888605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        gLog_level.hal_log_level = (level > (unsigned char) num) ? level : (unsigned char) num;;
898605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    }
908605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
918605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    len = property_get (PROP_NAME_NXPLOG_HAL_LOGLEVEL, valueStr, "");
928605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    if (len > 0)
938605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    {
948605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        /* let Android property override .conf variable */
958605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        sscanf (valueStr, "%lu", &num);
968605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        gLog_level.hal_log_level = (unsigned char) num;
978605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    }
988605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
998605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    return;
1008605731e8f17d1fde003084811f13f52539eb20cJizhou Liao}
1018605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
1028605731e8f17d1fde003084811f13f52539eb20cJizhou Liao/*******************************************************************************
1038605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
1048605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Function         phNxpLog_SetExtnsLogLevel
1058605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
1068605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Description      Sets the Extensions layer log level.
1078605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
1088605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Returns          void
1098605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
1108605731e8f17d1fde003084811f13f52539eb20cJizhou Liao ******************************************************************************/
1118605731e8f17d1fde003084811f13f52539eb20cJizhou Liaostatic void phNxpLog_SetExtnsLogLevel (uint8_t level)
1128605731e8f17d1fde003084811f13f52539eb20cJizhou Liao{
1138605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    unsigned long num = 0;
1148605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    int len;
1158605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    char valueStr [PROPERTY_VALUE_MAX] = {0};
1168605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    if (GetNxpNumValue (NAME_NXPLOG_EXTNS_LOGLEVEL, &num, sizeof(num)))
1178605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    {
1188605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        gLog_level.extns_log_level = (level > (unsigned char) num) ? level : (unsigned char) num;;
1198605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    }
1208605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
1218605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    len = property_get (PROP_NAME_NXPLOG_EXTNS_LOGLEVEL, valueStr, "");
1228605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    if (len > 0)
1238605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    {
1248605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        /* let Android property override .conf variable */
1258605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        sscanf (valueStr, "%lu", &num);
1268605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        gLog_level.extns_log_level = (unsigned char) num;
1278605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    }
1288605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
1298605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    return;
1308605731e8f17d1fde003084811f13f52539eb20cJizhou Liao}
1318605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
1328605731e8f17d1fde003084811f13f52539eb20cJizhou Liao/*******************************************************************************
1338605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
1348605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Function         phNxpLog_SetTmlLogLevel
1358605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
1368605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Description      Sets the TML layer log level.
1378605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
1388605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Returns          void
1398605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
1408605731e8f17d1fde003084811f13f52539eb20cJizhou Liao ******************************************************************************/
1418605731e8f17d1fde003084811f13f52539eb20cJizhou Liaostatic void phNxpLog_SetTmlLogLevel (uint8_t level)
1428605731e8f17d1fde003084811f13f52539eb20cJizhou Liao{
1438605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    unsigned long num = 0;
1448605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    int len;
1458605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    char valueStr [PROPERTY_VALUE_MAX] = {0};
1468605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    if (GetNxpNumValue (NAME_NXPLOG_TML_LOGLEVEL, &num, sizeof(num)))
1478605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    {
1488605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        gLog_level.tml_log_level = (level > (unsigned char) num) ? level : (unsigned char) num;;
1498605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    }
1508605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
1518605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    len = property_get (PROP_NAME_NXPLOG_TML_LOGLEVEL, valueStr, "");
1528605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    if (len > 0)
1538605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    {
1548605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        /* let Android property override .conf variable */
1558605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        sscanf (valueStr, "%lu", &num);
1568605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        gLog_level.tml_log_level = (unsigned char) num;
1578605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    }
1588605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
1598605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    return;
1608605731e8f17d1fde003084811f13f52539eb20cJizhou Liao}
1618605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
1628605731e8f17d1fde003084811f13f52539eb20cJizhou Liao/*******************************************************************************
1638605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
1648605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Function         phNxpLog_SetDnldLogLevel
1658605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
1668605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Description      Sets the FW download layer log level.
1678605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
1688605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Returns          void
1698605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
1708605731e8f17d1fde003084811f13f52539eb20cJizhou Liao ******************************************************************************/
1718605731e8f17d1fde003084811f13f52539eb20cJizhou Liaostatic void phNxpLog_SetDnldLogLevel (uint8_t level)
1728605731e8f17d1fde003084811f13f52539eb20cJizhou Liao{
1738605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    unsigned long num = 0;
1748605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    int len;
1758605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    char valueStr [PROPERTY_VALUE_MAX] = {0};
1768605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    if (GetNxpNumValue (NAME_NXPLOG_FWDNLD_LOGLEVEL, &num, sizeof(num)))
1778605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    {
1788605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        gLog_level.dnld_log_level = (level > (unsigned char) num) ? level : (unsigned char) num;;
1798605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    }
1808605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
1818605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    len = property_get (PROP_NAME_NXPLOG_FWDNLD_LOGLEVEL, valueStr, "");
1828605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    if (len > 0)
1838605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    {
1848605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        /* let Android property override .conf variable */
1858605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        sscanf (valueStr, "%lu", &num);
1868605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        gLog_level.dnld_log_level = (unsigned char) num;
1878605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    }
1888605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
1898605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    return;
1908605731e8f17d1fde003084811f13f52539eb20cJizhou Liao}
1918605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
1928605731e8f17d1fde003084811f13f52539eb20cJizhou Liao/*******************************************************************************
1938605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
1948605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Function         phNxpLog_SetNciTxLogLevel
1958605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
1968605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Description      Sets the NCI transaction layer log level.
1978605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
1988605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Returns          void
1998605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
2008605731e8f17d1fde003084811f13f52539eb20cJizhou Liao ******************************************************************************/
2018605731e8f17d1fde003084811f13f52539eb20cJizhou Liaostatic void phNxpLog_SetNciTxLogLevel (uint8_t level)
2028605731e8f17d1fde003084811f13f52539eb20cJizhou Liao{
2038605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    unsigned long num = 0;
2048605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    int len;
2058605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    char valueStr [PROPERTY_VALUE_MAX] = {0};
2068605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    if (GetNxpNumValue (NAME_NXPLOG_NCIX_LOGLEVEL, &num, sizeof(num)))
2078605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    {
2088605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        gLog_level.ncix_log_level = (level > (unsigned char) num) ? level : (unsigned char) num;
2098605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    }
2108605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    if (GetNxpNumValue (NAME_NXPLOG_NCIR_LOGLEVEL, &num, sizeof(num)))
2118605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    {
2128605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        gLog_level.ncir_log_level = (level > (unsigned char) num) ? level : (unsigned char) num;;
2138605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    }
2148605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
2158605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    len = property_get (PROP_NAME_NXPLOG_NCI_LOGLEVEL, valueStr, "");
2168605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    if (len > 0)
2178605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    {
2188605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        /* let Android property override .conf variable */
2198605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        sscanf (valueStr, "%lu", &num);
2208605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        gLog_level.ncix_log_level = (unsigned char) num;
2218605731e8f17d1fde003084811f13f52539eb20cJizhou Liao        gLog_level.ncir_log_level = (unsigned char) num;
2228605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    }
2238605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
2248605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    return;
2258605731e8f17d1fde003084811f13f52539eb20cJizhou Liao}
2268605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
2278605731e8f17d1fde003084811f13f52539eb20cJizhou Liao/******************************************************************************
2288605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Function         phNxpLog_InitializeLogLevel
2298605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
2308605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Description      Initialize and get log level of module from libnfc-nxp.conf or
2318605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                  Android runtime properties.
2328605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                  The Android property nfc.nxp_global_log_level is to
2338605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                  define log level for all modules. Modules log level will override global level.
2348605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                  The Android property will override the level
2358605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                  in libnfc-nxp.conf
2368605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
2378605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                  Android property names:
2388605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                      nfc.nxp_log_level_global    * defines log level for all modules
2398605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                      nfc.nxp_log_level_extns     * extensions module log
2408605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                      nfc.nxp_log_level_hal       * Hal module log
2418605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                      nfc.nxp_log_level_dnld      * firmware download module log
2428605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                      nfc.nxp_log_level_tml       * TML module log
2438605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                      nfc.nxp_log_level_nci       * NCI transaction log
2448605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
2458605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                  Log Level values:
2468605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                      NXPLOG_LOG_SILENT_LOGLEVEL  0        * No trace to show
2478605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                      NXPLOG_LOG_ERROR_LOGLEVEL   1        * Show Error trace only
2488605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                      NXPLOG_LOG_WARN_LOGLEVEL    2        * Show Warning trace and Error trace
2498605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *                      NXPLOG_LOG_DEBUG_LOGLEVEL   3        * Show all traces
2508605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
2518605731e8f17d1fde003084811f13f52539eb20cJizhou Liao * Returns          void
2528605731e8f17d1fde003084811f13f52539eb20cJizhou Liao *
2538605731e8f17d1fde003084811f13f52539eb20cJizhou Liao ******************************************************************************/
2548605731e8f17d1fde003084811f13f52539eb20cJizhou Liaovoid phNxpLog_InitializeLogLevel(void)
2558605731e8f17d1fde003084811f13f52539eb20cJizhou Liao{
2568605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    uint8_t level = phNxpLog_SetGlobalLogLevel ();
2578605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    phNxpLog_SetHALLogLevel (level);
2588605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    phNxpLog_SetExtnsLogLevel (level);
2598605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    phNxpLog_SetTmlLogLevel (level);
2608605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    phNxpLog_SetDnldLogLevel (level);
2618605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    phNxpLog_SetNciTxLogLevel (level);
2628605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
2635f28e5ee8f39bd58e182f911ebb50960b2a77830Joe Onorato    ALOGV("%s: global =%u, Fwdnld =%u, extns =%u, \
2648605731e8f17d1fde003084811f13f52539eb20cJizhou Liao                hal =%u, tml =%u, ncir =%u, \
2658605731e8f17d1fde003084811f13f52539eb20cJizhou Liao                ncix =%u", \
2662dfff7620070cff76fb117aafcd06e57cceb59fbRuchi Kandoi                __func__, gLog_level.global_log_level, gLog_level.dnld_log_level,
2678605731e8f17d1fde003084811f13f52539eb20cJizhou Liao                    gLog_level.extns_log_level, gLog_level.hal_log_level, gLog_level.tml_log_level,
2688605731e8f17d1fde003084811f13f52539eb20cJizhou Liao                    gLog_level.ncir_log_level, gLog_level.ncix_log_level);
2698605731e8f17d1fde003084811f13f52539eb20cJizhou Liao
2708605731e8f17d1fde003084811f13f52539eb20cJizhou Liao    return;
2718605731e8f17d1fde003084811f13f52539eb20cJizhou Liao}
272