1d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna/* 2d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Copyright (C) 2010-2014 NXP Semiconductors 3d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 4d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Licensed under the Apache License, Version 2.0 (the "License"); 5d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * you may not use this file except in compliance with the License. 6d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * You may obtain a copy of the License at 7d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 8d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * http://www.apache.org/licenses/LICENSE-2.0 9d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 10d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Unless required by applicable law or agreed to in writing, software 11d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * distributed under the License is distributed on an "AS IS" BASIS, 12d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * See the License for the specific language governing permissions and 14d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * limitations under the License. 15d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna */ 16d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna#define LOG_TAG "NxpNfcHal" 17d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna#include <stdio.h> 18d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna#include <string.h> 19d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna#if !defined(NXPLOG__H_INCLUDED) 20d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna#include "phNxpConfig.h" 21d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna#include "phNxpLog.h" 22d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna#endif 23d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna#include <cutils/properties.h> 24d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna#include <log/log.h> 25d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 26d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannaconst char* NXPLOG_ITEM_EXTNS = "NxpExtns"; 27d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannaconst char* NXPLOG_ITEM_NCIHAL = "NxpHal"; 28d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannaconst char* NXPLOG_ITEM_NCIX = "NxpNciX"; 29d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannaconst char* NXPLOG_ITEM_NCIR = "NxpNciR"; 30d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannaconst char* NXPLOG_ITEM_FWDNLD = "NxpFwDnld"; 31d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannaconst char* NXPLOG_ITEM_TML = "NxpTml"; 32d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 33d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna#ifdef NXP_HCI_REQ 34d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannaconst char* NXPLOG_ITEM_HCPX = "NxpHcpX"; 35d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannaconst char* NXPLOG_ITEM_HCPR = "NxpHcpR"; 36d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna#endif /*NXP_HCI_REQ*/ 37d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 38d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna/* global log level structure */ 39d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannanci_log_level_t gLog_level; 40d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 41d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannaextern bool nfc_debug_enabled; 42d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 43d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna/******************************************************************************* 44d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 45d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Function phNxpLog_SetGlobalLogLevel 46d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 47d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Description Sets the global log level for all modules. 48d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * This value is set by Android property 49d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna *nfc.nxp_log_level_global. 50d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * If value can be overridden by module log level. 51d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 52d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Returns The value of global log level 53d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 54d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna ******************************************************************************/ 55d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannastatic uint8_t phNxpLog_SetGlobalLogLevel(void) { 56d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna uint8_t level = NXPLOG_DEFAULT_LOGLEVEL; 57d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna unsigned long num = 0; 58d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna char valueStr[PROPERTY_VALUE_MAX] = {0}; 59d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 60d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna int len = property_get(PROP_NAME_NXPLOG_GLOBAL_LOGLEVEL, valueStr, ""); 61d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna if (len > 0) { 62d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna /* let Android property override .conf variable */ 63d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna sscanf(valueStr, "%lu", &num); 64d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna level = (unsigned char)num; 65d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna } 66d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna memset(&gLog_level, level, sizeof(nci_log_level_t)); 67d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna return level; 68d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna} 69d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 70d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna/******************************************************************************* 71d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 72d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Function phNxpLog_SetHALLogLevel 73d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 74d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Description Sets the HAL layer log level. 75d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 76d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Returns void 77d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 78d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna ******************************************************************************/ 79d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannastatic void phNxpLog_SetHALLogLevel(uint8_t level) { 80d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna unsigned long num = 0; 81d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna int len; 82d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna char valueStr[PROPERTY_VALUE_MAX] = {0}; 83d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 84d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna if (GetNxpNumValue(NAME_NXPLOG_HAL_LOGLEVEL, &num, sizeof(num))) { 85d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna gLog_level.hal_log_level = 86d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna (level > (unsigned char)num) ? level : (unsigned char)num; 87d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna ; 88d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna } 89d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 90d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna len = property_get(PROP_NAME_NXPLOG_HAL_LOGLEVEL, valueStr, ""); 91d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna if (len > 0) { 92d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna /* let Android property override .conf variable */ 93d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna sscanf(valueStr, "%lu", &num); 94d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna gLog_level.hal_log_level = (unsigned char)num; 95d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna } 96d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna} 97d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 98d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna/******************************************************************************* 99d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 100d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Function phNxpLog_SetExtnsLogLevel 101d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 102d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Description Sets the Extensions layer log level. 103d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 104d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Returns void 105d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 106d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna ******************************************************************************/ 107d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannastatic void phNxpLog_SetExtnsLogLevel(uint8_t level) { 108d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna unsigned long num = 0; 109d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna int len; 110d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna char valueStr[PROPERTY_VALUE_MAX] = {0}; 111d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna if (GetNxpNumValue(NAME_NXPLOG_EXTNS_LOGLEVEL, &num, sizeof(num))) { 112d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna gLog_level.extns_log_level = 113d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna (level > (unsigned char)num) ? level : (unsigned char)num; 114d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna ; 115d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna } 116d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 117d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna len = property_get(PROP_NAME_NXPLOG_EXTNS_LOGLEVEL, valueStr, ""); 118d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna if (len > 0) { 119d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna /* let Android property override .conf variable */ 120d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna sscanf(valueStr, "%lu", &num); 121d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna gLog_level.extns_log_level = (unsigned char)num; 122d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna } 123d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna} 124d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 125d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna/******************************************************************************* 126d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 127d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Function phNxpLog_SetTmlLogLevel 128d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 129d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Description Sets the Tml layer log level. 130d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 131d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Returns void 132d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 133d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna ******************************************************************************/ 134d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannastatic void phNxpLog_SetTmlLogLevel(uint8_t level) { 135d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna unsigned long num = 0; 136d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna int len; 137d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna char valueStr[PROPERTY_VALUE_MAX] = {0}; 138d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna if (GetNxpNumValue(NAME_NXPLOG_TML_LOGLEVEL, &num, sizeof(num))) { 139d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna gLog_level.tml_log_level = 140d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna (level > (unsigned char)num) ? level : (unsigned char)num; 141d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna ; 142d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna } 143d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 144d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna len = property_get(PROP_NAME_NXPLOG_TML_LOGLEVEL, valueStr, ""); 145d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna if (len > 0) { 146d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna /* let Android property override .conf variable */ 147d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna sscanf(valueStr, "%lu", &num); 148d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna gLog_level.tml_log_level = (unsigned char)num; 149d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna } 150d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna} 151d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 152d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna/******************************************************************************* 153d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 154d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Function phNxpLog_SetDnldLogLevel 155d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 156d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Description Sets the FW download layer log level. 157d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 158d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Returns void 159d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 160d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna ******************************************************************************/ 161d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannastatic void phNxpLog_SetDnldLogLevel(uint8_t level) { 162d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna unsigned long num = 0; 163d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna int len; 164d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna char valueStr[PROPERTY_VALUE_MAX] = {0}; 165d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna if (GetNxpNumValue(NAME_NXPLOG_FWDNLD_LOGLEVEL, &num, sizeof(num))) { 166d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna gLog_level.dnld_log_level = 167d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna (level > (unsigned char)num) ? level : (unsigned char)num; 168d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna ; 169d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna } 170d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 171d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna len = property_get(PROP_NAME_NXPLOG_FWDNLD_LOGLEVEL, valueStr, ""); 172d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna if (len > 0) { 173d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna /* let Android property override .conf variable */ 174d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna sscanf(valueStr, "%lu", &num); 175d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna gLog_level.dnld_log_level = (unsigned char)num; 176d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna } 177d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna} 178d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 179d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna/******************************************************************************* 180d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 181d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Function phNxpLog_SetNciTxLogLevel 182d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 183d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Description Sets the NCI transaction layer log level. 184d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 185d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Returns void 186d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 187d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna ******************************************************************************/ 188d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannastatic void phNxpLog_SetNciTxLogLevel(uint8_t level) { 189d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna unsigned long num = 0; 190d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna int len; 191d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna char valueStr[PROPERTY_VALUE_MAX] = {0}; 192d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna if (GetNxpNumValue(NAME_NXPLOG_NCIX_LOGLEVEL, &num, sizeof(num))) { 193d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna gLog_level.ncix_log_level = 194d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna (level > (unsigned char)num) ? level : (unsigned char)num; 195d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna } 196d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna if (GetNxpNumValue(NAME_NXPLOG_NCIR_LOGLEVEL, &num, sizeof(num))) { 197d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna gLog_level.ncir_log_level = 198d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna (level > (unsigned char)num) ? level : (unsigned char)num; 199d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna ; 200d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna } 201d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 202d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna len = property_get(PROP_NAME_NXPLOG_NCI_LOGLEVEL, valueStr, ""); 203d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna if (len > 0) { 204d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna /* let Android property override .conf variable */ 205d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna sscanf(valueStr, "%lu", &num); 206d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna gLog_level.ncix_log_level = (unsigned char)num; 207d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna gLog_level.ncir_log_level = (unsigned char)num; 208d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna } 209d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna} 210d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 211d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna/****************************************************************************** 212d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Function phNxpLog_InitializeLogLevel 213d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 214d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Description Initialize and get log level of module from libnfc-nxp.conf 215d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna *or 216d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Android runtime properties. 217d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * The Android property nfc.nxp_global_log_level is to 218d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * define log level for all modules. Modules log level will 219d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna *overwide global level. 220d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * The Android property will overwide the level 221d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * in libnfc-nxp.conf 222d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 223d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Android property names: 224d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * nfc.nxp_log_level_global * defines log level for all 225d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna *modules 226d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * nfc.nxp_log_level_extns * extensions module log 227d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * nfc.nxp_log_level_hal * Hal module log 228d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * nfc.nxp_log_level_dnld * firmware download module 229d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna *log 230d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * nfc.nxp_log_level_tml * TML module log 231d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * nfc.nxp_log_level_nci * NCI transaction log 232d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 233d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Log Level values: 234d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * NXPLOG_LOG_SILENT_LOGLEVEL 0 * No trace to show 235d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * NXPLOG_LOG_ERROR_LOGLEVEL 1 * Show Error trace 236d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna *only 237d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * NXPLOG_LOG_WARN_LOGLEVEL 2 * Show Warning 238d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna *trace and Error trace 239d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * NXPLOG_LOG_DEBUG_LOGLEVEL 3 * Show all traces 240d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 241d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * Returns void 242d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna * 243d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna ******************************************************************************/ 244d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khannavoid phNxpLog_InitializeLogLevel(void) { 245d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna uint8_t level = phNxpLog_SetGlobalLogLevel(); 246d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna phNxpLog_SetHALLogLevel(level); 247d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna phNxpLog_SetExtnsLogLevel(level); 248d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna phNxpLog_SetTmlLogLevel(level); 249d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna phNxpLog_SetDnldLogLevel(level); 250d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna phNxpLog_SetNciTxLogLevel(level); 251d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna 252d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna ALOGD_IF(nfc_debug_enabled, 253d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna "%s: global =%u, Fwdnld =%u, extns =%u, \ 254d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna hal =%u, tml =%u, ncir =%u, \ 255d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna ncix =%u", 256d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna __func__, gLog_level.global_log_level, gLog_level.dnld_log_level, 257d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna gLog_level.extns_log_level, gLog_level.hal_log_level, 258d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna gLog_level.tml_log_level, gLog_level.ncir_log_level, 259d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna gLog_level.ncix_log_level); 260d5f65e1c5b5c40f2e45f585d5796c7fd53ccd87aLove Khanna} 261