Home | History | Annotate | Download | only in include
      1 /******************************************************************************
      2  *
      3  *  Copyright (C) 2012-2014 Broadcom Corporation
      4  *
      5  *  Licensed under the Apache License, Version 2.0 (the "License");
      6  *  you may not use this file except in compliance with the License.
      7  *  You may obtain a copy of the License at:
      8  *
      9  *  http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  *
     17  ******************************************************************************/
     18 
     19 #ifndef NFC_HAL_TARGET_H
     20 #define NFC_HAL_TARGET_H
     21 
     22 #include "data_types.h"
     23 #include "gki.h"
     24 
     25 /****************************************************************************
     26 ** NCI related configuration
     27 ****************************************************************************/
     28 
     29 /* Initial Max Control Packet Payload Size (until receiving payload size in
     30  * INIT_CORE_RSP) */
     31 #ifndef NFC_HAL_NCI_INIT_CTRL_PAYLOAD_SIZE
     32 #define NFC_HAL_NCI_INIT_CTRL_PAYLOAD_SIZE 0xFF
     33 #endif
     34 
     35 /* Number of bytes to reserve in front of NCI messages (e.g. for transport
     36  * header) */
     37 #ifndef NFC_HAL_NCI_MSG_OFFSET_SIZE
     38 #define NFC_HAL_NCI_MSG_OFFSET_SIZE 1
     39 #endif
     40 
     41 /* NFC-WAKE */
     42 #ifndef NFC_HAL_LP_NFC_WAKE_GPIO
     43 #define NFC_HAL_LP_NFC_WAKE_GPIO UPIO_GENERAL3
     44 #endif
     45 
     46 /* NFCC snooze mode idle timeout before deassert NFC_WAKE in ms */
     47 #ifndef NFC_HAL_LP_IDLE_TIMEOUT
     48 #define NFC_HAL_LP_IDLE_TIMEOUT 100
     49 #endif
     50 
     51 /* NFC snooze mode */
     52 #ifndef NFC_HAL_LP_SNOOZE_MODE
     53 #define NFC_HAL_LP_SNOOZE_MODE NFC_HAL_LP_SNOOZE_MODE_UART
     54 #endif
     55 
     56 /* Idle Threshold Host in 100ms unit */
     57 #ifndef NFC_HAL_LP_IDLE_THRESHOLD_HOST
     58 #define NFC_HAL_LP_IDLE_THRESHOLD_HOST 0
     59 #endif
     60 
     61 /* Idle Threshold HC in 100ms unit */
     62 #ifndef NFC_HAL_LP_IDLE_THRESHOLD_HC
     63 #define NFC_HAL_LP_IDLE_THRESHOLD_HC 0
     64 #endif
     65 
     66 /* Default NFCC power-up baud rate */
     67 #ifndef NFC_HAL_DEFAULT_BAUD
     68 #define NFC_HAL_DEFAULT_BAUD USERIAL_BAUD_115200
     69 #endif
     70 
     71 /* time (in ms) between power off and on NFCC */
     72 #ifndef NFC_HAL_POWER_CYCLE_DELAY
     73 #define NFC_HAL_POWER_CYCLE_DELAY 100
     74 #endif
     75 
     76 /* time (in ms) between power off and on NFCC */
     77 #ifndef NFC_HAL_NFCC_ENABLE_TIMEOUT
     78 #define NFC_HAL_NFCC_ENABLE_TIMEOUT 1000
     79 #endif
     80 
     81 #ifndef NFC_HAL_PRM_DEBUG
     82 #define NFC_HAL_PRM_DEBUG TRUE
     83 #endif
     84 
     85 /* max patch data length (Can be overridden by platform for ACL HCI command
     86  * size) */
     87 #ifndef NFC_HAL_PRM_HCD_CMD_MAXLEN
     88 #define NFC_HAL_PRM_HCD_CMD_MAXLEN 250
     89 #endif
     90 
     91 /* Require PreI2C patch by default */
     92 #ifndef NFC_HAL_PRE_I2C_PATCH_INCLUDED
     93 #define NFC_HAL_PRE_I2C_PATCH_INCLUDED TRUE
     94 #endif
     95 
     96 /* Mininum payload size for SPD NCI commands (used to validate
     97  * HAL_NfcPrmSetSpdNciCmdPayloadSize) */
     98 /* Default is 32, as required by the NCI specifications; however this value may
     99  * be          */
    100 /* over-riden for platforms that have transport packet limitations */
    101 #ifndef NFC_HAL_PRM_MIN_NCI_CMD_PAYLOAD_SIZE
    102 #define NFC_HAL_PRM_MIN_NCI_CMD_PAYLOAD_SIZE (32)
    103 #endif
    104 
    105 /* amount of time to wait for authenticating/committing patch to NVM */
    106 #ifndef NFC_HAL_PRM_COMMIT_DELAY
    107 #define NFC_HAL_PRM_COMMIT_DELAY (30000)
    108 #endif
    109 
    110 /* amount of time to wait after downloading preI2C patch before downloading
    111  * LPM/FPM patch */
    112 #ifndef NFC_HAL_PRM_POST_I2C_FIX_DELAY
    113 #define NFC_HAL_PRM_POST_I2C_FIX_DELAY (200)
    114 #endif
    115 
    116 /* NFCC will respond to more than one technology during listen discovery  */
    117 #ifndef NFC_HAL_DM_MULTI_TECH_RESP
    118 #define NFC_HAL_DM_MULTI_TECH_RESP TRUE
    119 #endif
    120 
    121 /* Data rate for 15693 command/response, it must be same as
    122  * RW_I93_FLAG_DATA_RATE in nfc_target.h */
    123 #define NFC_HAL_I93_FLAG_DATA_RATE_LOW 0x00
    124 #define NFC_HAL_I93_FLAG_DATA_RATE_HIGH 0x02
    125 
    126 #ifndef NFC_HAL_I93_FLAG_DATA_RATE
    127 #define NFC_HAL_I93_FLAG_DATA_RATE NFC_HAL_I93_FLAG_DATA_RATE_HIGH
    128 #endif
    129 
    130 /* NFC HAL HCI */
    131 #ifndef NFC_HAL_HCI_INCLUDED
    132 #define NFC_HAL_HCI_INCLUDED TRUE
    133 #endif
    134 
    135 /* Quick Timer */
    136 #ifndef QUICK_TIMER_TICKS_PER_SEC
    137 #define QUICK_TIMER_TICKS_PER_SEC 100 /* 10ms timer */
    138 #endif
    139 
    140 #ifndef NFC_HAL_SHARED_TRANSPORT_ENABLED
    141 #define NFC_HAL_SHARED_TRANSPORT_ENABLED FALSE
    142 #endif
    143 
    144 /* Enable verbose tracing by default */
    145 #ifndef NFC_HAL_TRACE_VERBOSE
    146 #define NFC_HAL_TRACE_VERBOSE TRUE
    147 #endif
    148 
    149 #ifndef NFC_HAL_INITIAL_TRACE_LEVEL
    150 #define NFC_HAL_INITIAL_TRACE_LEVEL 5
    151 #endif
    152 
    153 /* Map NFC serial port to USERIAL_PORT_6 by default */
    154 #ifndef USERIAL_NFC_PORT
    155 #define USERIAL_NFC_PORT (USERIAL_PORT_6)
    156 #endif
    157 
    158 /* Restore NFCC baud rate to default on shutdown if baud rate was updated */
    159 #ifndef NFC_HAL_RESTORE_BAUD_ON_SHUTDOWN
    160 #define NFC_HAL_RESTORE_BAUD_ON_SHUTDOWN TRUE
    161 #endif
    162 
    163 /* Enable protocol tracing by default */
    164 #ifndef NFC_HAL_TRACE_PROTOCOL
    165 #define NFC_HAL_TRACE_PROTOCOL TRUE
    166 #endif
    167 
    168 /* Legacy protocol-trace-enable macro */
    169 #ifndef BT_TRACE_PROTOCOL
    170 #define BT_TRACE_PROTOCOL (NFC_HAL_TRACE_PROTOCOL)
    171 #endif
    172 
    173 /* Enable HAL tracing by default */
    174 #ifndef NFC_HAL_USE_TRACES
    175 #define NFC_HAL_USE_TRACES TRUE
    176 #endif
    177 
    178 /* HAL trace macros */
    179 #if (NFC_HAL_USE_TRACES == TRUE)
    180 #define NCI_TRACE_0(l, t, m) \
    181   LogMsg((TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t)), (m))
    182 #define NCI_TRACE_1(l, t, m, p1) \
    183   LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t), (m), (uintptr_t)(p1))
    184 #define NCI_TRACE_2(l, t, m, p1, p2)                            \
    185   LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t), (m), \
    186          (uintptr_t)(p1), (uintptr_t)(p2))
    187 #define NCI_TRACE_3(l, t, m, p1, p2, p3)                        \
    188   LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t), (m), \
    189          (uintptr_t)(p1), (uintptr_t)(p2), (uintptr_t)(p3))
    190 #define NCI_TRACE_4(l, t, m, p1, p2, p3, p4)                    \
    191   LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t), (m), \
    192          (uintptr_t)(p1), (uintptr_t)(p2), (uintptr_t)(p3), (uintptr_t)(p4))
    193 #define NCI_TRACE_5(l, t, m, p1, p2, p3, p4, p5)                             \
    194   LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t), (m),              \
    195          (uintptr_t)(p1), (uintptr_t)(p2), (uintptr_t)(p3), (uintptr_t)(p4), \
    196          (uintptr_t)(p5))
    197 #define NCI_TRACE_6(l, t, m, p1, p2, p3, p4, p5, p6)                         \
    198   LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t), (m),              \
    199          (uintptr_t)(p1), (uintptr_t)(p2), (uintptr_t)(p3), (uintptr_t)(p4), \
    200          (uintptr_t)(p5), (uintptr_t)(p6))
    201 
    202 #define HAL_TRACE_ERROR0(m)                              \
    203   {                                                      \
    204     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR)  \
    205       NCI_TRACE_0(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m); \
    206   }
    207 #define HAL_TRACE_ERROR1(m, p1)                              \
    208   {                                                          \
    209     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR)      \
    210       NCI_TRACE_1(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m, p1); \
    211   }
    212 #define HAL_TRACE_ERROR2(m, p1, p2)                              \
    213   {                                                              \
    214     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR)          \
    215       NCI_TRACE_2(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m, p1, p2); \
    216   }
    217 #define HAL_TRACE_ERROR3(m, p1, p2, p3)                              \
    218   {                                                                  \
    219     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR)              \
    220       NCI_TRACE_3(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m, p1, p2, p3); \
    221   }
    222 #define HAL_TRACE_ERROR4(m, p1, p2, p3, p4)                              \
    223   {                                                                      \
    224     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR)                  \
    225       NCI_TRACE_4(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m, p1, p2, p3, p4); \
    226   }
    227 #define HAL_TRACE_ERROR5(m, p1, p2, p3, p4, p5)                              \
    228   {                                                                          \
    229     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR)                      \
    230       NCI_TRACE_5(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m, p1, p2, p3, p4, p5); \
    231   }
    232 #define HAL_TRACE_ERROR6(m, p1, p2, p3, p4, p5, p6)                         \
    233   {                                                                         \
    234     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR)                     \
    235       NCI_TRACE_6(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m, p1, p2, p3, p4, p5, \
    236                   p6);                                                      \
    237   }
    238 
    239 #define HAL_TRACE_WARNING0(m)                              \
    240   {                                                        \
    241     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING)  \
    242       NCI_TRACE_0(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m); \
    243   }
    244 #define HAL_TRACE_WARNING1(m, p1)                              \
    245   {                                                            \
    246     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING)      \
    247       NCI_TRACE_1(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m, p1); \
    248   }
    249 #define HAL_TRACE_WARNING2(m, p1, p2)                              \
    250   {                                                                \
    251     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING)          \
    252       NCI_TRACE_2(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m, p1, p2); \
    253   }
    254 #define HAL_TRACE_WARNING3(m, p1, p2, p3)                              \
    255   {                                                                    \
    256     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING)              \
    257       NCI_TRACE_3(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m, p1, p2, p3); \
    258   }
    259 #define HAL_TRACE_WARNING4(m, p1, p2, p3, p4)                              \
    260   {                                                                        \
    261     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING)                  \
    262       NCI_TRACE_4(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m, p1, p2, p3, p4); \
    263   }
    264 #define HAL_TRACE_WARNING5(m, p1, p2, p3, p4, p5)                              \
    265   {                                                                            \
    266     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING)                      \
    267       NCI_TRACE_5(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m, p1, p2, p3, p4, p5); \
    268   }
    269 #define HAL_TRACE_WARNING6(m, p1, p2, p3, p4, p5, p6)                         \
    270   {                                                                           \
    271     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING)                     \
    272       NCI_TRACE_6(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m, p1, p2, p3, p4, p5, \
    273                   p6);                                                        \
    274   }
    275 
    276 #define HAL_TRACE_API0(m)                              \
    277   {                                                    \
    278     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API)  \
    279       NCI_TRACE_0(TRACE_LAYER_HAL, TRACE_TYPE_API, m); \
    280   }
    281 #define HAL_TRACE_API1(m, p1)                              \
    282   {                                                        \
    283     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API)      \
    284       NCI_TRACE_1(TRACE_LAYER_HAL, TRACE_TYPE_API, m, p1); \
    285   }
    286 #define HAL_TRACE_API2(m, p1, p2)                              \
    287   {                                                            \
    288     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API)          \
    289       NCI_TRACE_2(TRACE_LAYER_HAL, TRACE_TYPE_API, m, p1, p2); \
    290   }
    291 #define HAL_TRACE_API3(m, p1, p2, p3)                              \
    292   {                                                                \
    293     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API)              \
    294       NCI_TRACE_3(TRACE_LAYER_HAL, TRACE_TYPE_API, m, p1, p2, p3); \
    295   }
    296 #define HAL_TRACE_API4(m, p1, p2, p3, p4)                              \
    297   {                                                                    \
    298     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API)                  \
    299       NCI_TRACE_4(TRACE_LAYER_HAL, TRACE_TYPE_API, m, p1, p2, p3, p4); \
    300   }
    301 #define HAL_TRACE_API5(m, p1, p2, p3, p4, p5)                              \
    302   {                                                                        \
    303     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API)                      \
    304       NCI_TRACE_5(TRACE_LAYER_HAL, TRACE_TYPE_API, m, p1, p2, p3, p4, p5); \
    305   }
    306 #define HAL_TRACE_API6(m, p1, p2, p3, p4, p5, p6)                              \
    307   {                                                                            \
    308     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API)                          \
    309       NCI_TRACE_6(TRACE_LAYER_HAL, TRACE_TYPE_API, m, p1, p2, p3, p4, p5, p6); \
    310   }
    311 
    312 #define HAL_TRACE_EVENT0(m)                              \
    313   {                                                      \
    314     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT)  \
    315       NCI_TRACE_0(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m); \
    316   }
    317 #define HAL_TRACE_EVENT1(m, p1)                              \
    318   {                                                          \
    319     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT)      \
    320       NCI_TRACE_1(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m, p1); \
    321   }
    322 #define HAL_TRACE_EVENT2(m, p1, p2)                              \
    323   {                                                              \
    324     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT)          \
    325       NCI_TRACE_2(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m, p1, p2); \
    326   }
    327 #define HAL_TRACE_EVENT3(m, p1, p2, p3)                              \
    328   {                                                                  \
    329     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT)              \
    330       NCI_TRACE_3(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m, p1, p2, p3); \
    331   }
    332 #define HAL_TRACE_EVENT4(m, p1, p2, p3, p4)                              \
    333   {                                                                      \
    334     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT)                  \
    335       NCI_TRACE_4(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m, p1, p2, p3, p4); \
    336   }
    337 #define HAL_TRACE_EVENT5(m, p1, p2, p3, p4, p5)                              \
    338   {                                                                          \
    339     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT)                      \
    340       NCI_TRACE_5(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m, p1, p2, p3, p4, p5); \
    341   }
    342 #define HAL_TRACE_EVENT6(m, p1, p2, p3, p4, p5, p6)                         \
    343   {                                                                         \
    344     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT)                     \
    345       NCI_TRACE_6(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m, p1, p2, p3, p4, p5, \
    346                   p6);                                                      \
    347   }
    348 
    349 #define HAL_TRACE_DEBUG0(m)                              \
    350   {                                                      \
    351     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG)  \
    352       NCI_TRACE_0(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m); \
    353   }
    354 #define HAL_TRACE_DEBUG1(m, p1)                              \
    355   {                                                          \
    356     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG)      \
    357       NCI_TRACE_1(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m, p1); \
    358   }
    359 #define HAL_TRACE_DEBUG2(m, p1, p2)                              \
    360   {                                                              \
    361     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG)          \
    362       NCI_TRACE_2(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m, p1, p2); \
    363   }
    364 #define HAL_TRACE_DEBUG3(m, p1, p2, p3)                              \
    365   {                                                                  \
    366     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG)              \
    367       NCI_TRACE_3(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m, p1, p2, p3); \
    368   }
    369 #define HAL_TRACE_DEBUG4(m, p1, p2, p3, p4)                              \
    370   {                                                                      \
    371     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG)                  \
    372       NCI_TRACE_4(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m, p1, p2, p3, p4); \
    373   }
    374 #define HAL_TRACE_DEBUG5(m, p1, p2, p3, p4, p5)                              \
    375   {                                                                          \
    376     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG)                      \
    377       NCI_TRACE_5(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m, p1, p2, p3, p4, p5); \
    378   }
    379 #define HAL_TRACE_DEBUG6(m, p1, p2, p3, p4, p5, p6)                         \
    380   {                                                                         \
    381     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG)                     \
    382       NCI_TRACE_6(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m, p1, p2, p3, p4, p5, \
    383                   p6);                                                      \
    384   }
    385 
    386 #else /* Disable HAL tracing */
    387 
    388 #define HAL_TRACE_0(l, t, m)
    389 #define HAL_TRACE_1(l, t, m, p1)
    390 #define HAL_TRACE_2(l, t, m, p1, p2)
    391 #define HAL_TRACE_3(l, t, m, p1, p2, p3)
    392 #define HAL_TRACE_4(l, t, m, p1, p2, p3, p4)
    393 #define HAL_TRACE_5(l, t, m, p1, p2, p3, p4, p5)
    394 #define HAL_TRACE_6(l, t, m, p1, p2, p3, p4, p5, p6)
    395 
    396 #define HAL_TRACE_ERROR0(m)
    397 #define HAL_TRACE_ERROR1(m, p1)
    398 #define HAL_TRACE_ERROR2(m, p1, p2)
    399 #define HAL_TRACE_ERROR3(m, p1, p2, p3)
    400 #define HAL_TRACE_ERROR4(m, p1, p2, p3, p4)
    401 #define HAL_TRACE_ERROR5(m, p1, p2, p3, p4, p5)
    402 #define HAL_TRACE_ERROR6(m, p1, p2, p3, p4, p5, p6)
    403 
    404 #define HAL_TRACE_WARNING0(m)
    405 #define HAL_TRACE_WARNING1(m, p1)
    406 #define HAL_TRACE_WARNING2(m, p1, p2)
    407 #define HAL_TRACE_WARNING3(m, p1, p2, p3)
    408 #define HAL_TRACE_WARNING4(m, p1, p2, p3, p4)
    409 #define HAL_TRACE_WARNING5(m, p1, p2, p3, p4, p5)
    410 #define HAL_TRACE_WARNING6(m, p1, p2, p3, p4, p5, p6)
    411 
    412 #define HAL_TRACE_API0(m)
    413 #define HAL_TRACE_API1(m, p1)
    414 #define HAL_TRACE_API2(m, p1, p2)
    415 #define HAL_TRACE_API3(m, p1, p2, p3)
    416 #define HAL_TRACE_API4(m, p1, p2, p3, p4)
    417 #define HAL_TRACE_API5(m, p1, p2, p3, p4, p5)
    418 #define HAL_TRACE_API6(m, p1, p2, p3, p4, p5, p6)
    419 
    420 #define HAL_TRACE_EVENT0(m)
    421 #define HAL_TRACE_EVENT1(m, p1)
    422 #define HAL_TRACE_EVENT2(m, p1, p2)
    423 #define HAL_TRACE_EVENT3(m, p1, p2, p3)
    424 #define HAL_TRACE_EVENT4(m, p1, p2, p3, p4)
    425 #define HAL_TRACE_EVENT5(m, p1, p2, p3, p4, p5)
    426 #define HAL_TRACE_EVENT6(m, p1, p2, p3, p4, p5, p6)
    427 
    428 #define HAL_TRACE_DEBUG0(m)
    429 #define HAL_TRACE_DEBUG1(m, p1)
    430 #define HAL_TRACE_DEBUG2(m, p1, p2)
    431 #define HAL_TRACE_DEBUG3(m, p1, p2, p3)
    432 #define HAL_TRACE_DEBUG4(m, p1, p2, p3, p4)
    433 #define HAL_TRACE_DEBUG5(m, p1, p2, p3, p4, p5)
    434 #define HAL_TRACE_DEBUG6(m, p1, p2, p3, p4, p5, p6)
    435 #endif /* Disable HAL tracing */
    436 
    437 #endif /* GKI_TARGET_H */
    438