Remove deprecated UNUSED macro (1/5)

Generated automatically with coccinelle

/* This rule matches functions with arguments
 * that have an UNUSED(arg) in the body.
 */
@r1@
identifier arg;
identifier fn;
type t;
parameter list[n] P;
@@

fn(P, const t arg) { ...
 UNUSED(arg);
 ...
 }

/* This rule removes the UNUSED line, and adds
 * UNUSED_ATTR to the parameter list.
 */
@depends on r1@
identifier r1.arg;
identifier r1.fn;
type r1.t;
parameter list[r1.n] r1.P;
typedef UNUSED_ATTR;
@@

fn(P,
- const t arg
+ UNUSED_ATTR GETRIDOFTHISCOMMA, const t arg
 ) { ...
-UNUSED(arg);
 ...
 }

Test: mma -j32

Change-Id: Idcaadd688d669d484e557becd050e69454508f3c
diff --git a/audio_a2dp_hw/audio_a2dp_hw.cc b/audio_a2dp_hw/audio_a2dp_hw.cc
index 3ac5069..d16e169 100644
--- a/audio_a2dp_hw/audio_a2dp_hw.cc
+++ b/audio_a2dp_hw/audio_a2dp_hw.cc
@@ -145,14 +145,12 @@
 
 /* logs timestamp with microsec precision
    pprev is optional in case a dedicated diff is required */
-static void ts_log(const char *tag, int val, struct timespec *pprev_opt)
+static void ts_log(UNUSED_ATTR const char *tag, UNUSED_ATTR int val, struct timespec *pprev_opt)
 {
     struct timespec now;
     static struct timespec prev = {0,0};
     unsigned long long now_us;
     unsigned long long diff_us;
-    UNUSED(tag);
-    UNUSED(val);
 
     clock_gettime(CLOCK_MONOTONIC, &now);
 
@@ -683,10 +681,9 @@
     return (audio_format_t)out->common.cfg.format;
 }
 
-static int out_set_format(struct audio_stream *stream, audio_format_t format)
+static int out_set_format(UNUSED_ATTR struct audio_stream *stream,
+                          UNUSED_ATTR audio_format_t format)
 {
-    UNUSED(stream);
-    UNUSED(format);
     DEBUG("setting format not yet supported (0x%x)", format);
     return -ENOSYS;
 }
@@ -708,9 +705,8 @@
     return retVal;
 }
 
-static int out_dump(const struct audio_stream *stream, int fd)
+static int out_dump(UNUSED_ATTR const struct audio_stream *stream, int fd)
 {
-    UNUSED(stream);
     UNUSED(fd);
     FNLOG();
     return 0;
@@ -760,9 +756,8 @@
     return status;
 }
 
-static char * out_get_parameters(const struct audio_stream *stream, const char *keys)
+static char * out_get_parameters(UNUSED_ATTR const struct audio_stream *stream, const char *keys)
 {
-    UNUSED(stream);
     UNUSED(keys);
     FNLOG();
 
@@ -787,12 +782,9 @@
     return (latency_us / 1000) + 200;
 }
 
-static int out_set_volume(struct audio_stream_out *stream, float left,
-                          float right)
+static int out_set_volume(UNUSED_ATTR struct audio_stream_out *stream, UNUSED_ATTR float left,
+                          UNUSED_ATTR float right)
 {
-    UNUSED(stream);
-    UNUSED(left);
-    UNUSED(right);
 
     FNLOG();
 
@@ -842,18 +834,16 @@
     return 0;
 }
 
-static int out_add_audio_effect(const struct audio_stream *stream, effect_handle_t effect)
+static int out_add_audio_effect(UNUSED_ATTR const struct audio_stream *stream, effect_handle_t effect)
 {
-    UNUSED(stream);
     UNUSED(effect);
 
     FNLOG();
     return 0;
 }
 
-static int out_remove_audio_effect(const struct audio_stream *stream, effect_handle_t effect)
+static int out_remove_audio_effect(UNUSED_ATTR const struct audio_stream *stream, effect_handle_t effect)
 {
-    UNUSED(stream);
     UNUSED(effect);
 
     FNLOG();
@@ -884,9 +874,8 @@
         return -1;
 }
 
-static size_t in_get_buffer_size(const struct audio_stream *stream)
+static size_t in_get_buffer_size(UNUSED_ATTR const struct audio_stream *stream)
 {
-    UNUSED(stream);
 
     FNLOG();
     return 320;
@@ -900,18 +889,16 @@
     return in->common.cfg.channel_flags;
 }
 
-static audio_format_t in_get_format(const struct audio_stream *stream)
+static audio_format_t in_get_format(UNUSED_ATTR const struct audio_stream *stream)
 {
-    UNUSED(stream);
 
     FNLOG();
     return AUDIO_FORMAT_PCM_16_BIT;
 }
 
-static int in_set_format(struct audio_stream *stream, audio_format_t format)
+static int in_set_format(UNUSED_ATTR struct audio_stream *stream,
+                         UNUSED_ATTR audio_format_t format)
 {
-    UNUSED(stream);
-    UNUSED(format);
 
     FNLOG();
     if (format == AUDIO_FORMAT_PCM_16_BIT)
@@ -920,46 +907,41 @@
         return -1;
 }
 
-static int in_standby(struct audio_stream *stream)
+static int in_standby(UNUSED_ATTR struct audio_stream *stream)
 {
-    UNUSED(stream);
 
     FNLOG();
     return 0;
 }
 
-static int in_dump(const struct audio_stream *stream, int fd)
+static int in_dump(UNUSED_ATTR const struct audio_stream *stream, int fd)
 {
-    UNUSED(stream);
     UNUSED(fd);
 
     FNLOG();
     return 0;
 }
 
-static int in_set_parameters(struct audio_stream *stream, const char *kvpairs)
+static int in_set_parameters(UNUSED_ATTR struct audio_stream *stream,
+                             UNUSED_ATTR const char *kvpairs)
 {
-    UNUSED(stream);
-    UNUSED(kvpairs);
 
     FNLOG();
     return 0;
 }
 
-static char * in_get_parameters(const struct audio_stream *stream,
+static char * in_get_parameters(UNUSED_ATTR const struct audio_stream *stream,
                                 const char *keys)
 {
-    UNUSED(stream);
     UNUSED(keys);
 
     FNLOG();
     return strdup("");
 }
 
-static int in_set_gain(struct audio_stream_in *stream, float gain)
+static int in_set_gain(UNUSED_ATTR struct audio_stream_in *stream,
+                       UNUSED_ATTR float gain)
 {
-    UNUSED(stream);
-    UNUSED(gain);
 
     FNLOG();
     return 0;
@@ -1031,26 +1013,23 @@
     return bytes;
 }
 
-static uint32_t in_get_input_frames_lost(struct audio_stream_in *stream)
+static uint32_t in_get_input_frames_lost(UNUSED_ATTR struct audio_stream_in *stream)
 {
-    UNUSED(stream);
 
     FNLOG();
     return 0;
 }
 
-static int in_add_audio_effect(const struct audio_stream *stream, effect_handle_t effect)
+static int in_add_audio_effect(UNUSED_ATTR const struct audio_stream *stream, effect_handle_t effect)
 {
-    UNUSED(stream);
     UNUSED(effect);
 
     FNLOG();
     return 0;
 }
 
-static int in_remove_audio_effect(const struct audio_stream *stream, effect_handle_t effect)
+static int in_remove_audio_effect(UNUSED_ATTR const struct audio_stream *stream, effect_handle_t effect)
 {
-    UNUSED(stream);
     UNUSED(effect);
 
     FNLOG();
@@ -1059,21 +1038,17 @@
 }
 
 static int adev_open_output_stream(struct audio_hw_device *dev,
-                                   audio_io_handle_t handle,
-                                   audio_devices_t devices,
-                                   audio_output_flags_t flags,
+                                   UNUSED_ATTR audio_io_handle_t handle,
+                                   UNUSED_ATTR audio_devices_t devices,
+                                   UNUSED_ATTR audio_output_flags_t flags,
                                    struct audio_config *config,
                                    struct audio_stream_out **stream_out,
-                                   const char *address)
+                                   UNUSED_ATTR const char *address)
 
 {
     struct a2dp_audio_device *a2dp_dev = (struct a2dp_audio_device *)dev;
     struct a2dp_stream_out *out;
     int ret = 0;
-    UNUSED(address);
-    UNUSED(handle);
-    UNUSED(devices);
-    UNUSED(flags);
 
     INFO("opening output");
 
@@ -1179,11 +1154,9 @@
     return retval;
 }
 
-static char * adev_get_parameters(const struct audio_hw_device *dev,
+static char * adev_get_parameters(UNUSED_ATTR const struct audio_hw_device *dev,
                                   const char *keys)
 {
-    UNUSED(dev);
-
     FNLOG();
 
     std::unordered_map<std::string, std::string> params =
@@ -1193,17 +1166,16 @@
     return strdup("");
 }
 
-static int adev_init_check(const struct audio_hw_device *dev)
+static int adev_init_check(UNUSED_ATTR const struct audio_hw_device *dev)
 {
-    UNUSED(dev);
+    
     FNLOG();
 
     return 0;
 }
 
-static int adev_set_voice_volume(struct audio_hw_device *dev, float volume)
+static int adev_set_voice_volume(UNUSED_ATTR struct audio_hw_device *dev, float volume)
 {
-    UNUSED(dev);
     UNUSED(volume);
 
     FNLOG();
@@ -1211,9 +1183,8 @@
     return -ENOSYS;
 }
 
-static int adev_set_master_volume(struct audio_hw_device *dev, float volume)
+static int adev_set_master_volume(UNUSED_ATTR struct audio_hw_device *dev, float volume)
 {
-    UNUSED(dev);
     UNUSED(volume);
 
     FNLOG();
@@ -1221,9 +1192,8 @@
     return -ENOSYS;
 }
 
-static int adev_set_mode(struct audio_hw_device *dev, audio_mode_t mode)
+static int adev_set_mode(UNUSED_ATTR struct audio_hw_device *dev, audio_mode_t mode)
 {
-    UNUSED(dev);
     UNUSED(mode);
 
     FNLOG();
@@ -1231,9 +1201,8 @@
     return 0;
 }
 
-static int adev_set_mic_mute(struct audio_hw_device *dev, bool state)
+static int adev_set_mic_mute(UNUSED_ATTR struct audio_hw_device *dev, bool state)
 {
-    UNUSED(dev);
     UNUSED(state);
 
     FNLOG();
@@ -1241,9 +1210,8 @@
     return -ENOSYS;
 }
 
-static int adev_get_mic_mute(const struct audio_hw_device *dev, bool *state)
+static int adev_get_mic_mute(UNUSED_ATTR const struct audio_hw_device *dev, bool *state)
 {
-    UNUSED(dev);
     UNUSED(state);
 
     FNLOG();
@@ -1251,10 +1219,9 @@
     return -ENOSYS;
 }
 
-static size_t adev_get_input_buffer_size(const struct audio_hw_device *dev,
+static size_t adev_get_input_buffer_size(UNUSED_ATTR const struct audio_hw_device *dev,
                                          const struct audio_config *config)
 {
-    UNUSED(dev);
     UNUSED(config);
 
     FNLOG();
@@ -1263,22 +1230,17 @@
 }
 
 static int adev_open_input_stream(struct audio_hw_device *dev,
-                                  audio_io_handle_t handle,
-                                  audio_devices_t devices,
-                                  struct audio_config *config,
+                                  UNUSED_ATTR audio_io_handle_t handle,
+                                  UNUSED_ATTR audio_devices_t devices,
+                                  UNUSED_ATTR struct audio_config *config,
                                   struct audio_stream_in **stream_in,
-                                  audio_input_flags_t flags,
-                                  const char *address,
+                                  UNUSED_ATTR audio_input_flags_t flags,
+                                  UNUSED_ATTR const char *address,
                                   audio_source_t source)
 {
     struct a2dp_audio_device *a2dp_dev = (struct a2dp_audio_device *)dev;
     struct a2dp_stream_in *in;
     int ret;
-    UNUSED(address);
-    UNUSED(config);
-    UNUSED(devices);
-    UNUSED(flags);
-    UNUSED(handle);
     UNUSED(source);
 
     FNLOG();
@@ -1355,9 +1317,8 @@
     DEBUG("done");
 }
 
-static int adev_dump(const audio_hw_device_t *device, int fd)
+static int adev_dump(UNUSED_ATTR const audio_hw_device_t *device, int fd)
 {
-    UNUSED(device);
     UNUSED(fd);
 
     FNLOG();
diff --git a/bta/ag/bta_ag_act.cc b/bta/ag/bta_ag_act.cc
index bdadf65..6cb3d13 100644
--- a/bta/ag/bta_ag_act.cc
+++ b/bta/ag/bta_ag_act.cc
@@ -331,10 +331,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_disc_fail(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_disc_fail(tBTA_AG_SCB *p_scb,
+                      UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
-    UNUSED(p_data);
-
     /* reopen registered servers */
     bta_ag_start_servers(p_scb, p_scb->reg_services);
 
@@ -373,10 +372,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_rfc_fail(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_rfc_fail(tBTA_AG_SCB *p_scb, UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
-    UNUSED(p_data);
-
     /* reinitialize stuff */
     p_scb->conn_handle = 0;
     p_scb->conn_service = 0;
@@ -408,12 +405,12 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_rfc_close(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_rfc_close(tBTA_AG_SCB *p_scb,
+                      UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
     tBTA_AG_CLOSE    close;
     tBTA_SERVICE_MASK services;
     int i, num_active_conn = 0;
-    UNUSED(p_data);
 
     /* reinitialize stuff */
     p_scb->conn_service = 0;
@@ -640,11 +637,11 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_rfc_data(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_rfc_data(tBTA_AG_SCB *p_scb,
+                     UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
     uint16_t  len;
     char    buf[BTA_AG_RFC_READ_MAX];
-    UNUSED(p_data);
 
     memset(buf, 0, BTA_AG_RFC_READ_MAX);
 
@@ -811,10 +808,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_svc_conn_open(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_svc_conn_open(tBTA_AG_SCB *p_scb,
+                          UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
     tBTA_AG_CONN evt;
-    UNUSED(p_data);
 
     if (!p_scb->svc_conn)
     {
@@ -884,10 +881,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_rcvd_slc_ready(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_rcvd_slc_ready(tBTA_AG_SCB *p_scb,
+                           UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
-    UNUSED(p_data);
-
     APPL_TRACE_DEBUG("bta_ag_rcvd_slc_ready: handle = %d", bta_ag_scb_to_idx(p_scb));
 
     if (bta_ag_cb.parse_mode == BTA_AG_PASS_THROUGH)
diff --git a/bta/ag/bta_ag_cmd.cc b/bta/ag/bta_ag_cmd.cc
index f577b44..1ab50cd 100644
--- a/bta/ag/bta_ag_cmd.cc
+++ b/bta/ag/bta_ag_cmd.cc
@@ -644,11 +644,10 @@
                     if idx doesn't exist/1st character of argument is not a digit
 **
 *******************************************************************************/
-static uint8_t bta_ag_parse_chld(tBTA_AG_SCB *p_scb, char *p_s)
+static uint8_t bta_ag_parse_chld(UNUSED_ATTR tBTA_AG_SCB *p_scb, char *p_s)
 {
     uint8_t retval = 0;
     int16_t idx = -1;
-    UNUSED(p_scb);
 
     if (!isdigit(p_s[0]))
     {
@@ -2092,10 +2091,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_send_ring(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_send_ring(tBTA_AG_SCB *p_scb, UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
-    UNUSED(p_data);
-
 #if (BTA_AG_MULTI_RESULT_INCLUDED == TRUE)
     tBTA_AG_MULTI_RESULT_CB m_res_cb;
 
diff --git a/bta/ag/bta_ag_main.cc b/bta/ag/bta_ag_main.cc
index 7b9a0e3..6089081 100644
--- a/bta/ag/bta_ag_main.cc
+++ b/bta/ag/bta_ag_main.cc
@@ -578,13 +578,11 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_collision_cback (tBTA_SYS_CONN_STATUS status, uint8_t id,
-                                    uint8_t app_id, BD_ADDR peer_addr)
+void bta_ag_collision_cback (UNUSED_ATTR tBTA_SYS_CONN_STATUS status, uint8_t id,
+                                    UNUSED_ATTR uint8_t app_id, BD_ADDR peer_addr)
 {
     uint16_t  handle;
     tBTA_AG_SCB *p_scb;
-    UNUSED(status);
-    UNUSED(app_id);
 
     /* Check if we have opening scb for the peer device. */
     handle = bta_ag_idx_by_bdaddr (peer_addr);
diff --git a/bta/ag/bta_ag_rfc.cc b/bta/ag/bta_ag_rfc.cc
index a399e9b..3d0faea 100644
--- a/bta/ag/bta_ag_rfc.cc
+++ b/bta/ag/bta_ag_rfc.cc
@@ -85,10 +85,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_ag_port_cback(uint32_t code, uint16_t port_handle, uint16_t handle)
+static void bta_ag_port_cback(UNUSED_ATTR uint32_t code, uint16_t port_handle,
+                              uint16_t handle)
 {
     tBTA_AG_SCB *p_scb;
-    UNUSED(code);
 
     if ((p_scb = bta_ag_scb_by_idx(handle)) != NULL)
     {
@@ -188,10 +188,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-static int bta_ag_data_cback(uint16_t port_handle, void *p_data, uint16_t len, uint16_t handle)
+static int bta_ag_data_cback(UNUSED_ATTR uint16_t port_handle, void *p_data,
+                             uint16_t len, uint16_t handle)
 {
-    UNUSED(port_handle);
-
     /* call data call-out directly */
     bta_ag_co_tx_write(handle, (uint8_t *) p_data, len);
     return 0;
@@ -394,10 +393,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_rfc_do_close(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_rfc_do_close(tBTA_AG_SCB *p_scb,
+                         UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
-    UNUSED(p_data);
-
     if (p_scb->conn_handle) {
         RFCOMM_RemoveConnection(p_scb->conn_handle);
     } else {
diff --git a/bta/ag/bta_ag_sco.cc b/bta/ag/bta_ag_sco.cc
index 19d37a3..0e9423e 100644
--- a/bta/ag/bta_ag_sco.cc
+++ b/bta/ag/bta_ag_sco.cc
@@ -1321,9 +1321,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_sco_listen(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_sco_listen(tBTA_AG_SCB *p_scb,
+                       UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
-    UNUSED(p_data);
     bta_ag_sco_event(p_scb, BTA_AG_SCO_LISTEN_E);
 }
 
@@ -1337,10 +1337,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_sco_open(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_sco_open(tBTA_AG_SCB *p_scb,
+                     UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
     uint8_t event;
-    UNUSED(p_data);
 
     /* if another scb using sco, this is a transfer */
     if (bta_ag_cb.sco.p_curr_scb != NULL && bta_ag_cb.sco.p_curr_scb != p_scb)
@@ -1366,10 +1366,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_sco_close(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_sco_close(tBTA_AG_SCB *p_scb,
+                      UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
-    UNUSED(p_data);
-
     /* if scb is in use */
 #if (BTM_WBS_INCLUDED == TRUE)
     /* sco_idx is not allocated in SCO_CODEC_ST, we still need to move to listening state. */
@@ -1419,10 +1418,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_sco_shutdown(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_sco_shutdown(tBTA_AG_SCB *p_scb,
+                         UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
-    UNUSED(p_data);
-
     bta_ag_sco_event(p_scb, BTA_AG_SCO_SHUTDOWN_E);
 }
 
@@ -1436,10 +1434,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_sco_conn_open(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_sco_conn_open(tBTA_AG_SCB *p_scb,
+                          UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
-    UNUSED(p_data);
-
     bta_ag_sco_event(p_scb, BTA_AG_SCO_CONN_OPEN_E);
 
     bta_sys_sco_open(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr);
@@ -1476,10 +1473,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_sco_conn_close(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_sco_conn_close(tBTA_AG_SCB *p_scb,
+                           UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
     uint16_t handle = bta_ag_scb_to_idx(p_scb);
-    UNUSED(p_data);
 
     /* clear current scb */
     bta_ag_cb.sco.p_curr_scb = NULL;
@@ -1631,11 +1628,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_ci_sco_data(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_ci_sco_data(UNUSED_ATTR tBTA_AG_SCB *p_scb,
+                        UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
-    UNUSED(p_scb);
-    UNUSED(p_data);
-
 #if (BTM_SCO_HCI_INCLUDED == TRUE)
     bta_ag_sco_event(p_scb, BTA_AG_SCO_CI_DATA_E);
 #endif
diff --git a/bta/ag/bta_ag_sdp.cc b/bta/ag/bta_ag_sdp.cc
index 0bf3e07..29178e8 100644
--- a/bta/ag/bta_ag_sdp.cc
+++ b/bta/ag/bta_ag_sdp.cc
@@ -249,13 +249,13 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_del_records(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_del_records(tBTA_AG_SCB *p_scb,
+                        UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
     tBTA_AG_SCB         *p = &bta_ag_cb.scb[0];
     tBTA_SERVICE_MASK   services;
     tBTA_SERVICE_MASK   others = 0;
     int                 i;
-    UNUSED(p_data);
 
     /* get services of all other registered servers */
     for (i = 0; i < BTA_AG_NUM_IDX; i++, p++)
@@ -486,8 +486,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_ag_free_db(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
+void bta_ag_free_db(tBTA_AG_SCB *p_scb,
+                    UNUSED_ATTR tBTA_AG_DATA *p_data)
 {
-    UNUSED(p_data);
     osi_free_and_reset((void **)&p_scb->p_disc_db);
 }
diff --git a/bta/av/bta_av_aact.cc b/bta/av/bta_av_aact.cc
index 7007165..1885450 100644
--- a/bta/av/bta_av_aact.cc
+++ b/bta/av/bta_av_aact.cc
@@ -64,7 +64,7 @@
 /* ACL quota we are letting FW use for A2DP Offload Tx. */
 #define BTA_AV_A2DP_OFFLOAD_XMIT_QUOTA      4
 
-static void bta_av_st_rc_timer(tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data);
+static void bta_av_st_rc_timer(tBTA_AV_SCB *p_scb, UNUSED_ATTR tBTA_AV_DATA *p_data);
 
 /* state machine states */
 enum
@@ -337,10 +337,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_av_st_rc_timer(tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+static void bta_av_st_rc_timer(tBTA_AV_SCB *p_scb,
+                               UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
-    UNUSED(p_data);
-
     APPL_TRACE_DEBUG("%s: rc_handle:%d, use_rc: %d", __func__,
         p_scb->rc_handle, p_scb->use_rc);
     /* for outgoing RC connection as INT/CT */
@@ -775,11 +774,11 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_switch_role (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_switch_role (tBTA_AV_SCB *p_scb,
+                         UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
     tBTA_AV_RS_RES      switch_res = BTA_AV_RS_NONE;
     tBTA_AV_API_OPEN  *p_buf = &p_scb->q_info.open;
-    UNUSED(p_data);
 
     APPL_TRACE_DEBUG("%s: wait:x%x", __func__, p_scb->wait);
     if (p_scb->wait & BTA_AV_WAIT_ROLE_SW_RES_START)
@@ -1061,11 +1060,11 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_cleanup(tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_cleanup(tBTA_AV_SCB *p_scb,
+                    UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
     tBTA_AV_CONN_CHG msg;
     uint8_t role = BTA_AV_ROLE_AD_INT;
-    UNUSED(p_data);
 
     APPL_TRACE_DEBUG("%s", __func__);
 
@@ -1125,9 +1124,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_free_sdb(tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_free_sdb(tBTA_AV_SCB *p_scb,
+                     UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
-    UNUSED(p_data);
     p_scb->sdp_discovery_started = false;
 }
 
@@ -1140,7 +1139,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_config_ind (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_config_ind (tBTA_AV_SCB *p_scb,
+                        UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
     tBTA_AV_CI_SETCONFIG setconfig;
     tAVDT_SEP_INFO       *p_info;
@@ -1148,7 +1148,6 @@
     uint8_t   psc_mask = (p_evt_cfg->psc_mask | p_scb->cfg.psc_mask);
     uint8_t local_sep;    /* sep type of local handle on which connection was received */
     tBTA_AV_STR_MSG  *p_msg = (tBTA_AV_STR_MSG *)p_data;
-    UNUSED(p_data);
 
     local_sep = bta_av_get_scb_sep_type(p_scb, p_msg->handle);
     p_scb->avdt_label = p_data->str_msg.msg.hdr.label;
@@ -1228,10 +1227,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_disconnect_req (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_disconnect_req (tBTA_AV_SCB *p_scb,
+                            UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
     tBTA_AV_RCB *p_rcb;
-    UNUSED(p_data);
 
     APPL_TRACE_DEBUG("%s: conn_lcb: 0x%x", __func__, bta_av_cb.conn_lcb);
 
@@ -1539,10 +1538,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_do_close (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_do_close (tBTA_AV_SCB *p_scb,
+		      UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
-    UNUSED(p_data);
-
     /* stop stream if started */
     if (p_scb->co_started)
     {
@@ -1574,10 +1572,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_connect_req(tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_connect_req(tBTA_AV_SCB *p_scb,
+                        UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
-    UNUSED(p_data);
-
     p_scb->sdp_discovery_started = false;
     if (p_scb->coll_mask & BTA_AV_COLL_INC_TMR)
     {
@@ -1778,10 +1775,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_set_use_rc (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_set_use_rc (tBTA_AV_SCB *p_scb,
+                        UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
-    UNUSED(p_data);
-
     p_scb->use_rc = true;
 }
 
@@ -1794,10 +1790,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_cco_close (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_cco_close (tBTA_AV_SCB *p_scb,
+                       UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
     uint16_t mtu;
-    UNUSED(p_data);
 
     mtu = bta_av_chk_mtu(p_scb, BTA_AV_MAX_A2DP_MTU);
 
@@ -1980,10 +1976,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_discover_req (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_discover_req (tBTA_AV_SCB *p_scb,
+                          UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
-    UNUSED(p_data);
-
     /* send avdtp discover request */
 
     AVDT_DiscoverReq(p_scb->peer_addr, p_scb->sep_info, BTA_AV_NUM_SEPS, bta_av_dt_cback[p_scb->hdi]);
@@ -2232,7 +2227,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_data_path (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_data_path (tBTA_AV_SCB *p_scb,
+                       UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
     BT_HDR  *p_buf = NULL;
     uint32_t  timestamp;
@@ -2240,7 +2236,6 @@
     tA2DP_CODEC_TYPE codec_type = A2DP_GetCodecType(p_scb->cfg.codec_info);
     uint8_t   m_pt = 0x60 | codec_type;
     tAVDT_DATA_OPT_MASK     opt;
-    UNUSED(p_data);
 
     if (p_scb->cong)
         return;
@@ -2507,10 +2502,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_start_failed (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_start_failed (tBTA_AV_SCB *p_scb,
+                          UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
-    UNUSED(p_data);
-
     if(p_scb->started == false && p_scb->co_started == false)
     {
         bta_sys_idle(BTA_ID_AV, bta_av_cb.audio_open_cnt, p_scb->peer_addr);
@@ -2599,10 +2593,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_clr_cong (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_clr_cong (tBTA_AV_SCB *p_scb,
+		      UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
-    UNUSED(p_data);
-
     if(p_scb->co_started)
         p_scb->cong = false;
 }
@@ -2705,10 +2698,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_rcfg_str_ok (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_rcfg_str_ok (tBTA_AV_SCB *p_scb,
+                         UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
     tBTA_AV_RECONFIG    evt;
-    UNUSED(p_data);
 
     p_scb->l2c_cid      = AVDT_GetL2CapChannel(p_scb->avdt_handle);
     APPL_TRACE_DEBUG("%s: l2c_cid: %d", __func__, p_scb->l2c_cid);
@@ -2781,10 +2774,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_rcfg_connect (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_rcfg_connect (tBTA_AV_SCB *p_scb,
+                          UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
-    UNUSED(p_data);
-
     p_scb->cong    = false;
     p_scb->num_recfg++;
     APPL_TRACE_DEBUG("%s: num_recfg: %d", __func__, p_scb->num_recfg);
@@ -2806,10 +2798,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_rcfg_discntd (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_rcfg_discntd (tBTA_AV_SCB *p_scb,
+                          UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
     tBTA_AV_RECONFIG    evt;
-    UNUSED(p_data);
 
     APPL_TRACE_DEBUG("%s: num_recfg: %d", __func__, p_scb->num_recfg);
     p_scb->num_recfg++;
@@ -2922,10 +2914,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_rcfg_open (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_rcfg_open (tBTA_AV_SCB *p_scb,
+                       UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
-    UNUSED(p_data);
-
     APPL_TRACE_DEBUG("%s: num_disc_snks = %d", __func__, p_scb->num_disc_snks);
 
     if (p_scb->num_disc_snks == 0)
@@ -2960,10 +2951,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_security_rej (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_security_rej (tBTA_AV_SCB *p_scb,
+			  UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
-    UNUSED(p_data);
-
     AVDT_SecurityRsp(p_scb->avdt_handle, p_scb->avdt_label, AVDT_ERR_BAD_STATE,
                      NULL, 0);
 }
@@ -2978,12 +2968,12 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_chk_2nd_start (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
+void bta_av_chk_2nd_start (tBTA_AV_SCB *p_scb,
+                           UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
     tBTA_AV_SCB *p_scbi;
     int i;
     bool new_started = false;
-    UNUSED(p_data);
 
     if ((p_scb->chnl == BTA_AV_CHNL_AUDIO) && (bta_av_cb.audio_open_cnt >= 2))
     {
diff --git a/bta/av/bta_av_act.cc b/bta/av/bta_av_act.cc
index fdb6c6f..a2ab111 100644
--- a/bta/av/bta_av_act.cc
+++ b/bta/av/bta_av_act.cc
@@ -194,12 +194,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_av_avrc_sdp_cback(uint16_t status)
+static void bta_av_avrc_sdp_cback(UNUSED_ATTR uint16_t status)
 {
     BT_HDR *p_msg = (BT_HDR *)osi_malloc(sizeof(BT_HDR));
 
-    UNUSED(status);
-
     p_msg->event = BTA_AV_SDP_AVRC_DISC_EVT;
 
     bta_sys_sendmsg(p_msg);
@@ -214,10 +212,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_av_rc_ctrl_cback(uint8_t handle, uint8_t event, uint16_t result, BD_ADDR peer_addr)
+static void bta_av_rc_ctrl_cback(uint8_t handle, uint8_t event,
+                                 UNUSED_ATTR uint16_t result, BD_ADDR peer_addr)
 {
     uint16_t msg_event = 0;
-    UNUSED(result);
 
     APPL_TRACE_EVENT("%s handle: %d event=0x%x", __func__, handle, event);
     if (event == AVRC_OPEN_IND_EVT)
@@ -732,9 +730,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_rc_free_rsp (tBTA_AV_CB *p_cb, tBTA_AV_DATA *p_data)
+void bta_av_rc_free_rsp (UNUSED_ATTR tBTA_AV_CB *p_cb, tBTA_AV_DATA *p_data)
 {
-    UNUSED(p_cb);
     osi_free_and_reset((void **)&p_data->api_meta_rsp.p_pkt);
 }
 
@@ -747,9 +744,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_rc_free_browse_msg (tBTA_AV_CB *p_cb, tBTA_AV_DATA *p_data)
+void bta_av_rc_free_browse_msg (UNUSED_ATTR tBTA_AV_CB *p_cb, tBTA_AV_DATA *p_data)
 {
-    UNUSED(p_cb);
     if (p_data->rc_msg.opcode == AVRC_OP_BROWSE)
     {
         osi_free_and_reset((void **)&p_data->rc_msg.msg.browse.p_browse_pkt);
@@ -1484,11 +1480,11 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_disable(tBTA_AV_CB *p_cb, tBTA_AV_DATA *p_data)
+void bta_av_disable(tBTA_AV_CB *p_cb,
+                    UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
     BT_HDR  hdr;
     uint16_t  xx;
-    UNUSED(p_data);
 
     p_cb->disabling = true;
 
@@ -1663,14 +1659,13 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_signalling_timer(tBTA_AV_DATA *p_data)
+void bta_av_signalling_timer(UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
     tBTA_AV_CB   *p_cb = &bta_av_cb;
     int     xx;
     uint8_t   mask;
     tBTA_AV_LCB *p_lcb = NULL;
     tBTA_AV_PEND pend;
-    UNUSED(p_data);
 
     APPL_TRACE_DEBUG("%s", __func__);
     for(xx=0; xx<BTA_AV_NUM_LINKS; xx++)
@@ -1916,7 +1911,7 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_av_rc_disc_done(tBTA_AV_DATA *p_data)
+void bta_av_rc_disc_done(UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
     tBTA_AV_CB   *p_cb = &bta_av_cb;
     tBTA_AV_SCB  *p_scb = NULL;
@@ -1925,7 +1920,6 @@
     tBTA_AV_RC_FEAT rc_feat;
     uint8_t               rc_handle;
     tBTA_AV_FEAT        peer_features = 0;  /* peer features mask */
-    UNUSED(p_data);
 
     APPL_TRACE_DEBUG("%s bta_av_rc_disc_done disc:x%x", __func__, p_cb->disc);
     if (!p_cb->disc)
diff --git a/bta/av/bta_av_main.cc b/bta/av/bta_av_main.cc
index 7a6489e..b498ed7 100644
--- a/bta/av/bta_av_main.cc
+++ b/bta/av/bta_av_main.cc
@@ -160,9 +160,10 @@
 #endif
 static void bta_av_api_to_ssm(tBTA_AV_DATA *p_data);
 
-static void bta_av_sco_chg_cback(tBTA_SYS_CONN_STATUS status, uint8_t id, uint8_t
-                                 app_id, BD_ADDR peer_addr);
-static void bta_av_sys_rs_cback (tBTA_SYS_CONN_STATUS status,uint8_t id, uint8_t app_id, BD_ADDR peer_addr);
+static void bta_av_sco_chg_cback(tBTA_SYS_CONN_STATUS status, uint8_t id,
+                                 uint8_t app_id, BD_ADDR peer_addr);
+static void bta_av_sys_rs_cback (tBTA_SYS_CONN_STATUS status,uint8_t id,
+                                 uint8_t app_id, BD_ADDR peer_addr);
 
 /* action functions */
 const tBTA_AV_NSM_ACT bta_av_nsm_act[] =
@@ -358,11 +359,11 @@
 
 /*******************************************************************************
 *******************************************************************************/
-void bta_av_conn_cback(uint8_t handle, BD_ADDR bd_addr, uint8_t event, tAVDT_CTRL *p_data)
+void bta_av_conn_cback(UNUSED_ATTR uint8_t handle, BD_ADDR bd_addr,
+                       uint8_t event, tAVDT_CTRL *p_data)
 {
     uint16_t  evt = 0;
     tBTA_AV_SCB *p_scb = NULL;
-    UNUSED(handle);
 
 #if (BTA_AR_INCLUDED == TRUE)
     if (event == BTA_AR_AVDT_CONN_EVT ||
@@ -410,12 +411,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_av_a2dp_report_cback(uint8_t handle, AVDT_REPORT_TYPE type,
-                                    tAVDT_REPORT_DATA *p_data)
+static void bta_av_a2dp_report_cback(UNUSED_ATTR uint8_t handle, UNUSED_ATTR AVDT_REPORT_TYPE type,
+                                    UNUSED_ATTR tAVDT_REPORT_DATA *p_data)
 {
-    UNUSED(handle);
-    UNUSED(type);
-    UNUSED(p_data);
     /* Do not need to handle report data for now.
      * This empty function is here for conformance reasons. */
 }
@@ -771,9 +769,8 @@
 **
 *******************************************************************************/
 #if (AVDT_REPORTING == TRUE)
-static void bta_av_rpc_conn(tBTA_AV_DATA *p_data)
+static void bta_av_rpc_conn(UNUSED_ATTR tBTA_AV_DATA *p_data)
 {
-    UNUSED(p_data);
 }
 #endif
 
@@ -881,13 +878,13 @@
 ** Returns          (BTA_SYS_ROLE_CHANGE, new_role, hci_status, p_bda)
 **
 *******************************************************************************/
-static void bta_av_sys_rs_cback (tBTA_SYS_CONN_STATUS status,uint8_t id, uint8_t app_id, BD_ADDR peer_addr)
+static void bta_av_sys_rs_cback (UNUSED_ATTR tBTA_SYS_CONN_STATUS status,uint8_t id,
+                                 uint8_t app_id, BD_ADDR peer_addr)
 {
     int         i;
     tBTA_AV_SCB *p_scb = NULL;
     uint8_t       cur_role;
     uint8_t       peer_idx = 0;
-    UNUSED(status);
 
     APPL_TRACE_DEBUG("bta_av_sys_rs_cback: %d", bta_av_cb.rs_idx);
     for(i=0; i<BTA_AV_NUM_STRS; i++)
@@ -960,14 +957,13 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_av_sco_chg_cback(tBTA_SYS_CONN_STATUS status, uint8_t id, uint8_t
-                                 app_id, BD_ADDR peer_addr)
+static void bta_av_sco_chg_cback(tBTA_SYS_CONN_STATUS status,
+                                 uint8_t id,UNUSED_ATTR uint8_t app_id,
+                                 UNUSED_ATTR BD_ADDR peer_addr)
 {
     tBTA_AV_SCB *p_scb;
     int     i;
     tBTA_AV_API_STOP stop;
-    UNUSED(app_id);
-    UNUSED(peer_addr);
 
     APPL_TRACE_DEBUG("bta_av_sco_chg_cback:%d status:%d", id, status);
     if(id)
@@ -1107,13 +1103,13 @@
 ** Returns          The smallest mtu of the connected audio channels
 **
 *******************************************************************************/
-uint16_t bta_av_chk_mtu(tBTA_AV_SCB *p_scb, uint16_t mtu)
+uint16_t bta_av_chk_mtu(tBTA_AV_SCB *p_scb,
+                        UNUSED_ATTR uint16_t mtu)
 {
     uint16_t ret_mtu = BTA_AV_MAX_A2DP_MTU;
     tBTA_AV_SCB *p_scbi;
     int i;
     uint8_t   mask;
-    UNUSED(mtu);
 
     /* TODO_MV mess with the mtu according to the number of EDR/non-EDR headsets */
     if(p_scb->chnl == BTA_AV_CHNL_AUDIO)
diff --git a/bta/dm/bta_dm_act.cc b/bta/dm/bta_dm_act.cc
index a888043..d4d70dd 100644
--- a/bta/dm/bta_dm_act.cc
+++ b/bta/dm/bta_dm_act.cc
@@ -52,15 +52,18 @@
 
 static void bta_dm_inq_results_cb (tBTM_INQ_RESULTS *p_inq, uint8_t *p_eir);
 static void bta_dm_inq_cmpl_cb (void * p_result);
-static void bta_dm_service_search_remname_cback (BD_ADDR bd_addr, DEV_CLASS dc, BD_NAME bd_name);
+static void bta_dm_service_search_remname_cback(BD_ADDR bd_addr, DEV_CLASS dc, BD_NAME bd_name);
 static void bta_dm_remname_cback (tBTM_REMOTE_DEV_NAME *p_remote_name);
 static void bta_dm_find_services ( BD_ADDR bd_addr);
 static void bta_dm_discover_next_device(void);
 static void bta_dm_sdp_callback (uint16_t sdp_status);
-static uint8_t bta_dm_authorize_cback (BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NAME bd_name, uint8_t *service_name, uint8_t service_id, bool is_originator);
+static uint8_t bta_dm_authorize_cback (BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NAME bd_name,
+                                       uint8_t *service_name, uint8_t service_id, bool is_originator);
 static uint8_t bta_dm_pin_cback (BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NAME bd_name, bool min_16_digit);
-static uint8_t bta_dm_new_link_key_cback(BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NAME bd_name, LINK_KEY key, uint8_t key_type);
-static uint8_t bta_dm_authentication_complete_cback(BD_ADDR bd_addr, DEV_CLASS dev_class,BD_NAME bd_name, int result);
+static uint8_t bta_dm_new_link_key_cback(BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NAME bd_name,
+                                         LINK_KEY key, uint8_t key_type);
+static uint8_t bta_dm_authentication_complete_cback(BD_ADDR bd_addr, DEV_CLASS dev_class,
+                                                    BD_NAME bd_name, int result);
 static void bta_dm_local_name_cback(BD_ADDR bd_addr);
 static bool bta_dm_check_av(uint16_t event);
 static void bta_dm_bl_change_cback (tBTM_BL_EVENT_DATA *p_data);
@@ -463,10 +466,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_dm_disable (tBTA_DM_MSG *p_data)
+void bta_dm_disable (UNUSED_ATTR tBTA_DM_MSG *p_data)
 {
-    UNUSED(p_data);
-
     /* Set l2cap idle timeout to 0 (so BTE immediately disconnects ACL link after last channel is closed) */
     L2CA_SetIdleTimeoutByBdAddr((uint8_t *)BT_BD_ANY, 0, BT_TRANSPORT_BR_EDR);
     L2CA_SetIdleTimeoutByBdAddr((uint8_t *)BT_BD_ANY, 0, BT_TRANSPORT_LE);
@@ -1134,9 +1135,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_dm_loc_oob(tBTA_DM_MSG *p_data)
+void bta_dm_loc_oob(UNUSED_ATTR tBTA_DM_MSG *p_data)
 {
-    UNUSED(p_data);
     BTM_ReadLocalOobData();
 }
 
@@ -1242,9 +1242,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_dm_search_cancel (tBTA_DM_MSG *p_data)
+void bta_dm_search_cancel (UNUSED_ATTR tBTA_DM_MSG *p_data)
 {
-    UNUSED(p_data);
+    
     tBTA_DM_MSG *p_msg;
 
     if (BTM_IsInquiryActive())
@@ -1941,9 +1941,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_dm_free_sdp_db (tBTA_DM_MSG *p_data)
+void bta_dm_free_sdp_db (UNUSED_ATTR tBTA_DM_MSG *p_data)
 {
-    UNUSED(p_data);
     osi_free_and_reset((void **)&bta_dm_search_cb.p_sdp_db);
 }
 
@@ -1992,9 +1991,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_dm_search_clear_queue(tBTA_DM_MSG *p_data)
+void bta_dm_search_clear_queue(UNUSED_ATTR tBTA_DM_MSG *p_data)
 {
-    UNUSED(p_data);
     osi_free_and_reset((void **)&bta_dm_search_cb.p_search_queue);
 }
 
@@ -2007,9 +2005,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_dm_search_cancel_cmpl (tBTA_DM_MSG *p_data)
+void bta_dm_search_cancel_cmpl (UNUSED_ATTR tBTA_DM_MSG *p_data)
 {
-    UNUSED(p_data);
     if(bta_dm_search_cb.p_search_queue)
     {
         bta_sys_sendmsg(bta_dm_search_cb.p_search_queue);
@@ -2028,10 +2025,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_dm_search_cancel_transac_cmpl(tBTA_DM_MSG *p_data)
+void bta_dm_search_cancel_transac_cmpl(UNUSED_ATTR tBTA_DM_MSG *p_data)
 {
-    UNUSED(p_data);
-
     osi_free_and_reset((void **)&bta_dm_search_cb.p_sdp_db);
     bta_dm_search_cancel_notify(NULL);
 }
@@ -2046,9 +2041,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_dm_search_cancel_notify (tBTA_DM_MSG *p_data)
+void bta_dm_search_cancel_notify (UNUSED_ATTR tBTA_DM_MSG *p_data)
 {
-    UNUSED(p_data);
     if (bta_dm_search_cb.p_search_cback)
     {
         bta_dm_search_cb.p_search_cback(BTA_DM_SEARCH_CANCEL_CMPL_EVT, NULL);
@@ -2479,11 +2473,11 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_dm_service_search_remname_cback (BD_ADDR bd_addr, DEV_CLASS dc, BD_NAME bd_name)
+static void bta_dm_service_search_remname_cback (BD_ADDR bd_addr,
+                                                 UNUSED_ATTR DEV_CLASS dc, BD_NAME bd_name)
 {
     tBTM_REMOTE_DEV_NAME    rem_name;
     tBTM_STATUS             btm_status;
-    UNUSED(dc);
 
     APPL_TRACE_DEBUG("bta_dm_service_search_remname_cback name=<%s>", bd_name);
 
@@ -2574,12 +2568,11 @@
 **
 *******************************************************************************/
 static uint8_t bta_dm_authorize_cback (BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NAME bd_name,
-                                     uint8_t *service_name, uint8_t service_id, bool is_originator)
+                                     UNUSED_ATTR uint8_t *service_name, uint8_t service_id,
+                                       UNUSED_ATTR bool is_originator)
 {
     tBTA_DM_SEC sec_event;
     uint8_t       index = 1;
-    UNUSED(service_name);
-    UNUSED(is_originator);
 
     bdcpy(sec_event.authorize.bd_addr, bd_addr);
     memcpy(sec_event.authorize.dev_class, dev_class, DEV_CLASS_LEN);
@@ -2730,13 +2723,12 @@
 ** Returns          void
 **
 *******************************************************************************/
-static uint8_t  bta_dm_new_link_key_cback(BD_ADDR bd_addr, DEV_CLASS dev_class,
+static uint8_t  bta_dm_new_link_key_cback(BD_ADDR bd_addr, UNUSED_ATTR DEV_CLASS dev_class,
                                         BD_NAME bd_name, LINK_KEY key, uint8_t key_type)
 {
     tBTA_DM_SEC sec_event;
     tBTA_DM_AUTH_CMPL *p_auth_cmpl;
     uint8_t             event;
-    UNUSED(dev_class);
 
     memset (&sec_event, 0, sizeof(tBTA_DM_SEC));
 
@@ -2789,10 +2781,11 @@
 ** Returns          void
 **
 *******************************************************************************/
-static uint8_t bta_dm_authentication_complete_cback(BD_ADDR bd_addr, DEV_CLASS dev_class,BD_NAME bd_name, int result)
+static uint8_t bta_dm_authentication_complete_cback(BD_ADDR bd_addr,
+                                                    UNUSED_ATTR DEV_CLASS dev_class,BD_NAME bd_name,
+                                                    int result)
 {
     tBTA_DM_SEC sec_event;
-    UNUSED(dev_class);
 
     if(result != BTM_SUCCESS)
     {
@@ -2981,10 +2974,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_dm_local_name_cback(uint8_t *p_name)
+static void bta_dm_local_name_cback(UNUSED_ATTR uint8_t *p_name)
 {
     tBTA_DM_SEC sec_event;
-    UNUSED(p_name);
 
     sec_event.enable.status = BTA_SUCCESS;
 
@@ -3054,9 +3046,8 @@
 ** Returns
 **
 *******************************************************************************/
-static void bta_dm_rs_cback (tBTM_ROLE_SWITCH_CMPL *p1)
+static void bta_dm_rs_cback (UNUSED_ATTR tBTM_ROLE_SWITCH_CMPL *p1)
 {
-    UNUSED(p1);
     APPL_TRACE_WARNING("bta_dm_rs_cback:%d", bta_dm_cb.rs_event);
     if(bta_dm_cb.rs_event == BTA_DM_API_SEARCH_EVT)
     {
@@ -4093,9 +4084,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_dm_enable_test_mode(tBTA_DM_MSG *p_data)
+void bta_dm_enable_test_mode(UNUSED_ATTR tBTA_DM_MSG *p_data)
 {
-    UNUSED(p_data);
     BTM_EnableTestMode();
 }
 
@@ -4109,9 +4099,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_dm_disable_test_mode(tBTA_DM_MSG *p_data)
+void bta_dm_disable_test_mode(UNUSED_ATTR tBTA_DM_MSG *p_data)
 {
-    UNUSED(p_data);
     BTM_DeviceReset(NULL);
 }
 
@@ -4145,12 +4134,12 @@
 ** Returns         None
 **
 *******************************************************************************/
-void bta_dm_encrypt_cback(BD_ADDR bd_addr, tBT_TRANSPORT transport, void *p_ref_data, tBTM_STATUS result)
+void bta_dm_encrypt_cback(BD_ADDR bd_addr, tBT_TRANSPORT transport,
+                          UNUSED_ATTR void *p_ref_data, tBTM_STATUS result)
 {
     tBTA_STATUS   bta_status = BTA_SUCCESS;
     tBTA_DM_ENCRYPT_CBACK *p_callback = NULL;
     uint8_t   i ;
-    UNUSED(p_ref_data);
 
     for (i=0; i<bta_dm_cb.device_list.count; i++)
     {
@@ -4831,9 +4820,9 @@
 ** Parameters:
 **
 *******************************************************************************/
-void bta_dm_ble_disable_batch_scan (tBTA_DM_MSG *p_data)
+void bta_dm_ble_disable_batch_scan (UNUSED_ATTR tBTA_DM_MSG *p_data)
 {
-    UNUSED(p_data);
+    
     tBTM_STATUS btm_status = 0;
     tBTM_BLE_VSC_CB cmn_ble_vsc_cb;
 
@@ -5309,10 +5298,8 @@
 ** Parameters:
 **
 *******************************************************************************/
-void bta_dm_close_gatt_conn(tBTA_DM_MSG *p_data)
+void bta_dm_close_gatt_conn(UNUSED_ATTR tBTA_DM_MSG *p_data)
 {
-    UNUSED(p_data);
-
     if (bta_dm_search_cb.conn_id != BTA_GATT_INVALID_CONN_ID)
         BTA_GATTC_Close(bta_dm_search_cb.conn_id);
 
diff --git a/bta/gatt/bta_gattc_act.cc b/bta/gatt/bta_gattc_act.cc
index ba37ab2..231df51 100644
--- a/bta/gatt/bta_gattc_act.cc
+++ b/bta/gatt/bta_gattc_act.cc
@@ -442,10 +442,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_gattc_cancel_open_error(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
+void bta_gattc_cancel_open_error(tBTA_GATTC_CLCB *p_clcb,
+                                 UNUSED_ATTR tBTA_GATTC_DATA *p_data)
 {
     tBTA_GATTC cb_data;
-    UNUSED(p_data);
 
     cb_data.status=BTA_GATT_ERROR;
 
@@ -462,10 +462,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_gattc_open_error(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
+void bta_gattc_open_error(tBTA_GATTC_CLCB *p_clcb,
+                          UNUSED_ATTR tBTA_GATTC_DATA *p_data)
 {
-    UNUSED(p_data);
-
     APPL_TRACE_ERROR("Connection already opened. wrong state");
 
     bta_gattc_send_open_cback(p_clcb->p_rcb,
@@ -484,10 +483,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_gattc_open_fail(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
+void bta_gattc_open_fail(tBTA_GATTC_CLCB *p_clcb,
+                         UNUSED_ATTR tBTA_GATTC_DATA *p_data)
 {
-    UNUSED(p_data);
-
     bta_gattc_send_open_cback(p_clcb->p_rcb,
                               BTA_GATT_ERROR,
                               p_clcb->bda,
@@ -635,10 +633,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_gattc_cancel_open_ok(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
+void bta_gattc_cancel_open_ok(tBTA_GATTC_CLCB *p_clcb,
+                              UNUSED_ATTR tBTA_GATTC_DATA *p_data)
 {
     tBTA_GATTC          cb_data;
-    UNUSED(p_data);
 
     if ( p_clcb->p_rcb->p_cback )
     {
@@ -906,10 +904,9 @@
 ** Returns          None.
 **
 *******************************************************************************/
-void bta_gattc_restart_discover(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
+void bta_gattc_restart_discover(tBTA_GATTC_CLCB *p_clcb,
+                                UNUSED_ATTR tBTA_GATTC_DATA *p_data)
 {
-    UNUSED(p_data);
-
     p_clcb->status      = BTA_GATT_CANCEL;
     p_clcb->auto_update = BTA_GATTC_DISC_WAITING;
 }
@@ -951,10 +948,9 @@
 ** Returns          None.
 **
 *******************************************************************************/
-void bta_gattc_start_discover(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
+void bta_gattc_start_discover(tBTA_GATTC_CLCB *p_clcb,
+                              UNUSED_ATTR tBTA_GATTC_DATA *p_data)
 {
-    UNUSED(p_data);
-
     APPL_TRACE_DEBUG("bta_gattc_start_discover conn_id=%d p_clcb->p_srcb->state = %d ",
         p_clcb->bta_conn_id, p_clcb->p_srcb->state);
 
@@ -1015,10 +1011,10 @@
 ** Returns          None.
 **
 *******************************************************************************/
-void bta_gattc_disc_cmpl(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
+void bta_gattc_disc_cmpl(tBTA_GATTC_CLCB *p_clcb,
+                         UNUSED_ATTR tBTA_GATTC_DATA *p_data)
 {
     tBTA_GATTC_DATA *p_q_cmd = p_clcb->p_q_cmd;
-    UNUSED(p_data);
 
     APPL_TRACE_DEBUG("bta_gattc_disc_cmpl conn_id=%d",p_clcb->bta_conn_id);
 
@@ -1396,10 +1392,8 @@
 ** Returns          None.
 **
 *******************************************************************************/
-void  bta_gattc_ignore_op_cmpl(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
+void  bta_gattc_ignore_op_cmpl(UNUSED_ATTR tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
 {
-    UNUSED(p_clcb);
-
     /* receive op complete when discovery is started, ignore the response,
         and wait for discovery finish and resent */
     APPL_TRACE_DEBUG("bta_gattc_ignore_op_cmpl op = %d", p_data->hdr.layer_specific);
@@ -1455,10 +1449,9 @@
 ** Returns          None.
 **
 *******************************************************************************/
-void bta_gattc_fail(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
+void bta_gattc_fail(tBTA_GATTC_CLCB *p_clcb,
+                    UNUSED_ATTR tBTA_GATTC_DATA *p_data)
 {
-    UNUSED(p_data);
-
     if (p_clcb->status == BTA_GATT_OK)
     {
         APPL_TRACE_ERROR("operation not supported at current state [%d]", p_clcb->state);
diff --git a/bta/gatt/bta_gattc_cache.cc b/bta/gatt/bta_gattc_cache.cc
index 121a540..ccd4af6 100644
--- a/bta/gatt/bta_gattc_cache.cc
+++ b/bta/gatt/bta_gattc_cache.cc
@@ -610,12 +610,12 @@
 
 }
 static bool bta_gattc_srvc_in_list(tBTA_GATTC_SERV *p_srvc_cb, uint16_t s_handle,
-                                      uint16_t e_handle, tBT_UUID uuid)
+                                      uint16_t e_handle,
+                                   UNUSED_ATTR tBT_UUID uuid)
 {
     tBTA_GATTC_ATTR_REC *p_rec = NULL;
     uint8_t   i;
     bool exist_srvc = false;
-    UNUSED(uuid);
 
     if (!GATT_HANDLE_IS_VALID(s_handle) || !GATT_HANDLE_IS_VALID(e_handle))
     {
diff --git a/bta/gatt/bta_gatts_act.cc b/bta/gatt/bta_gatts_act.cc
index 3a2fdc7..415bd59 100644
--- a/bta/gatt/bta_gatts_act.cc
+++ b/bta/gatt/bta_gatts_act.cc
@@ -257,10 +257,8 @@
 ** Returns          none.
 **
 *******************************************************************************/
-void bta_gatts_start_if(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg)
+void bta_gatts_start_if(UNUSED_ATTR tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg)
 {
-    UNUSED(p_cb);
-
     if (bta_gatts_find_app_rcb_by_app_if(p_msg->int_start_if.server_if))
     {
         GATT_StartIf(p_msg->int_start_if.server_if);
@@ -360,11 +358,11 @@
 ** Returns          none.
 **
 *******************************************************************************/
-void bta_gatts_stop_service(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA * p_msg)
+void bta_gatts_stop_service(tBTA_GATTS_SRVC_CB *p_srvc_cb,
+                            UNUSED_ATTR tBTA_GATTS_DATA *p_msg)
 {
     tBTA_GATTS_RCB *p_rcb = &bta_gatts_cb.rcb[p_srvc_cb->rcb_idx];
     tBTA_GATTS      cb_data;
-    UNUSED(p_msg);
 
     GATTS_StopService(p_srvc_cb->service_id);
     cb_data.srvc_oper.server_if = p_rcb->gatt_if;
@@ -385,10 +383,8 @@
 ** Returns          none.
 **
 *******************************************************************************/
-void bta_gatts_send_rsp (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg)
+void bta_gatts_send_rsp (UNUSED_ATTR tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg)
 {
-    UNUSED(p_cb);
-
     if (GATTS_SendRsp (p_msg->api_rsp.hdr.layer_specific,
                         p_msg->api_rsp.trans_id,
                         p_msg->api_rsp.status,
@@ -477,12 +473,11 @@
 ** Returns          none.
 **
 *******************************************************************************/
-void bta_gatts_open (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg)
+void bta_gatts_open (UNUSED_ATTR tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg)
 {
     tBTA_GATTS_RCB      *p_rcb=NULL;
     tBTA_GATT_STATUS    status= BTA_GATT_ERROR;
     uint16_t              conn_id;
-    UNUSED(p_cb);
 
     if ((p_rcb = bta_gatts_find_app_rcb_by_app_if(p_msg->api_open.server_if)) != NULL)
     {
@@ -517,11 +512,10 @@
 ** Returns          none.
 **
 *******************************************************************************/
-void bta_gatts_cancel_open (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg)
+void bta_gatts_cancel_open (UNUSED_ATTR tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg)
 {
     tBTA_GATTS_RCB      *p_rcb;
     tBTA_GATT_STATUS    status= BTA_GATT_ERROR;
-    UNUSED(p_cb);
 
     if ((p_rcb = bta_gatts_find_app_rcb_by_app_if(p_msg->api_cancel_open.server_if)) != NULL)
     {
@@ -552,7 +546,7 @@
 ** Returns          none.
 **
 *******************************************************************************/
-void bta_gatts_close (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg)
+void bta_gatts_close (UNUSED_ATTR tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg)
 {
     tBTA_GATTS_RCB     *p_rcb;
     tBTA_GATT_STATUS    status= BTA_GATT_ERROR;
@@ -560,8 +554,6 @@
     BD_ADDR             remote_bda;
     tBTA_GATT_TRANSPORT transport;
 
-    UNUSED(p_cb);
-
     if (GATT_GetConnectionInfor(p_msg->hdr.layer_specific, &gatt_if, remote_bda, &transport))
     {
         if (GATT_Disconnect(p_msg->hdr.layer_specific) != GATT_SUCCESS)
@@ -598,11 +590,10 @@
 ** Returns          none.
 **
 *******************************************************************************/
-void bta_gatts_listen(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg)
+void bta_gatts_listen(UNUSED_ATTR tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg)
 {
     tBTA_GATTS_RCB     *p_rcb = bta_gatts_find_app_rcb_by_app_if(p_msg->api_listen.server_if);
     tBTA_GATTS          cb_data;
-    UNUSED(p_cb);
 
     cb_data.reg_oper.status = BTA_GATT_OK;
     cb_data.reg_oper.server_if = p_msg->api_listen.server_if;
diff --git a/bta/hf_client/bta_hf_client_act.cc b/bta/hf_client/bta_hf_client_act.cc
index 73a726b..ce6064a 100644
--- a/bta/hf_client/bta_hf_client_act.cc
+++ b/bta/hf_client/bta_hf_client_act.cc
@@ -239,10 +239,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hf_client_rfc_open(tBTA_HF_CLIENT_DATA *p_data)
+void bta_hf_client_rfc_open(UNUSED_ATTR tBTA_HF_CLIENT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     bta_sys_conn_open(BTA_ID_HS, 1, bta_hf_client_cb.scb.peer_addr);
 
     bta_hf_client_cback_open(NULL, BTA_HF_CLIENT_SUCCESS);
@@ -315,10 +313,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hf_client_rfc_fail(tBTA_HF_CLIENT_DATA *p_data)
+void bta_hf_client_rfc_fail(UNUSED_ATTR tBTA_HF_CLIENT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     /* reinitialize stuff */
     bta_hf_client_cb.scb.conn_handle = 0;
     bta_hf_client_cb.scb.peer_features = 0;
@@ -347,10 +343,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hf_client_disc_fail(tBTA_HF_CLIENT_DATA *p_data)
+void bta_hf_client_disc_fail(UNUSED_ATTR tBTA_HF_CLIENT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     /* reopen server */
     bta_hf_client_start_server();
 
@@ -386,10 +380,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hf_client_rfc_close(tBTA_HF_CLIENT_DATA *p_data)
+void bta_hf_client_rfc_close(UNUSED_ATTR tBTA_HF_CLIENT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     /* reinitialize stuff */
     bta_hf_client_cb.scb.peer_features = 0;
     bta_hf_client_cb.scb.chld_features = 0;
@@ -497,11 +489,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hf_client_rfc_data(tBTA_HF_CLIENT_DATA *p_data)
+void bta_hf_client_rfc_data(UNUSED_ATTR tBTA_HF_CLIENT_DATA *p_data)
 {
     uint16_t  len;
     char    buf[BTA_HF_CLIENT_RFC_READ_MAX];
-    UNUSED(p_data);
 
     memset(buf, 0, sizeof(buf));
 
@@ -534,10 +525,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hf_client_svc_conn_open(tBTA_HF_CLIENT_DATA *p_data)
+void bta_hf_client_svc_conn_open(UNUSED_ATTR tBTA_HF_CLIENT_DATA *p_data)
 {
     tBTA_HF_CLIENT evt;
-    UNUSED(p_data);
 
     memset(&evt, 0, sizeof(evt));
 
diff --git a/bta/hf_client/bta_hf_client_main.cc b/bta/hf_client/bta_hf_client_main.cc
index 6101f22..7c1b352 100644
--- a/bta/hf_client/bta_hf_client_main.cc
+++ b/bta/hf_client/bta_hf_client_main.cc
@@ -322,13 +322,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hf_client_collision_cback (tBTA_SYS_CONN_STATUS status, uint8_t id,
-                                    uint8_t app_id, BD_ADDR peer_addr)
+void bta_hf_client_collision_cback (UNUSED_ATTR tBTA_SYS_CONN_STATUS status, uint8_t id,
+                                    UNUSED_ATTR uint8_t app_id,
+                                    UNUSED_ATTR BD_ADDR peer_addr)
 {
-    UNUSED(status);
-    UNUSED(app_id);
-    UNUSED(peer_addr);
-
     if (bta_hf_client_cb.scb.state == BTA_HF_CLIENT_OPENING_ST)
     {
         if (id == BTA_ID_SYS)   /* ACL collision */
diff --git a/bta/hf_client/bta_hf_client_rfc.cc b/bta/hf_client/bta_hf_client_rfc.cc
index 08546a7..8476d39 100644
--- a/bta/hf_client/bta_hf_client_rfc.cc
+++ b/bta/hf_client/bta_hf_client_rfc.cc
@@ -40,10 +40,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_hf_client_port_cback(uint32_t code, uint16_t port_handle)
+static void bta_hf_client_port_cback(UNUSED_ATTR uint32_t code, uint16_t port_handle)
 {
-    UNUSED(code);
-
     /* ignore port events for port handles other than connected handle */
     if (port_handle != bta_hf_client_cb.scb.conn_handle)
     {
@@ -233,10 +231,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hf_client_rfc_do_close(tBTA_HF_CLIENT_DATA *p_data)
+void bta_hf_client_rfc_do_close(UNUSED_ATTR tBTA_HF_CLIENT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     if (bta_hf_client_cb.scb.conn_handle) {
         RFCOMM_RemoveConnection(bta_hf_client_cb.scb.conn_handle);
     } else {
diff --git a/bta/hf_client/bta_hf_client_sco.cc b/bta/hf_client/bta_hf_client_sco.cc
index 14c9201..68f59b2 100644
--- a/bta/hf_client/bta_hf_client_sco.cc
+++ b/bta/hf_client/bta_hf_client_sco.cc
@@ -580,10 +580,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hf_client_sco_listen(tBTA_HF_CLIENT_DATA *p_data)
+void bta_hf_client_sco_listen(UNUSED_ATTR tBTA_HF_CLIENT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     APPL_TRACE_DEBUG("%s", __func__);
 
     bta_hf_client_sco_event(BTA_HF_CLIENT_SCO_LISTEN_E);
@@ -599,10 +597,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hf_client_sco_shutdown(tBTA_HF_CLIENT_DATA *p_data)
+void bta_hf_client_sco_shutdown(UNUSED_ATTR tBTA_HF_CLIENT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     APPL_TRACE_DEBUG("%s", __func__);
 
     bta_hf_client_sco_event(BTA_HF_CLIENT_SCO_SHUTDOWN_E);
@@ -618,10 +614,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hf_client_sco_conn_open(tBTA_HF_CLIENT_DATA *p_data)
+void bta_hf_client_sco_conn_open(UNUSED_ATTR tBTA_HF_CLIENT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     APPL_TRACE_DEBUG("%s", __func__);
 
     bta_hf_client_sco_event(BTA_HF_CLIENT_SCO_CONN_OPEN_E);
@@ -693,10 +687,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hf_client_sco_open(tBTA_HF_CLIENT_DATA *p_data)
+void bta_hf_client_sco_open(UNUSED_ATTR tBTA_HF_CLIENT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     APPL_TRACE_DEBUG("%s", __func__);
 
     bta_hf_client_sco_event(BTA_HF_CLIENT_SCO_OPEN_E);
@@ -712,10 +704,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hf_client_sco_close(tBTA_HF_CLIENT_DATA *p_data)
+void bta_hf_client_sco_close(UNUSED_ATTR tBTA_HF_CLIENT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     APPL_TRACE_DEBUG("%s  0x%x", __func__, bta_hf_client_cb.scb.sco_idx);
 
     if (bta_hf_client_cb.scb.sco_idx != BTM_INVALID_SCO_INDEX)
diff --git a/bta/hf_client/bta_hf_client_sdp.cc b/bta/hf_client/bta_hf_client_sdp.cc
index 1cd9234..7b5433f 100644
--- a/bta/hf_client/bta_hf_client_sdp.cc
+++ b/bta/hf_client/bta_hf_client_sdp.cc
@@ -188,10 +188,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hf_client_del_record(tBTA_HF_CLIENT_DATA *p_data)
+void bta_hf_client_del_record(UNUSED_ATTR tBTA_HF_CLIENT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     APPL_TRACE_DEBUG("bta_hf_client_del_record");
 
     if (bta_hf_client_cb.sdp_handle != 0)
@@ -363,8 +361,7 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hf_client_free_db(tBTA_HF_CLIENT_DATA *p_data)
+void bta_hf_client_free_db(UNUSED_ATTR tBTA_HF_CLIENT_DATA *p_data)
 {
-    UNUSED(p_data);
     osi_free_and_reset((void **)&bta_hf_client_cb.scb.p_disc_db);
 }
diff --git a/bta/hh/bta_hh_act.cc b/bta/hh/bta_hh_act.cc
index 766fa07..4eeac28 100644
--- a/bta/hh/bta_hh_act.cc
+++ b/bta/hh/bta_hh_act.cc
@@ -953,9 +953,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_hh_get_dscp_act(tBTA_HH_DEV_CB *p_cb, tBTA_HH_DATA *p_data)
+void bta_hh_get_dscp_act(tBTA_HH_DEV_CB *p_cb,
+                         UNUSED_ATTR tBTA_HH_DATA *p_data)
 {
-    UNUSED(p_data);
 
 #if (BTA_HH_LE_INCLUDED == TRUE)
     if (p_cb->is_le_device)
diff --git a/bta/hh/bta_hh_api.cc b/bta/hh/bta_hh_api.cc
index 7fb5cd7..34aa1d1 100644
--- a/bta/hh/bta_hh_api.cc
+++ b/bta/hh/bta_hh_api.cc
@@ -282,9 +282,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void BTA_HhSendData(uint8_t dev_handle, BD_ADDR dev_bda, BT_HDR  *p_data)
+void BTA_HhSendData(uint8_t dev_handle,
+                    UNUSED_ATTR BD_ADDR dev_bda, BT_HDR  *p_data)
 {
-    UNUSED(dev_bda);
 #if (BTA_HH_LE_INCLUDED == TRUE)
     if (p_data->layer_specific != BTA_HH_RPTT_OUTPUT)
     {
diff --git a/bta/hh/bta_hh_le.cc b/bta/hh/bta_hh_le.cc
index eaabdda..24f12b4 100644
--- a/bta/hh/bta_hh_le.cc
+++ b/bta/hh/bta_hh_le.cc
@@ -1188,13 +1188,11 @@
 ** Returns          None
 **
 *******************************************************************************/
-void bta_hh_le_encrypt_cback(BD_ADDR bd_addr, tBTA_GATT_TRANSPORT transport,
-                                    void *p_ref_data, tBTM_STATUS result)
+void bta_hh_le_encrypt_cback(BD_ADDR bd_addr, UNUSED_ATTR tBTA_GATT_TRANSPORT transport,
+                                    UNUSED_ATTR void *p_ref_data, tBTM_STATUS result)
 {
     uint8_t   idx = bta_hh_find_cb(bd_addr);
     tBTA_HH_DEV_CB *p_dev_cb;
-    UNUSED(p_ref_data);
-    UNUSED (transport);
 
     if (idx != BTA_HH_IDX_INVALID)
         p_dev_cb = &bta_hh_cb.kdev[idx];
@@ -1219,10 +1217,9 @@
 ** Parameters:
 **
 *******************************************************************************/
-void bta_hh_security_cmpl(tBTA_HH_DEV_CB *p_cb, tBTA_HH_DATA *p_buf)
+void bta_hh_security_cmpl(tBTA_HH_DEV_CB *p_cb,
+                          UNUSED_ATTR tBTA_HH_DATA *p_buf)
 {
-    UNUSED(p_buf);
-
     APPL_TRACE_DEBUG("%s", __func__);
     if (p_cb->status == BTA_HH_OK)
     {
@@ -1315,11 +1312,11 @@
 ** Parameters:
 **
 *******************************************************************************/
-void bta_hh_start_security(tBTA_HH_DEV_CB *p_cb, tBTA_HH_DATA *p_buf)
+void bta_hh_start_security(tBTA_HH_DEV_CB *p_cb,
+                           UNUSED_ATTR tBTA_HH_DATA *p_buf)
 {
     uint8_t           sec_flag=0;
     tBTM_SEC_DEV_REC  *p_dev_rec;
-    UNUSED(p_buf);
 
     p_dev_rec = btm_find_dev(p_cb->addr);
     if (p_dev_rec)
diff --git a/bta/hl/bta_hl_act.cc b/bta/hl/bta_hl_act.cc
index df1dae9..938ac2e 100644
--- a/bta/hl/bta_hl_act.cc
+++ b/bta/hl/bta_hl_act.cc
@@ -115,12 +115,11 @@
 **
 *******************************************************************************/
 void bta_hl_dch_echo_test(uint8_t app_idx, uint8_t mcl_idx, uint8_t mdl_idx,
-                          tBTA_HL_DATA *p_data)
+                          UNUSED_ATTR tBTA_HL_DATA *p_data)
 {
     tBTA_HL_APP_CB      *p_acb  = BTA_HL_GET_APP_CB_PTR(app_idx);
     tBTA_HL_MCL_CB      *p_mcb  = BTA_HL_GET_MCL_CB_PTR(app_idx, mcl_idx);
     tBTA_HL_MDL_CB      *p_dcb  = BTA_HL_GET_MDL_CB_PTR(app_idx, mcl_idx, mdl_idx);
-    UNUSED(p_data);
 
 #if (BTA_HL_DEBUG == TRUE)
     APPL_TRACE_DEBUG("bta_hl_dch_echo_test");
diff --git a/bta/hl/bta_hl_main.cc b/bta/hl/bta_hl_main.cc
index 1ee5843..613330e 100644
--- a/bta/hl/bta_hl_main.cc
+++ b/bta/hl/bta_hl_main.cc
@@ -764,11 +764,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_hl_api_deregister(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
+static void bta_hl_api_deregister(UNUSED_ATTR tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
 {
     uint8_t           app_idx;
     tBTA_HL_APP_CB  *p_acb;
-    UNUSED(p_cb);
 
     if (bta_hl_find_app_idx_using_handle(p_data->api_dereg.app_handle, &app_idx))
     {
@@ -791,14 +790,13 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_hl_api_cch_open(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
+static void bta_hl_api_cch_open(UNUSED_ATTR tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
 {
     tBTA_HL         evt_data;
     tBTA_HL_STATUS  status = BTA_HL_STATUS_OK;
     uint8_t           app_idx, mcl_idx;
     tBTA_HL_APP_CB  *p_acb;
     tBTA_HL_MCL_CB  *p_mcb;
-    UNUSED(p_cb);
 
     if (bta_hl_find_app_idx_using_handle(p_data->api_cch_open.app_handle, &app_idx))
     {
@@ -890,14 +888,13 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_hl_api_cch_close(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
+static void bta_hl_api_cch_close(UNUSED_ATTR tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
 {
     tBTA_HL         evt_data;
     tBTA_HL_STATUS  status = BTA_HL_STATUS_OK;
     uint8_t           app_idx, mcl_idx;
     tBTA_HL_APP_CB  *p_acb;
     tBTA_HL_MCL_CB  *p_mcb;
-    UNUSED(p_cb);
 
     if (bta_hl_find_mcl_idx_using_handle(p_data->api_cch_close.mcl_handle, &app_idx,  &mcl_idx))
     {
@@ -951,7 +948,7 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_hl_api_dch_open(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
+static void bta_hl_api_dch_open(UNUSED_ATTR tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
 {
     tBTA_HL                     evt_data;
     tBTA_HL_STATUS              status = BTA_HL_STATUS_OK;
@@ -961,7 +958,6 @@
     tBTA_HL_MDL_CB              *p_dcb;
     tBTA_HL_MDEP_CFG            *p_mdep_cfg;
     uint8_t                       mdep_cfg_idx;
-    UNUSED(p_cb);
 
     if (bta_hl_find_mcl_idx_using_handle(p_data->api_dch_open.mcl_handle, &app_idx, &mcl_idx))
     {
@@ -1105,7 +1101,7 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_hl_api_dch_close(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
+static void bta_hl_api_dch_close(UNUSED_ATTR tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
 {
     tBTA_HL         evt_data;
     tBTA_HL_STATUS  status = BTA_HL_STATUS_OK;
@@ -1113,7 +1109,6 @@
     tBTA_HL_APP_CB  *p_acb;
     tBTA_HL_MCL_CB  *p_mcb;
     tBTA_HL_MDL_CB  *p_dcb;
-    UNUSED(p_cb);
 
     if (bta_hl_find_mdl_idx_using_handle(p_data->api_dch_close.mdl_handle, &app_idx, &mcl_idx, &mdl_idx ))
     {
@@ -1174,7 +1169,7 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_hl_api_dch_reconnect(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
+static void bta_hl_api_dch_reconnect(UNUSED_ATTR tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
 {
     tBTA_HL         evt_data;
     tBTA_HL_STATUS  status = BTA_HL_STATUS_OK;
@@ -1185,7 +1180,6 @@
     uint8_t           mdep_cfg_idx;
     uint8_t           mdl_cfg_idx;
     tBTA_HL_MDEP_CFG            *p_mdep_cfg;
-    UNUSED(p_cb);
 
     if (bta_hl_find_mcl_idx_using_handle(p_data->api_dch_reconnect.mcl_handle, &app_idx, &mcl_idx))
     {
@@ -1315,7 +1309,7 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_hl_api_dch_echo_test(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
+static void bta_hl_api_dch_echo_test(UNUSED_ATTR tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
 {
     tBTA_HL             evt_data;
     tBTA_HL_STATUS      status = BTA_HL_STATUS_OK;
@@ -1324,7 +1318,6 @@
     tBTA_HL_MCL_CB      *p_mcb = NULL;
     tBTA_HL_MDL_CB      *p_dcb;
     tBTA_HL_ECHO_CFG    *p_echo_cfg;
-    UNUSED(p_cb);
 
     if (bta_hl_find_mcl_idx_using_handle(p_data->api_dch_echo_test.mcl_handle, &app_idx,  &mcl_idx))
     {
@@ -1449,14 +1442,13 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_hl_api_sdp_query(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
+static void bta_hl_api_sdp_query(UNUSED_ATTR tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
 {
     tBTA_HL         evt_data;
     tBTA_HL_STATUS  status = BTA_HL_STATUS_OK;
     uint8_t           app_idx, mcl_idx;
     tBTA_HL_APP_CB  *p_acb;
     tBTA_HL_MCL_CB  *p_mcb;
-    UNUSED(p_cb);
 
     if (bta_hl_find_app_idx_using_handle(p_data->api_sdp_query.app_handle, &app_idx))
     {
@@ -1551,7 +1543,7 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_hl_sdp_query_results(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
+static void bta_hl_sdp_query_results(UNUSED_ATTR tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
 {
     tBTA_HL             evt_data;
     tBTA_HL_STATUS      status = BTA_HL_STATUS_OK;
@@ -1562,7 +1554,6 @@
     tBTA_HL_SDP         *p_sdp=NULL;
     uint16_t              event;
     bool             release_sdp_buf=false;
-    UNUSED(p_cb);
 
     event = p_data->hdr.event;
 
@@ -1612,14 +1603,13 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_hl_api_delete_mdl(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
+static void bta_hl_api_delete_mdl(UNUSED_ATTR tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
 {
     tBTA_HL         evt_data;
     tBTA_HL_STATUS  status = BTA_HL_STATUS_OK;
     uint8_t           app_idx, mcl_idx;
     tBTA_HL_APP_CB  *p_acb;
     tBTA_HL_MCL_CB  *p_mcb;
-    UNUSED(p_cb);
 
     if (bta_hl_find_mcl_idx_using_handle(p_data->api_delete_mdl.mcl_handle, &app_idx, &mcl_idx ))
     {
@@ -1701,7 +1691,7 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_hl_mca_delete_mdl_cfm(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
+static void bta_hl_mca_delete_mdl_cfm(UNUSED_ATTR tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
 {
     tBTA_HL         evt_data;
     tBTA_HL_STATUS  status = BTA_HL_STATUS_OK;
@@ -1710,7 +1700,6 @@
     tBTA_HL_MCL_CB  *p_mcb;
     bool         send_cfm_evt = true;
     tBTA_HL_APP_CB  *p_acb;
-    UNUSED(p_cb);
 
     if (bta_hl_find_mcl_idx_using_handle(p_data->mca_evt.mcl_handle, &app_idx, &mcl_idx))
     {
@@ -1781,7 +1770,7 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_hl_mca_delete_mdl_ind(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
+static void bta_hl_mca_delete_mdl_ind(UNUSED_ATTR tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
 {
     tBTA_HL         evt_data;
     uint8_t           app_idx, mcl_idx, mdl_idx;
@@ -1790,7 +1779,6 @@
     tBTA_HL_MDL_CB  *p_dcb;
     bool         send_ind_evt = false;
     tBTA_HL_APP_CB  *p_acb;
-    UNUSED(p_cb);
 
     if (bta_hl_find_mcl_idx_using_handle(p_data->mca_evt.mcl_handle, &app_idx, &mcl_idx) )
     {
@@ -1844,7 +1832,7 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_hl_api_dch_abort(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
+static void bta_hl_api_dch_abort(UNUSED_ATTR tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
 {
     tBTA_HL_STATUS  status = BTA_HL_STATUS_OK;
     uint8_t           app_idx, mcl_idx, mdl_idx;
@@ -1852,7 +1840,6 @@
     tBTA_HL_MCL_CB  *p_mcb;
     tBTA_HL_MDL_CB  *p_dcb;
     tBTA_HL         evt_data;
-    UNUSED(p_cb);
 
     if (bta_hl_find_mcl_idx_using_handle(p_data->api_dch_abort.mcl_handle, &app_idx, &mcl_idx ))
     {
diff --git a/bta/hl/bta_hl_sdp.cc b/bta/hl/bta_hl_sdp.cc
index 4f62ffe..cd23a3c 100644
--- a/bta/hl/bta_hl_sdp.cc
+++ b/bta/hl/bta_hl_sdp.cc
@@ -168,7 +168,7 @@
 **  Returns:     void
 **
 *****************************************************************************/
-tBTA_HL_STATUS bta_hl_sdp_update (uint8_t app_id)
+tBTA_HL_STATUS bta_hl_sdp_update (UNUSED_ATTR uint8_t app_id)
 {
     uint16_t                          svc_class_id_list[BTA_HL_NUM_SVC_ELEMS];
     tSDP_PROTOCOL_ELEM              proto_elem_list[BTA_HL_NUM_PROTO_ELEMS];
@@ -184,7 +184,6 @@
     tBTA_HL_APP_CB                  *p_cb = BTA_HL_GET_APP_CB_PTR(0);
     bool                         result = true;
     tBTA_HL_STATUS                  status = BTA_HL_STATUS_OK;
-    UNUSED(app_id);
 
     if ((p_cb->sup_feature.app_role_mask == BTA_HL_MDEP_ROLE_MASK_SOURCE) &&
         (!p_cb->sup_feature.advertize_source_sdp))
diff --git a/bta/hl/bta_hl_utils.cc b/bta/hl/bta_hl_utils.cc
index 208d938..c713912 100644
--- a/bta/hl/bta_hl_utils.cc
+++ b/bta/hl/bta_hl_utils.cc
@@ -47,11 +47,10 @@
 ** Returns     bool - true - control PSM setting is successful
 *******************************************************************************/
 bool bta_hl_set_ctrl_psm_for_dch(uint8_t app_idx, uint8_t mcl_idx,
-                                    uint8_t mdl_idx, uint16_t ctrl_psm)
+                                    UNUSED_ATTR uint8_t mdl_idx, uint16_t ctrl_psm)
 {
     tBTA_HL_MCL_CB *p_mcb  = BTA_HL_GET_MCL_CB_PTR(app_idx, mcl_idx);
     bool success = true, update_ctrl_psm = false;
-    UNUSED(mdl_idx);
 
     if (p_mcb->sdp.num_recs)
     {
@@ -1319,7 +1318,7 @@
 **                        false not found
 **
 *******************************************************************************/
-bool  bta_hl_find_avail_mdl_cfg_idx(uint8_t app_idx, uint8_t mcl_idx,
+bool  bta_hl_find_avail_mdl_cfg_idx(uint8_t app_idx, UNUSED_ATTR uint8_t mcl_idx,
                                        uint8_t *p_mdl_cfg_idx)
 {
     tBTA_HL_MDL_CFG     *p_mdl, *p_mdl1, *p_mdl2;
@@ -1327,7 +1326,6 @@
     bool             found=false;
     uint8_t               first_mdl_cfg_idx, second_mdl_cfg_idx, older_mdl_cfg_idx;
     bool             done;
-    UNUSED(mcl_idx);
 
     for (i=0; i< BTA_HL_NUM_MDL_CFGS; i++)
     {
diff --git a/bta/jv/bta_jv_act.cc b/bta/jv/bta_jv_act.cc
index 3f8caac..d80da92 100644
--- a/bta/jv/bta_jv_act.cc
+++ b/bta/jv/bta_jv_act.cc
@@ -676,10 +676,8 @@
 ** Returns      void
 **
 *******************************************************************************/
-void bta_jv_disable (tBTA_JV_MSG *p_data)
+void bta_jv_disable (UNUSED_ATTR tBTA_JV_MSG *p_data)
 {
-    UNUSED(p_data);
-
     APPL_TRACE_ERROR("%s",__func__);
 }
 
diff --git a/bta/pan/bta_pan_act.cc b/bta/pan/bta_pan_act.cc
index c4d92fe..97a983b 100644
--- a/bta/pan/bta_pan_act.cc
+++ b/bta/pan/bta_pan_act.cc
@@ -508,12 +508,11 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_pan_api_close (tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data)
+void bta_pan_api_close (tBTA_PAN_SCB *p_scb,
+                        UNUSED_ATTR tBTA_PAN_DATA *p_data)
 {
     tBTA_PAN_CONN *p_buf = (tBTA_PAN_CONN *)osi_malloc(sizeof(tBTA_PAN_CONN));
 
-    UNUSED(p_data);
-
     PAN_Disconnect(p_scb->handle);
 
     /*
@@ -622,10 +621,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_pan_rx_path(tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data)
+void bta_pan_rx_path(tBTA_PAN_SCB *p_scb,
+                     UNUSED_ATTR tBTA_PAN_DATA *p_data)
 {
-    UNUSED(p_data);
-
     /* if data path configured for rx pull */
     if ((bta_pan_cb.flow_mask & BTA_PAN_RX_MASK) == BTA_PAN_RX_PULL)
     {
@@ -653,10 +651,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_pan_tx_path(tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data)
+void bta_pan_tx_path(tBTA_PAN_SCB *p_scb,
+                     UNUSED_ATTR tBTA_PAN_DATA *p_data)
 {
-    UNUSED(p_data);
-
     /* if data path configured for tx pull */
     if ((bta_pan_cb.flow_mask & BTA_PAN_TX_MASK) == BTA_PAN_TX_PULL)
     {
@@ -760,9 +757,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_pan_free_buf(tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data)
+void bta_pan_free_buf(UNUSED_ATTR tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data)
 {
-    UNUSED(p_scb);
     osi_free(p_data);
 }
 
diff --git a/bta/pan/bta_pan_api.cc b/bta/pan/bta_pan_api.cc
index 3cf56a4..d7a0513 100644
--- a/bta/pan/bta_pan_api.cc
+++ b/bta/pan/bta_pan_api.cc
@@ -183,34 +183,26 @@
 }
 #else
 
-void BTA_PanEnable(tBTA_PAN_CBACK p_cback)
+void BTA_PanEnable(UNUSED_ATTR tBTA_PAN_CBACK p_cback)
 {
-    UNUSED(p_cback);
 }
 
 void BTA_PanDisable(void)
 {
 }
 
-void BTA_PanSetRole(tBTA_PAN_ROLE role, tBTA_PAN_ROLE_INFO *p_user_info, tBTA_PAN_ROLE_INFO *p_gn_info,
-                    tBTA_PAN_ROLE_INFO *p_nap_info)
+void BTA_PanSetRole(UNUSED_ATTR tBTA_PAN_ROLE role, UNUSED_ATTR tBTA_PAN_ROLE_INFO *p_user_info, UNUSED_ATTR tBTA_PAN_ROLE_INFO *p_gn_info,
+                    UNUSED_ATTR tBTA_PAN_ROLE_INFO *p_nap_info)
 {
-    UNUSED(role);
-    UNUSED(p_user_info);
-    UNUSED(p_gn_info);
-    UNUSED(p_nap_info);
 }
 
-void BTA_PanOpen(BD_ADDR bd_addr, tBTA_PAN_ROLE local_role, tBTA_PAN_ROLE peer_role)
+void BTA_PanOpen(UNUSED_ATTR BD_ADDR bd_addr, UNUSED_ATTR tBTA_PAN_ROLE local_role,
+                 UNUSED_ATTR tBTA_PAN_ROLE peer_role)
 {
-    UNUSED(bd_addr);
-    UNUSED(local_role);
-    UNUSED(peer_role);
 }
 
-void BTA_PanClose(uint16_t handle)
+void BTA_PanClose(UNUSED_ATTR uint16_t handle)
 {
-    UNUSED(handle);
 }
 
 #endif /* BTA_PAN_INCLUDED */
diff --git a/bta/pan/bta_pan_ci.cc b/bta/pan/bta_pan_ci.cc
index bd3f348..a3665f9 100644
--- a/bta/pan/bta_pan_ci.cc
+++ b/bta/pan/bta_pan_ci.cc
@@ -245,59 +245,39 @@
 }
 #else
 
-void bta_pan_ci_tx_ready(uint16_t handle)
+void bta_pan_ci_tx_ready(UNUSED_ATTR uint16_t handle)
 {
-    UNUSED(handle);
 }
 
-void bta_pan_ci_rx_ready(uint16_t handle)
+void bta_pan_ci_rx_ready(UNUSED_ATTR uint16_t handle)
 {
-    UNUSED(handle);
 }
 
-void bta_pan_ci_tx_flow(uint16_t handle, bool enable)
+void bta_pan_ci_tx_flow(UNUSED_ATTR uint16_t handle,
+                        UNUSED_ATTR bool enable)
 {
-    UNUSED(handle);
-    UNUSED(enable);
 }
 
-void bta_pan_ci_rx_writebuf(uint16_t handle, BD_ADDR src, BD_ADDR dst, uint16_t protocol, BT_HDR *p_buf, bool ext)
+void bta_pan_ci_rx_writebuf(UNUSED_ATTR uint16_t handle, UNUSED_ATTR BD_ADDR src, UNUSED_ATTR BD_ADDR dst, UNUSED_ATTR uint16_t protocol, UNUSED_ATTR BT_HDR *p_buf,
+                            UNUSED_ATTR bool ext)
 {
-    UNUSED(handle);
-    UNUSED(src);
-    UNUSED(dst);
-    UNUSED(protocol);
-    UNUSED(p_buf);
-    UNUSED(ext);
 }
 
-BT_HDR * bta_pan_ci_readbuf(uint16_t handle, BD_ADDR src, BD_ADDR dst, uint16_t *p_protocol,
-                            bool* p_ext, bool* p_forward)
+BT_HDR * bta_pan_ci_readbuf(UNUSED_ATTR uint16_t handle, UNUSED_ATTR BD_ADDR src, UNUSED_ATTR BD_ADDR dst, UNUSED_ATTR uint16_t *p_protocol,
+                            UNUSED_ATTR bool *p_ext,
+                            UNUSED_ATTR bool *p_forward)
 {
-    UNUSED(handle);
-    UNUSED(src);
-    UNUSED(dst);
-    UNUSED(p_protocol);
-    UNUSED(p_ext);
-    UNUSED(p_forward);
     return NULL;
 }
 
-void bta_pan_ci_set_pfilters(uint16_t handle, uint16_t num_filters, uint16_t *p_start_array, uint16_t *p_end_array)
+void bta_pan_ci_set_pfilters(UNUSED_ATTR uint16_t handle, UNUSED_ATTR uint16_t num_filters, UNUSED_ATTR uint16_t *p_start_array,
+                             UNUSED_ATTR uint16_t *p_end_array)
 {
-    UNUSED(handle);
-    UNUSED(num_filters);
-    UNUSED(p_start_array);
-    UNUSED(p_end_array);
 }
 
-void bta_pan_ci_set_mfilters(uint16_t handle, uint16_t num_mcast_filters, uint8_t *p_start_array,
-                             uint8_t *p_end_array)
+void bta_pan_ci_set_mfilters(UNUSED_ATTR uint16_t handle, UNUSED_ATTR uint16_t num_mcast_filters, UNUSED_ATTR uint8_t *p_start_array,
+                             UNUSED_ATTR uint8_t *p_end_array)
 {
-    UNUSED(handle);
-    UNUSED(num_mcast_filters);
-    UNUSED(p_start_array);
-    UNUSED(p_end_array);
 }
 
 #endif /* BTA_PAN_API */
diff --git a/bta/pan/bta_pan_main.cc b/bta/pan/bta_pan_main.cc
index c262906..7e3563c 100644
--- a/bta/pan/bta_pan_main.cc
+++ b/bta/pan/bta_pan_main.cc
@@ -253,10 +253,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bta_pan_api_disable(tBTA_PAN_DATA *p_data)
+static void bta_pan_api_disable(UNUSED_ATTR tBTA_PAN_DATA *p_data)
 {
-    UNUSED(p_data);
-
     bta_pan_disable();
 }
 
diff --git a/bta/sys/bta_sys_conn.cc b/bta/sys/bta_sys_conn.cc
index 1fae9e7..6b1cc2c 100644
--- a/bta/sys/bta_sys_conn.cc
+++ b/bta/sys/bta_sys_conn.cc
@@ -348,10 +348,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_sys_sco_use(uint8_t id, uint8_t app_id, BD_ADDR peer_addr)
+void bta_sys_sco_use(UNUSED_ATTR uint8_t id, uint8_t app_id,
+                     BD_ADDR peer_addr)
 {
-    UNUSED(id);
-
     /* AV streaming need to be suspended before SCO is connected. */
     if(bta_sys_cb.p_sco_cb)
     {
@@ -370,10 +369,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bta_sys_sco_unuse(uint8_t id, uint8_t app_id, BD_ADDR peer_addr)
+void bta_sys_sco_unuse(UNUSED_ATTR uint8_t id, uint8_t app_id,
+                       BD_ADDR peer_addr)
 {
     uint8_t num_sco_links;
-    UNUSED(id);
 
     if((bta_sys_cb.p_sco_cb))
     {
diff --git a/bta/sys/bta_sys_main.cc b/bta/sys/bta_sys_main.cc
index 119f6dd..d7ff53a 100644
--- a/bta/sys/bta_sys_main.cc
+++ b/bta/sys/bta_sys_main.cc
@@ -290,10 +290,9 @@
 ** Returns          success or failure
 **
 *******************************************************************************/
-void bta_sys_hw_error(tBTA_SYS_HW_MSG *p_sys_hw_msg)
+void bta_sys_hw_error(UNUSED_ATTR tBTA_SYS_HW_MSG *p_sys_hw_msg)
 {
     uint8_t module_index;
-    UNUSED(p_sys_hw_msg);
 
     APPL_TRACE_DEBUG("%s", __func__);
 
@@ -451,10 +450,9 @@
 ** Returns          success or failure
 **
 *******************************************************************************/
-void bta_sys_hw_evt_stack_enabled(tBTA_SYS_HW_MSG *p_sys_hw_msg)
+void bta_sys_hw_evt_stack_enabled(UNUSED_ATTR tBTA_SYS_HW_MSG *p_sys_hw_msg)
 {
     uint8_t hw_module_index;
-    UNUSED(p_sys_hw_msg);
 
     APPL_TRACE_DEBUG(" bta_sys_hw_evt_stack_enabled!notify the callers");
 
diff --git a/btif/co/bta_dm_co.cc b/btif/co/bta_dm_co.cc
index 45dff10..e7cac14 100644
--- a/btif/co/bta_dm_co.cc
+++ b/btif/co/bta_dm_co.cc
@@ -51,11 +51,8 @@
  * Returns          true for success, false for fail.
  *
  ******************************************************************************/
-bool bta_dm_co_get_compress_memory(tBTA_SYS_ID id, uint8_t** memory_p,
-                                   uint32_t* memory_size) {
-  UNUSED(id);
-  UNUSED(memory_p);
-  UNUSED(memory_size);
+bool bta_dm_co_get_compress_memory(UNUSED_ATTR tBTA_SYS_ID id, UNUSED_ATTR uint8_t **memory_p,
+                                   UNUSED_ATTR uint32_t *memory_size) {
   return true;
 }
 
@@ -76,10 +73,9 @@
  * Returns          void.
  *
  ******************************************************************************/
-void bta_dm_co_io_req(BD_ADDR bd_addr, tBTA_IO_CAP* p_io_cap,
+void bta_dm_co_io_req(UNUSED_ATTR BD_ADDR bd_addr, tBTA_IO_CAP* p_io_cap,
                       tBTA_OOB_DATA* p_oob_data, tBTA_AUTH_REQ* p_auth_req,
                       bool is_orig) {
-  UNUSED(bd_addr);
   btif_dm_set_oob_for_io_req(p_oob_data);
   btif_dm_proc_io_req(bd_addr, p_io_cap, p_oob_data, p_auth_req, is_orig);
   BTIF_TRACE_DEBUG("bta_dm_co_io_req *p_oob_data = %d", *p_oob_data);
@@ -123,9 +119,8 @@
  * Returns          void.
  *
  ******************************************************************************/
-void bta_dm_co_lk_upgrade(BD_ADDR bd_addr, bool* p_upgrade) {
-  UNUSED(bd_addr);
-  UNUSED(p_upgrade);
+void bta_dm_co_lk_upgrade(UNUSED_ATTR BD_ADDR bd_addr,
+                          UNUSED_ATTR bool *p_upgrade) {
 }
 
 /*******************************************************************************
@@ -327,10 +322,9 @@
  * Returns          void.
  *
  ******************************************************************************/
-void bta_dm_co_le_io_key_req(BD_ADDR bd_addr, uint8_t* p_max_key_size,
+void bta_dm_co_le_io_key_req(UNUSED_ATTR BD_ADDR bd_addr, uint8_t* p_max_key_size,
                              tBTA_LE_KEY_TYPE* p_init_key,
                              tBTA_LE_KEY_TYPE* p_resp_key) {
-  UNUSED(bd_addr);
   BTIF_TRACE_ERROR("##################################");
   BTIF_TRACE_ERROR("bta_dm_co_le_io_key_req: only setting max size to 16");
   BTIF_TRACE_ERROR("##################################");
@@ -382,12 +376,11 @@
  * Returns          void.
  *
  ******************************************************************************/
-void bta_dm_co_ble_io_req(BD_ADDR bd_addr, tBTA_IO_CAP* p_io_cap,
+void bta_dm_co_ble_io_req(UNUSED_ATTR BD_ADDR bd_addr, tBTA_IO_CAP* p_io_cap,
                           tBTA_OOB_DATA* p_oob_data,
                           tBTA_LE_AUTH_REQ* p_auth_req, uint8_t* p_max_key_size,
                           tBTA_LE_KEY_TYPE* p_init_key,
                           tBTA_LE_KEY_TYPE* p_resp_key) {
-  UNUSED(bd_addr);
   /* Retrieve the properties from file system if possible */
   tBTE_APPL_CFG nv_config;
   if (btif_dm_get_smp_config(&nv_config)) bte_appl_cfg = nv_config;
diff --git a/btif/co/bta_gatts_co.cc b/btif/co/bta_gatts_co.cc
index 8733b95..4b05e56 100644
--- a/btif/co/bta_gatts_co.cc
+++ b/btif/co/bta_gatts_co.cc
@@ -102,10 +102,8 @@
  * Returns          void.
  *
  ******************************************************************************/
-void bta_gatts_co_update_handle_range(bool is_add,
-                                      tBTA_GATTS_HNDL_RANGE* p_hndl_range) {
-  UNUSED(is_add);
-  UNUSED(p_hndl_range);
+void bta_gatts_co_update_handle_range(UNUSED_ATTR bool is_add,
+                                      UNUSED_ATTR tBTA_GATTS_HNDL_RANGE *p_hndl_range) {
 }
 
 /*******************************************************************************
@@ -125,13 +123,9 @@
  *                  false - if the request can not be processed
  *
  ******************************************************************************/
-bool bta_gatts_co_srv_chg(tBTA_GATTS_SRV_CHG_CMD cmd,
-                          tBTA_GATTS_SRV_CHG_REQ* p_req,
-                          tBTA_GATTS_SRV_CHG_RSP* p_rsp) {
-  UNUSED(cmd);
-  UNUSED(p_req);
-  UNUSED(p_rsp);
-
+bool bta_gatts_co_srv_chg(UNUSED_ATTR tBTA_GATTS_SRV_CHG_CMD cmd,
+                          UNUSED_ATTR tBTA_GATTS_SRV_CHG_REQ *p_req,
+                          UNUSED_ATTR tBTA_GATTS_SRV_CHG_RSP *p_rsp) {
   return false;
 }
 
@@ -147,11 +141,8 @@
  * Returns          void.
  *
  ******************************************************************************/
-bool bta_gatts_co_load_handle_range(uint8_t index,
-                                    tBTA_GATTS_HNDL_RANGE* p_handle_range) {
-  UNUSED(index);
-  UNUSED(p_handle_range);
-
+bool bta_gatts_co_load_handle_range(UNUSED_ATTR uint8_t index,
+                                    UNUSED_ATTR tBTA_GATTS_HNDL_RANGE *p_handle_range) {
   return false;
 }
 
diff --git a/btif/co/bta_hh_co.cc b/btif/co/bta_hh_co.cc
index 1bf9bcb..19ccdf6 100644
--- a/btif/co/bta_hh_co.cc
+++ b/btif/co/bta_hh_co.cc
@@ -403,9 +403,9 @@
  ******************************************************************************/
 void bta_hh_co_data(uint8_t dev_handle, uint8_t* p_rpt, uint16_t len,
                     tBTA_HH_PROTO_MODE mode, uint8_t sub_class,
-                    uint8_t ctry_code, BD_ADDR peer_addr, uint8_t app_id) {
+                    uint8_t ctry_code,
+                    UNUSED_ATTR BD_ADDR peer_addr, uint8_t app_id) {
   btif_hh_device_t* p_dev;
-  UNUSED(peer_addr);
 
   APPL_TRACE_DEBUG(
       "%s: dev_handle = %d, subclass = 0x%02X, mode = %d, "
@@ -521,8 +521,7 @@
  *
  ******************************************************************************/
 void bta_hh_le_co_rpt_info(BD_ADDR remote_bda, tBTA_HH_RPT_CACHE_ENTRY* p_entry,
-                           uint8_t app_id) {
-  UNUSED(app_id);
+                           UNUSED_ATTR uint8_t app_id) {
 
   unsigned idx = 0;
 
@@ -564,8 +563,7 @@
  ******************************************************************************/
 tBTA_HH_RPT_CACHE_ENTRY* bta_hh_le_co_cache_load(BD_ADDR remote_bda,
                                                  uint8_t* p_num_rpt,
-                                                 uint8_t app_id) {
-  UNUSED(app_id);
+                                                 UNUSED_ATTR uint8_t app_id) {
 
   bdstr_t bdstr;
   snprintf(bdstr, sizeof(bdstr), "%02x:%02x:%02x:%02x:%02x:%02x", remote_bda[0],
@@ -596,8 +594,8 @@
  * Returns          none
  *
  ******************************************************************************/
-void bta_hh_le_co_reset_rpt_cache(BD_ADDR remote_bda, uint8_t app_id) {
-  UNUSED(app_id);
+void bta_hh_le_co_reset_rpt_cache(BD_ADDR remote_bda,
+                                  UNUSED_ATTR uint8_t app_id) {
 
   bdstr_t bdstr;
   snprintf(bdstr, sizeof(bdstr), "%02x:%02x:%02x:%02x:%02x:%02x", remote_bda[0],
diff --git a/btif/co/bta_hl_co.cc b/btif/co/bta_hl_co.cc
index 16c8f1f..03585ec 100644
--- a/btif/co/bta_hl_co.cc
+++ b/btif/co/bta_hl_co.cc
@@ -378,12 +378,9 @@
  * Returns        Void
  *
  ******************************************************************************/
-void bta_hl_co_get_echo_data(uint8_t app_id, tBTA_HL_MCL_HANDLE mcl_handle,
-                             uint16_t buf_size, uint8_t* p_buf, uint16_t evt) {
+void bta_hl_co_get_echo_data(UNUSED_ATTR uint8_t app_id, tBTA_HL_MCL_HANDLE mcl_handle,
+                             UNUSED_ATTR uint16_t buf_size, UNUSED_ATTR uint8_t *p_buf, uint16_t evt) {
   tBTA_HL_STATUS status = BTA_HL_STATUS_FAIL;
-  UNUSED(app_id);
-  UNUSED(buf_size);
-  UNUSED(p_buf);
 
   BTIF_TRACE_ERROR("%s not supported", __func__);
   bta_hl_ci_get_echo_data(mcl_handle, status, evt);
@@ -405,13 +402,10 @@
  * Returns        Void
  *
  ******************************************************************************/
-void bta_hl_co_put_echo_data(uint8_t app_id, tBTA_HL_MCL_HANDLE mcl_handle,
-                             uint16_t data_size, uint8_t* p_data,
+void bta_hl_co_put_echo_data(UNUSED_ATTR uint8_t app_id, tBTA_HL_MCL_HANDLE mcl_handle,
+                             UNUSED_ATTR uint16_t data_size, UNUSED_ATTR uint8_t *p_data,
                              uint16_t evt) {
   tBTA_HL_STATUS status = BTA_HL_STATUS_FAIL;
-  UNUSED(app_id);
-  UNUSED(data_size);
-  UNUSED(p_data);
 
   BTIF_TRACE_ERROR("%s not supported", __func__);
   bta_hl_ci_put_echo_data(mcl_handle, status, evt);
diff --git a/btif/co/bta_pan_co.cc b/btif/co/bta_pan_co.cc
index 25329d5..ab9f06c 100644
--- a/btif/co/bta_pan_co.cc
+++ b/btif/co/bta_pan_co.cc
@@ -210,10 +210,8 @@
  * Returns          void
  *
  ******************************************************************************/
-void bta_pan_co_rx_path(uint16_t handle, uint8_t app_id) {
-  UNUSED(handle);
-  UNUSED(app_id);
-
+void bta_pan_co_rx_path(UNUSED_ATTR uint16_t handle,
+                        UNUSED_ATTR uint8_t app_id) {
   BTIF_TRACE_API("bta_pan_co_rx_path not used");
 }
 
@@ -230,19 +228,10 @@
  * Returns          void
  *
  ******************************************************************************/
-void bta_pan_co_tx_write(uint16_t handle, uint8_t app_id, BD_ADDR src,
-                         BD_ADDR dst, uint16_t protocol, uint8_t* p_data,
-                         uint16_t len, bool ext, bool forward) {
-  UNUSED(handle);
-  UNUSED(app_id);
-  UNUSED(src);
-  UNUSED(dst);
-  UNUSED(protocol);
-  UNUSED(p_data);
-  UNUSED(len);
-  UNUSED(ext);
-  UNUSED(forward);
-
+void bta_pan_co_tx_write(UNUSED_ATTR uint16_t handle, UNUSED_ATTR uint8_t app_id, UNUSED_ATTR BD_ADDR src,
+                         UNUSED_ATTR BD_ADDR dst, UNUSED_ATTR uint16_t protocol, UNUSED_ATTR uint8_t *p_data,
+                         UNUSED_ATTR uint16_t len, UNUSED_ATTR bool ext,
+                         UNUSED_ATTR bool forward) {
   BTIF_TRACE_API("bta_pan_co_tx_write not used");
 }
 
@@ -259,18 +248,10 @@
  * Returns          true if flow enabled
  *
  ******************************************************************************/
-void bta_pan_co_tx_writebuf(uint16_t handle, uint8_t app_id, BD_ADDR src,
-                            BD_ADDR dst, uint16_t protocol, BT_HDR* p_buf,
-                            bool ext, bool forward) {
-  UNUSED(handle);
-  UNUSED(app_id);
-  UNUSED(src);
-  UNUSED(dst);
-  UNUSED(protocol);
-  UNUSED(p_buf);
-  UNUSED(ext);
-  UNUSED(forward);
-
+void bta_pan_co_tx_writebuf(UNUSED_ATTR uint16_t handle, UNUSED_ATTR uint8_t app_id, UNUSED_ATTR BD_ADDR src,
+                            UNUSED_ATTR BD_ADDR dst, UNUSED_ATTR uint16_t protocol, UNUSED_ATTR BT_HDR *p_buf,
+                            UNUSED_ATTR bool ext,
+                            UNUSED_ATTR bool forward) {
   BTIF_TRACE_API("bta_pan_co_tx_writebuf not used");
 }
 
@@ -288,11 +269,8 @@
  * Returns          void
  *
  ******************************************************************************/
-void bta_pan_co_rx_flow(uint16_t handle, uint8_t app_id, bool enable) {
-  UNUSED(handle);
-  UNUSED(app_id);
-  UNUSED(enable);
-
+void bta_pan_co_rx_flow(UNUSED_ATTR uint16_t handle, UNUSED_ATTR uint8_t app_id,
+                        UNUSED_ATTR bool enable) {
   BTIF_TRACE_API("bta_pan_co_rx_flow, enabled:%d, not used", enable);
   btpan_conn_t* conn = btpan_find_conn_handle(handle);
   if (!conn || conn->state != PAN_STATE_OPEN) return;
@@ -308,15 +286,9 @@
  * Returns          void
  *
  ******************************************************************************/
-void bta_pan_co_pfilt_ind(uint16_t handle, bool indication,
-                          tBTA_PAN_STATUS result, uint16_t len,
-                          uint8_t* p_filters) {
-  UNUSED(handle);
-  UNUSED(indication);
-  UNUSED(result);
-  UNUSED(len);
-  UNUSED(p_filters);
-
+void bta_pan_co_pfilt_ind(UNUSED_ATTR uint16_t handle, UNUSED_ATTR bool indication,
+                          UNUSED_ATTR tBTA_PAN_STATUS result, UNUSED_ATTR uint16_t len,
+                          UNUSED_ATTR uint8_t *p_filters) {
   BTIF_TRACE_API("bta_pan_co_pfilt_ind");
 }
 
@@ -329,14 +301,8 @@
  * Returns          void
  *
  ******************************************************************************/
-void bta_pan_co_mfilt_ind(uint16_t handle, bool indication,
-                          tBTA_PAN_STATUS result, uint16_t len,
-                          uint8_t* p_filters) {
-  UNUSED(handle);
-  UNUSED(indication);
-  UNUSED(result);
-  UNUSED(len);
-  UNUSED(p_filters);
-
+void bta_pan_co_mfilt_ind(UNUSED_ATTR uint16_t handle, UNUSED_ATTR bool indication,
+                          UNUSED_ATTR tBTA_PAN_STATUS result, UNUSED_ATTR uint16_t len,
+                          UNUSED_ATTR uint8_t *p_filters) {
   BTIF_TRACE_API("bta_pan_co_mfilt_ind");
 }
diff --git a/btif/src/bluetooth.cc b/btif/src/bluetooth.cc
index 51ecb96..c396ea4 100644
--- a/btif/src/bluetooth.cc
+++ b/btif/src/bluetooth.cc
@@ -456,8 +456,7 @@
   return &bluetoothInterface;
 }
 
-static int close_bluetooth_stack(struct hw_device_t* device) {
-  UNUSED(device);
+static int close_bluetooth_stack(UNUSED_ATTR struct hw_device_t *device) {
   cleanup();
   return 0;
 }
diff --git a/btif/src/btif_core.cc b/btif/src/btif_core.cc
index 13ee322..c98b4cb 100644
--- a/btif/src/btif_core.cc
+++ b/btif/src/btif_core.cc
@@ -661,8 +661,7 @@
  * Returns          None
  *
  ******************************************************************************/
-static void btif_dut_mode_cback(tBTM_VSC_CMPL* p) {
-  UNUSED(p);
+static void btif_dut_mode_cback(UNUSED_ATTR tBTM_VSC_CMPL *p) {
   /* For now nothing to be done. */
 }
 
diff --git a/btif/src/btif_dm.cc b/btif/src/btif_dm.cc
index 1f5c5ed..5c46350 100644
--- a/btif/src/btif_dm.cc
+++ b/btif/src/btif_dm.cc
@@ -2450,9 +2450,7 @@
  ******************************************************************************/
 bt_status_t btif_dm_ssp_reply(const bt_bdaddr_t* bd_addr,
                               bt_ssp_variant_t variant, uint8_t accept,
-                              uint32_t passkey) {
-  UNUSED(passkey);
-
+                              UNUSED_ATTR uint32_t passkey) {
   if (variant == BT_SSP_VARIANT_PASSKEY_ENTRY) {
     /* This is not implemented in the stack.
      * For devices with display, this is not needed
@@ -2617,8 +2615,8 @@
   return;
 }
 
-void btif_dm_proc_io_req(BD_ADDR bd_addr, tBTA_IO_CAP* p_io_cap,
-                         tBTA_OOB_DATA* p_oob_data, tBTA_AUTH_REQ* p_auth_req,
+void btif_dm_proc_io_req(UNUSED_ATTR BD_ADDR bd_addr, UNUSED_ATTR tBTA_IO_CAP *p_io_cap,
+                         UNUSED_ATTR tBTA_OOB_DATA *p_oob_data, tBTA_AUTH_REQ* p_auth_req,
                          bool is_orig) {
   uint8_t yes_no_bit = BTA_AUTH_SP_YES & *p_auth_req;
   /* if local initiated:
@@ -2629,9 +2627,6 @@
   *(iPhone)
   ** as a fallback set MITM+GB if peer had MITM set
   */
-  UNUSED(bd_addr);
-  UNUSED(p_io_cap);
-  UNUSED(p_oob_data);
 
   BTIF_TRACE_DEBUG("+%s: p_auth_req=%d", __func__, *p_auth_req);
   if (pairing_cb.is_local_initiated) {
@@ -2656,11 +2651,8 @@
   BTIF_TRACE_DEBUG("-%s: p_auth_req=%d", __func__, *p_auth_req);
 }
 
-void btif_dm_proc_io_rsp(BD_ADDR bd_addr, tBTA_IO_CAP io_cap,
-                         tBTA_OOB_DATA oob_data, tBTA_AUTH_REQ auth_req) {
-  UNUSED(bd_addr);
-  UNUSED(oob_data);
-
+void btif_dm_proc_io_rsp(UNUSED_ATTR BD_ADDR bd_addr, tBTA_IO_CAP io_cap,
+                         UNUSED_ATTR tBTA_OOB_DATA oob_data, tBTA_AUTH_REQ auth_req) {
   if (auth_req & BTA_AUTH_BONDS) {
     BTIF_TRACE_DEBUG("%s auth_req:%d", __func__, auth_req);
     pairing_cb.auth_req = auth_req;
diff --git a/btif/src/btif_gatt_test.cc b/btif/src/btif_gatt_test.cc
index d72af71..a8dac58 100644
--- a/btif/src/btif_gatt_test.cc
+++ b/btif/src/btif_gatt_test.cc
@@ -87,15 +87,10 @@
   return str_buf;
 }
 
-static void btif_test_connect_cback(tGATT_IF gatt_if, BD_ADDR bda,
+static void btif_test_connect_cback(UNUSED_ATTR tGATT_IF gatt_if, UNUSED_ATTR BD_ADDR bda,
                                     uint16_t conn_id, bool connected,
-                                    tGATT_DISCONN_REASON reason,
-                                    tBT_TRANSPORT transport) {
-  UNUSED(gatt_if);
-  UNUSED(bda);
-  UNUSED(reason);
-  UNUSED(transport);
-
+                                    UNUSED_ATTR tGATT_DISCONN_REASON reason,
+                                    UNUSED_ATTR tBT_TRANSPORT transport) {
   LOG_DEBUG(LOG_TAG, "%s: conn_id=%d, connected=%d", __func__, conn_id,
             connected);
   test_cb.conn_id = connected ? conn_id : 0;
@@ -125,11 +120,10 @@
   }
 }
 
-static void btif_test_discovery_result_cback(uint16_t conn_id,
+static void btif_test_discovery_result_cback(UNUSED_ATTR uint16_t conn_id,
                                              tGATT_DISC_TYPE disc_type,
                                              tGATT_DISC_RES* p_data) {
   char str_buf[50];
-  UNUSED(conn_id);
 
   LOG_DEBUG(LOG_TAG, "------ GATT Discovery result %-22s -------",
             disc_name[disc_type]);
@@ -186,11 +180,9 @@
             "-----------------------------------------------------------");
 }
 
-static void btif_test_discovery_complete_cback(uint16_t conn_id,
-                                               tGATT_DISC_TYPE disc_type,
+static void btif_test_discovery_complete_cback(UNUSED_ATTR uint16_t conn_id,
+                                               UNUSED_ATTR tGATT_DISC_TYPE disc_type,
                                                tGATT_STATUS status) {
-  UNUSED(conn_id);
-  UNUSED(disc_type);
   LOG_DEBUG(LOG_TAG, "%s: status=%d", __func__, status);
 }
 
diff --git a/btif/src/btif_gatt_util.cc b/btif/src/btif_gatt_util.cc
index 5c23d41..d5ca643 100644
--- a/btif/src/btif_gatt_util.cc
+++ b/btif/src/btif_gatt_util.cc
@@ -219,12 +219,9 @@
   return BTA_JvIsEncrypted(bd_addr);
 }
 
-static void btif_gatt_set_encryption_cb(BD_ADDR bd_addr,
-                                        tBTA_TRANSPORT transport,
+static void btif_gatt_set_encryption_cb(UNUSED_ATTR BD_ADDR bd_addr,
+                                        UNUSED_ATTR tBTA_TRANSPORT transport,
                                         tBTA_STATUS result) {
-  UNUSED(bd_addr);
-  UNUSED(transport);
-
   if (result != BTA_SUCCESS && result != BTA_BUSY) {
     BTIF_TRACE_WARNING("%s() - Encryption failed (%d)", __func__, result);
   }
diff --git a/btif/src/btif_hf_client.cc b/btif/src/btif_hf_client.cc
index 112ddee..490d472 100644
--- a/btif/src/btif_hf_client.cc
+++ b/btif/src/btif_hf_client.cc
@@ -126,9 +126,8 @@
  * Returns          void
  *
  ******************************************************************************/
-static void btif_in_hf_client_generic_evt(uint16_t event, char* p_param) {
-  UNUSED(p_param);
-
+static void btif_in_hf_client_generic_evt(uint16_t event,
+                                          UNUSED_ATTR char *p_param) {
   BTIF_TRACE_EVENT("%s: event=%d", __func__, event);
   switch (event) {
     case BTIF_HF_CLIENT_CB_AUDIO_CONNECTING: {
diff --git a/btif/src/btif_hh.cc b/btif/src/btif_hh.cc
index 39a54aa..b6a51d3 100644
--- a/btif/src/btif_hh.cc
+++ b/btif/src/btif_hh.cc
@@ -1338,11 +1338,10 @@
  *
  ******************************************************************************/
 static bt_status_t get_protocol(bt_bdaddr_t* bd_addr,
-                                bthh_protocol_mode_t protocolMode) {
+                                UNUSED_ATTR bthh_protocol_mode_t protocolMode) {
   CHECK_BTHH_INIT();
   btif_hh_device_t* p_dev;
   BD_ADDR* bda = (BD_ADDR*)bd_addr;
-  UNUSED(protocolMode);
 
   BTIF_TRACE_DEBUG(" addr = %02X:%02X:%02X:%02X:%02X:%02X", (*bda)[0],
                    (*bda)[1], (*bda)[2], (*bda)[3], (*bda)[4], (*bda)[5]);
diff --git a/btif/src/btif_hl.cc b/btif/src/btif_hl.cc
index fbf1c9b..750115c 100644
--- a/btif/src/btif_hl.cc
+++ b/btif/src/btif_hl.cc
@@ -61,12 +61,12 @@
 
 extern int btif_hl_update_maxfd(int max_org_s);
 extern void btif_hl_select_monitor_callback(fd_set* p_cur_set,
-                                            fd_set* p_org_set);
+                                            UNUSED_ATTR fd_set *p_org_set);
 extern void btif_hl_select_wakeup_callback(fd_set* p_org_set,
                                            int wakeup_signal);
 extern int btif_hl_update_maxfd(int max_org_s);
 extern void btif_hl_select_monitor_callback(fd_set* p_cur_set,
-                                            fd_set* p_org_set);
+                                            UNUSED_ATTR fd_set *p_org_set);
 extern void btif_hl_select_wakeup_callback(fd_set* p_org_set,
                                            int wakeup_signal);
 extern void btif_hl_soc_thread_init(void);
@@ -2880,10 +2880,9 @@
  *
  ******************************************************************************/
 static void btif_hl_proc_send_data_cfm(tBTA_HL_MDL_HANDLE mdl_handle,
-                                       tBTA_HL_STATUS status) {
+                                       UNUSED_ATTR tBTA_HL_STATUS status) {
   uint8_t app_idx, mcl_idx, mdl_idx;
   btif_hl_mdl_cb_t* p_dcb;
-  UNUSED(status);
 
   BTIF_TRACE_DEBUG("%s", __func__);
   if (btif_hl_find_mdl_idx_using_handle(mdl_handle, &app_idx, &mcl_idx,
@@ -2930,9 +2929,7 @@
  ******************************************************************************/
 static void btif_hl_proc_reg_request(uint8_t app_idx, uint8_t app_id,
                                      tBTA_HL_REG_PARAM* p_reg_param,
-                                     tBTA_HL_CBACK* p_cback) {
-  UNUSED(p_cback);
-
+                                     UNUSED_ATTR tBTA_HL_CBACK *p_cback) {
   BTIF_TRACE_DEBUG("%s app_idx=%d app_id=%d", __func__, app_idx, app_id);
 
   if (reg_counter > 1) {
@@ -4394,9 +4391,8 @@
  * Returns void
  *
  ******************************************************************************/
-void btif_hl_select_monitor_callback(fd_set* p_cur_set, fd_set* p_org_set) {
-  UNUSED(p_org_set);
-
+void btif_hl_select_monitor_callback(fd_set* p_cur_set,
+                                     UNUSED_ATTR fd_set *p_org_set) {
   BTIF_TRACE_DEBUG("entering %s", __func__);
 
   for (const list_node_t* node = list_begin(soc_queue);
@@ -4598,10 +4594,9 @@
  * Returns void
  *
  ******************************************************************************/
-static void* btif_hl_select_thread(void* arg) {
+static void* btif_hl_select_thread(UNUSED_ATTR void *arg) {
   fd_set org_set, curr_set;
   int r, max_curr_s, max_org_s;
-  UNUSED(arg);
 
   BTIF_TRACE_DEBUG("entered btif_hl_select_thread");
   FD_ZERO(&org_set);
diff --git a/btif/src/btif_pan.cc b/btif/src/btif_pan.cc
index 2d0696a..59b1017 100644
--- a/btif/src/btif_pan.cc
+++ b/btif/src/btif_pan.cc
@@ -407,10 +407,8 @@
 }
 
 int btpan_tap_send(int tap_fd, const BD_ADDR src, const BD_ADDR dst,
-                   uint16_t proto, const char* buf, uint16_t len, bool ext,
-                   bool forward) {
-  UNUSED(ext);
-  UNUSED(forward);
+                   uint16_t proto, const char* buf, uint16_t len, UNUSED_ATTR bool ext,
+                   UNUSED_ATTR bool forward) {
   if (tap_fd != INVALID_FD) {
     tETH_HDR eth_hdr;
     memcpy(&eth_hdr.h_dest, dst, ETH_ADDR_LEN);
diff --git a/stack/avct/avct_api.cc b/stack/avct/avct_api.cc
index 1ea88ef..6a3b2d1 100644
--- a/stack/avct/avct_api.cc
+++ b/stack/avct/avct_api.cc
@@ -50,10 +50,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void AVCT_Register(uint16_t mtu, uint16_t mtu_br, uint8_t sec_mask)
+void AVCT_Register(uint16_t mtu,
+                   UNUSED_ATTR uint16_t mtu_br, uint8_t sec_mask)
 {
-    UNUSED(mtu_br);
-
     AVCT_TRACE_API("AVCT_Register");
 
     /* register PSM with L2CAP */
diff --git a/stack/avct/avct_bcb_act.cc b/stack/avct/avct_bcb_act.cc
index 33275fa..42f252b 100644
--- a/stack/avct/avct_bcb_act.cc
+++ b/stack/avct/avct_bcb_act.cc
@@ -65,11 +65,10 @@
 **                  available.
 **
 *******************************************************************************/
-static BT_HDR *avct_bcb_msg_asmbl(tAVCT_BCB *p_bcb, BT_HDR *p_buf)
+static BT_HDR *avct_bcb_msg_asmbl(UNUSED_ATTR tAVCT_BCB *p_bcb, BT_HDR *p_buf)
 {
     uint8_t   *p;
     uint8_t   pkt_type;
-    UNUSED(p_bcb);
 
     /* parse the message header */
     p = (uint8_t *)(p_buf + 1) + p_buf->offset;
@@ -95,12 +94,12 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avct_bcb_chnl_open(tAVCT_BCB *p_bcb, tAVCT_LCB_EVT *p_data)
+void avct_bcb_chnl_open(tAVCT_BCB *p_bcb,
+                        UNUSED_ATTR tAVCT_LCB_EVT *p_data)
 {
     uint16_t              result = AVCT_RESULT_FAIL;
     tAVCT_LCB           *p_lcb = avct_lcb_by_bcb(p_bcb);
     tL2CAP_ERTM_INFO    ertm_info;
-    UNUSED(p_data);
 
     BTM_SetOutService(p_lcb->peer_addr, BTM_SEC_SERVICE_AVCTP_BROWSE, 0);
 
@@ -132,9 +131,8 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avct_bcb_unbind_disc(tAVCT_BCB *p_bcb, tAVCT_LCB_EVT *p_data)
+void avct_bcb_unbind_disc(UNUSED_ATTR tAVCT_BCB *p_bcb, tAVCT_LCB_EVT *p_data)
 {
-    UNUSED(p_bcb);
     p_data->p_ccb->p_bcb = NULL;
     (*p_data->p_ccb->cc.p_ctrl_cback)(avct_ccb_to_idx(p_data->p_ccb),
             AVCT_BROWSE_DISCONN_CFM_EVT, 0, NULL);
@@ -222,10 +220,10 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avct_bcb_open_fail(tAVCT_BCB *p_bcb, tAVCT_LCB_EVT *p_data)
+void avct_bcb_open_fail(tAVCT_BCB *p_bcb,
+                        UNUSED_ATTR tAVCT_LCB_EVT *p_data)
 {
     tAVCT_CCB   *p_ccb = &avct_cb.ccb[0];
-    UNUSED(p_data);
 
     for (int idx = 0; idx < AVCT_NUM_CONN; idx++, p_ccb++)
     {
@@ -247,11 +245,11 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avct_bcb_close_ind(tAVCT_BCB *p_bcb, tAVCT_LCB_EVT *p_data)
+void avct_bcb_close_ind(tAVCT_BCB *p_bcb,
+                        UNUSED_ATTR tAVCT_LCB_EVT *p_data)
 {
     tAVCT_CCB   *p_ccb = &avct_cb.ccb[0];
     tAVCT_LCB   *p_lcb = avct_lcb_by_bcb(p_bcb);
-    UNUSED(p_data);
 
     for (int idx = 0; idx < AVCT_NUM_CONN; idx++, p_ccb++)
     {
@@ -368,9 +366,9 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avct_bcb_chnl_disc(tAVCT_BCB *p_bcb, tAVCT_LCB_EVT *p_data)
+void avct_bcb_chnl_disc(tAVCT_BCB *p_bcb,
+                        UNUSED_ATTR tAVCT_LCB_EVT *p_data)
 {
-    UNUSED(p_data);
     L2CA_DisconnectReq(p_bcb->ch_lcid);
 }
 
@@ -385,9 +383,8 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avct_bcb_bind_fail(tAVCT_BCB *p_bcb, tAVCT_LCB_EVT *p_data)
+void avct_bcb_bind_fail(UNUSED_ATTR tAVCT_BCB *p_bcb, tAVCT_LCB_EVT *p_data)
 {
-    UNUSED(p_bcb);
     p_data->p_ccb->p_bcb = NULL;
     (*p_data->p_ccb->cc.p_ctrl_cback)(avct_ccb_to_idx(p_data->p_ccb),
             AVCT_BROWSE_CONN_CFM_EVT, AVCT_RESULT_FAIL, NULL);
@@ -516,9 +513,8 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avct_bcb_free_msg_ind(tAVCT_BCB *p_bcb, tAVCT_LCB_EVT *p_data)
+void avct_bcb_free_msg_ind(UNUSED_ATTR tAVCT_BCB *p_bcb, tAVCT_LCB_EVT *p_data)
 {
-    UNUSED(p_bcb);
     if (p_data)
         osi_free_and_reset((void **)&p_data->p_buf);
 }
@@ -613,10 +609,10 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avct_bcb_dealloc(tAVCT_BCB *p_bcb, tAVCT_LCB_EVT *p_data)
+void avct_bcb_dealloc(tAVCT_BCB *p_bcb,
+                      UNUSED_ATTR tAVCT_LCB_EVT *p_data)
 {
     tAVCT_CCB   *p_ccb = &avct_cb.ccb[0];
-    UNUSED(p_data);
 
     AVCT_TRACE_DEBUG("%s %d", __func__, p_bcb->allocated);
 
diff --git a/stack/avct/avct_l2c.cc b/stack/avct/avct_l2c.cc
index b594c09..a085ac6 100644
--- a/stack/avct/avct_l2c.cc
+++ b/stack/avct/avct_l2c.cc
@@ -101,12 +101,12 @@
 ** Returns          void
 **
 *******************************************************************************/
-void avct_l2c_connect_ind_cback(BD_ADDR bd_addr, uint16_t lcid, uint16_t psm, uint8_t id)
+void avct_l2c_connect_ind_cback(BD_ADDR bd_addr, uint16_t lcid,
+                                UNUSED_ATTR uint16_t psm, uint8_t id)
 {
     tAVCT_LCB       *p_lcb;
     uint16_t        result = L2CAP_CONN_OK;
     tL2CAP_CFG_INFO cfg;
-    UNUSED(psm);
 
     /* do we already have a channel for this peer? */
     if ((p_lcb = avct_lcb_by_bd(bd_addr)) == NULL)
diff --git a/stack/avct/avct_l2c_br.cc b/stack/avct/avct_l2c_br.cc
index e63728c..2635b11 100644
--- a/stack/avct/avct_l2c_br.cc
+++ b/stack/avct/avct_l2c_br.cc
@@ -111,14 +111,14 @@
 ** Returns          void
 **
 *******************************************************************************/
-void avct_l2c_br_connect_ind_cback(BD_ADDR bd_addr, uint16_t lcid, uint16_t psm, uint8_t id)
+void avct_l2c_br_connect_ind_cback(BD_ADDR bd_addr, uint16_t lcid,
+                                   UNUSED_ATTR uint16_t psm, uint8_t id)
 {
     tAVCT_LCB           *p_lcb;
     uint16_t              result = L2CAP_CONN_NO_RESOURCES;
     tL2CAP_CFG_INFO     cfg;
     tAVCT_BCB           *p_bcb;
     tL2CAP_ERTM_INFO    ertm_info;
-    UNUSED(psm);
 
     memset(&cfg, 0, sizeof(tL2CAP_CFG_INFO));
     cfg.mtu_present = true;
diff --git a/stack/avct/avct_lcb.cc b/stack/avct/avct_lcb.cc
index de77248..0270953 100644
--- a/stack/avct/avct_lcb.cc
+++ b/stack/avct/avct_lcb.cc
@@ -346,10 +346,9 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avct_lcb_dealloc(tAVCT_LCB *p_lcb, tAVCT_LCB_EVT *p_data)
+void avct_lcb_dealloc(tAVCT_LCB *p_lcb,
+                      UNUSED_ATTR tAVCT_LCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     AVCT_TRACE_DEBUG("%s allocated: %d", __func__, p_lcb->allocated);
 
     // Check if the LCB is still referenced
diff --git a/stack/avct/avct_lcb_act.cc b/stack/avct/avct_lcb_act.cc
index 0866d4d..dff0fcc 100644
--- a/stack/avct/avct_lcb_act.cc
+++ b/stack/avct/avct_lcb_act.cc
@@ -179,10 +179,10 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avct_lcb_chnl_open(tAVCT_LCB *p_lcb, tAVCT_LCB_EVT *p_data)
+void avct_lcb_chnl_open(tAVCT_LCB *p_lcb,
+                        UNUSED_ATTR tAVCT_LCB_EVT *p_data)
 {
     uint16_t result = AVCT_RESULT_FAIL;
-    UNUSED(p_data);
 
     BTM_SetOutService(p_lcb->peer_addr, BTM_SEC_SERVICE_AVCTP, 0);
     /* call l2cap connect req */
@@ -205,10 +205,8 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avct_lcb_unbind_disc(tAVCT_LCB *p_lcb, tAVCT_LCB_EVT *p_data)
+void avct_lcb_unbind_disc(UNUSED_ATTR tAVCT_LCB *p_lcb, tAVCT_LCB_EVT *p_data)
 {
-    UNUSED(p_lcb);
-
     avct_ccb_dealloc(p_data->p_ccb, AVCT_DISCONNECT_CFM_EVT, 0, NULL);
 }
 
@@ -302,11 +300,11 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avct_lcb_close_ind(tAVCT_LCB *p_lcb, tAVCT_LCB_EVT *p_data)
+void avct_lcb_close_ind(tAVCT_LCB *p_lcb,
+                        UNUSED_ATTR tAVCT_LCB_EVT *p_data)
 {
     tAVCT_CCB           *p_ccb = &avct_cb.ccb[0];
     int                 i;
-    UNUSED(p_data);
 
     for (i = 0; i < AVCT_NUM_CONN; i++, p_ccb++)
     {
@@ -430,10 +428,9 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avct_lcb_chnl_disc(tAVCT_LCB *p_lcb, tAVCT_LCB_EVT *p_data)
+void avct_lcb_chnl_disc(tAVCT_LCB *p_lcb,
+                        UNUSED_ATTR tAVCT_LCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     L2CA_DisconnectReq(p_lcb->ch_lcid);
 }
 
@@ -448,10 +445,8 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avct_lcb_bind_fail(tAVCT_LCB *p_lcb, tAVCT_LCB_EVT *p_data)
+void avct_lcb_bind_fail(UNUSED_ATTR tAVCT_LCB *p_lcb, tAVCT_LCB_EVT *p_data)
 {
-    UNUSED(p_lcb);
-
     avct_ccb_dealloc(p_data->p_ccb, AVCT_CONNECT_CFM_EVT, AVCT_RESULT_FAIL, NULL);
 }
 
@@ -507,10 +502,8 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avct_lcb_discard_msg(tAVCT_LCB *p_lcb, tAVCT_LCB_EVT *p_data)
+void avct_lcb_discard_msg(UNUSED_ATTR tAVCT_LCB *p_lcb, tAVCT_LCB_EVT *p_data)
 {
-    UNUSED(p_lcb);
-
     AVCT_TRACE_WARNING("%s Dropping message", __func__);
     osi_free_and_reset((void **)&p_data->ul_msg.p_buf);
 }
@@ -638,10 +631,8 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avct_lcb_free_msg_ind(tAVCT_LCB *p_lcb, tAVCT_LCB_EVT *p_data)
+void avct_lcb_free_msg_ind(UNUSED_ATTR tAVCT_LCB *p_lcb, tAVCT_LCB_EVT *p_data)
 {
-    UNUSED(p_lcb);
-
     if (p_data == NULL)
         return;
 
diff --git a/stack/avdt/avdt_ad.cc b/stack/avdt/avdt_ad.cc
index fbf1cf0..631712b 100644
--- a/stack/avdt/avdt_ad.cc
+++ b/stack/avdt/avdt_ad.cc
@@ -320,12 +320,12 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_ad_tc_close_ind(tAVDT_TC_TBL *p_tbl, uint16_t reason)
+void avdt_ad_tc_close_ind(tAVDT_TC_TBL *p_tbl,
+                          UNUSED_ATTR uint16_t reason)
 {
     tAVDT_CCB   *p_ccb;
     tAVDT_SCB   *p_scb;
     tAVDT_SCB_TC_CLOSE  close;
-    UNUSED(reason);
 
     close.old_tc_state = p_tbl->state;
     /* clear avdt_ad_tc_tbl entry */
diff --git a/stack/avdt/avdt_ccb.cc b/stack/avdt/avdt_ccb.cc
index 480838c..97f0167 100644
--- a/stack/avdt/avdt_ccb.cc
+++ b/stack/avdt/avdt_ccb.cc
@@ -413,10 +413,9 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avdt_ccb_dealloc(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
+void avdt_ccb_dealloc(tAVDT_CCB *p_ccb,
+                      UNUSED_ATTR tAVDT_CCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     AVDT_TRACE_DEBUG("avdt_ccb_dealloc %d", avdt_ccb_to_idx(p_ccb));
     alarm_free(p_ccb->idle_ccb_timer);
     alarm_free(p_ccb->ret_ccb_timer);
diff --git a/stack/avdt/avdt_ccb_act.cc b/stack/avdt/avdt_ccb_act.cc
index 67a3a1b..3f5daf3 100644
--- a/stack/avdt/avdt_ccb_act.cc
+++ b/stack/avdt/avdt_ccb_act.cc
@@ -77,10 +77,9 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avdt_ccb_chan_open(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
+void avdt_ccb_chan_open(tAVDT_CCB *p_ccb,
+                        UNUSED_ATTR tAVDT_CCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     BTM_SetOutService(p_ccb->peer_addr, BTM_SEC_SERVICE_AVDTP, AVDT_CHAN_SIG);
     avdt_ad_open_req(AVDT_CHAN_SIG, p_ccb, NULL, AVDT_INT);
 }
@@ -96,10 +95,9 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avdt_ccb_chan_close(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
+void avdt_ccb_chan_close(tAVDT_CCB *p_ccb,
+                         UNUSED_ATTR tAVDT_CCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     /* close the transport channel used by this CCB */
     avdt_ad_close_req(AVDT_CHAN_SIG, p_ccb, NULL);
 }
@@ -115,11 +113,11 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avdt_ccb_chk_close(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
+void avdt_ccb_chk_close(tAVDT_CCB *p_ccb,
+                        UNUSED_ATTR tAVDT_CCB_EVT *p_data)
 {
     int         i;
     tAVDT_SCB   *p_scb = &avdt_cb.scb[0];
-    UNUSED(p_data);
 
     /* see if there are any active scbs associated with this ccb */
     for (i = 0; i < AVDT_NUM_SEPS; i++, p_scb++)
@@ -663,12 +661,12 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avdt_ccb_clear_cmds(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
+void avdt_ccb_clear_cmds(tAVDT_CCB *p_ccb,
+                         UNUSED_ATTR tAVDT_CCB_EVT *p_data)
 {
     int             i;
     tAVDT_SCB       *p_scb = &avdt_cb.scb[0];
     uint8_t         err_code = AVDT_ERR_CONNECT;
-    UNUSED(p_data);
 
     /* clear the ccb */
     avdt_ccb_clear_ccb(p_ccb);
@@ -754,9 +752,9 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avdt_ccb_free_cmd(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
+void avdt_ccb_free_cmd(tAVDT_CCB *p_ccb,
+                       UNUSED_ATTR tAVDT_CCB_EVT *p_data)
 {
-    UNUSED(p_data);
     osi_free_and_reset((void **)&p_ccb->p_curr_cmd);
 }
 
@@ -836,10 +834,10 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avdt_ccb_snd_cmd(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
+void avdt_ccb_snd_cmd(tAVDT_CCB *p_ccb,
+                      UNUSED_ATTR tAVDT_CCB_EVT *p_data)
 {
     BT_HDR  *p_msg;
-    UNUSED(p_data);
 
     /* do we have commands to send?  send next command;  make sure we're clear;
     ** not congested, not sending fragment, not waiting for response
@@ -867,10 +865,10 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avdt_ccb_snd_msg(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
+void avdt_ccb_snd_msg(tAVDT_CCB *p_ccb,
+                      UNUSED_ATTR tAVDT_CCB_EVT *p_data)
 {
     BT_HDR      *p_msg;
-    UNUSED(p_data);
 
     /* if not congested */
     if (!p_ccb->cong)
@@ -910,10 +908,9 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avdt_ccb_set_reconn(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
+void avdt_ccb_set_reconn(tAVDT_CCB *p_ccb,
+                         UNUSED_ATTR tAVDT_CCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     p_ccb->reconn = true;
 }
 
@@ -927,10 +924,9 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avdt_ccb_clr_reconn(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
+void avdt_ccb_clr_reconn(tAVDT_CCB *p_ccb,
+                         UNUSED_ATTR tAVDT_CCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     p_ccb->reconn = false;
 }
 
@@ -946,10 +942,10 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avdt_ccb_chk_reconn(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
+void avdt_ccb_chk_reconn(tAVDT_CCB *p_ccb,
+                         UNUSED_ATTR tAVDT_CCB_EVT *p_data)
 {
     uint8_t err_code = AVDT_ERR_CONNECT;
-    UNUSED(p_data);
 
     if (p_ccb->reconn)
     {
@@ -981,10 +977,9 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avdt_ccb_chk_timer(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
+void avdt_ccb_chk_timer(tAVDT_CCB *p_ccb,
+                        UNUSED_ATTR tAVDT_CCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     alarm_cancel(p_ccb->idle_ccb_timer);
 }
 
@@ -1039,10 +1034,9 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avdt_ccb_do_disconn(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
+void avdt_ccb_do_disconn(tAVDT_CCB *p_ccb,
+                         UNUSED_ATTR tAVDT_CCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     /* clear any pending commands */
     avdt_ccb_clear_cmds(p_ccb, NULL);
 
@@ -1060,12 +1054,12 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avdt_ccb_ll_closed(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
+void avdt_ccb_ll_closed(tAVDT_CCB *p_ccb,
+                        UNUSED_ATTR tAVDT_CCB_EVT *p_data)
 {
     tAVDT_CTRL_CBACK    *p_cback;
     BD_ADDR             bd_addr;
     tAVDT_CTRL          avdt_ctrl;
-    UNUSED(p_data);
 
     /* clear any pending commands */
     avdt_ccb_clear_cmds(p_ccb, NULL);
diff --git a/stack/avdt/avdt_l2c.cc b/stack/avdt/avdt_l2c.cc
index 02830fd..4a8a85f 100644
--- a/stack/avdt/avdt_l2c.cc
+++ b/stack/avdt/avdt_l2c.cc
@@ -36,7 +36,8 @@
 #include "device/include/interop.h"
 
 /* callback function declarations */
-void avdt_l2c_connect_ind_cback(BD_ADDR bd_addr, uint16_t lcid, uint16_t psm, uint8_t id);
+void avdt_l2c_connect_ind_cback(BD_ADDR bd_addr, uint16_t lcid,
+                                uint16_t psm, uint8_t id);
 void avdt_l2c_connect_cfm_cback(uint16_t lcid, uint16_t result);
 void avdt_l2c_config_cfm_cback(uint16_t lcid, tL2CAP_CFG_INFO *p_cfg);
 void avdt_l2c_config_ind_cback(uint16_t lcid, tL2CAP_CFG_INFO *p_cfg);
@@ -71,12 +72,11 @@
 **
 *******************************************************************************/
 static void avdt_sec_check_complete_term (BD_ADDR bd_addr, tBT_TRANSPORT transport,
-                                                 void *p_ref_data, uint8_t res)
+                                                 UNUSED_ATTR void *p_ref_data, uint8_t res)
 {
     tAVDT_CCB       *p_ccb = NULL;
     tL2CAP_CFG_INFO cfg;
     tAVDT_TC_TBL    *p_tbl;
-    UNUSED(p_ref_data);
 
     AVDT_TRACE_DEBUG("avdt_sec_check_complete_term res: %d", res);
     if (!bd_addr)
@@ -129,12 +129,11 @@
 **
 *******************************************************************************/
 static void avdt_sec_check_complete_orig (BD_ADDR bd_addr, tBT_TRANSPORT trasnport,
-                                                void *p_ref_data, uint8_t res)
+                                                UNUSED_ATTR void *p_ref_data, uint8_t res)
 {
     tAVDT_CCB       *p_ccb = NULL;
     tL2CAP_CFG_INFO cfg;
     tAVDT_TC_TBL    *p_tbl;
-    UNUSED(p_ref_data);
 
     AVDT_TRACE_DEBUG("avdt_sec_check_complete_orig res: %d", res);
     if (bd_addr)
@@ -172,14 +171,14 @@
 ** Returns          void
 **
 *******************************************************************************/
-void avdt_l2c_connect_ind_cback(BD_ADDR bd_addr, uint16_t lcid, uint16_t psm, uint8_t id)
+void avdt_l2c_connect_ind_cback(BD_ADDR bd_addr, uint16_t lcid,
+                                UNUSED_ATTR uint16_t psm, uint8_t id)
 {
     tAVDT_CCB       *p_ccb;
     tAVDT_TC_TBL    *p_tbl = NULL;
     uint16_t        result;
     tL2CAP_CFG_INFO cfg;
     tBTM_STATUS rc;
-    UNUSED(psm);
 
     /* do we already have a control channel for this peer? */
     if ((p_ccb = avdt_ccb_by_bd(bd_addr)) == NULL)
diff --git a/stack/avdt/avdt_msg.cc b/stack/avdt/avdt_msg.cc
index ccaf57b..0c5ed41 100644
--- a/stack/avdt/avdt_msg.cc
+++ b/stack/avdt/avdt_msg.cc
@@ -333,10 +333,9 @@
 ** Returns          void.
 **
 *******************************************************************************/
-static void avdt_msg_bld_none(uint8_t **p, tAVDT_MSG *p_msg)
+static void avdt_msg_bld_none(UNUSED_ATTR uint8_t **p,
+                              UNUSED_ATTR tAVDT_MSG *p_msg)
 {
-    UNUSED(p);
-    UNUSED(p_msg);
     return;
 }
 
@@ -682,11 +681,9 @@
 ** Returns          Error code or zero if no error.
 **
 *******************************************************************************/
-static uint8_t avdt_msg_prs_none(tAVDT_MSG *p_msg, uint8_t *p, uint16_t len)
+static uint8_t avdt_msg_prs_none(UNUSED_ATTR tAVDT_MSG *p_msg, UNUSED_ATTR uint8_t *p,
+                                 UNUSED_ATTR uint16_t len)
 {
-    UNUSED(p_msg);
-    UNUSED(p);
-    UNUSED(len);
     return 0;
 }
 
diff --git a/stack/avdt/avdt_scb.cc b/stack/avdt/avdt_scb.cc
index cf1b520..3a2fc2e 100644
--- a/stack/avdt/avdt_scb.cc
+++ b/stack/avdt/avdt_scb.cc
@@ -627,10 +627,9 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void avdt_scb_dealloc(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_dealloc(tAVDT_SCB *p_scb,
+                      UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     AVDT_TRACE_DEBUG("%s: hdl=%d", __func__, avdt_scb_to_hdl(p_scb));
     alarm_free(p_scb->transport_channel_timer);
     memset(p_scb, 0, sizeof(tAVDT_SCB));
diff --git a/stack/avdt/avdt_scb_act.cc b/stack/avdt/avdt_scb_act.cc
index 290bad6..74c840c 100644
--- a/stack/avdt/avdt_scb_act.cc
+++ b/stack/avdt/avdt_scb_act.cc
@@ -96,10 +96,9 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_hdl_abort_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_hdl_abort_rsp(UNUSED_ATTR tAVDT_SCB *p_scb,
+                            UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
-    UNUSED(p_scb);
-    UNUSED(p_data);
     return;
 }
 
@@ -162,10 +161,9 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_hdl_getconfig_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_hdl_getconfig_rsp(UNUSED_ATTR tAVDT_SCB *p_scb,
+                                UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
-    UNUSED(p_scb);
-    UNUSED(p_data);
     return;
 }
 
@@ -212,10 +210,8 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_hdl_open_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_hdl_open_rsp(tAVDT_SCB *p_scb, UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     /* initiate opening of trans channels for this SEID */
     p_scb->role = AVDT_OPEN_INT;
     avdt_ad_open_req(AVDT_CHAN_MEDIA, p_scb->p_ccb, p_scb, AVDT_INT);
@@ -418,10 +414,8 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_drop_pkt(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_drop_pkt(UNUSED_ATTR tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
 {
-    UNUSED(p_scb);
-
     AVDT_TRACE_ERROR("%s dropped incoming media packet", __func__);
     osi_free_and_reset((void **)&p_data->p_pkt);
 }
@@ -626,10 +620,10 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_hdl_setconfig_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_hdl_setconfig_rsp(tAVDT_SCB *p_scb,
+                                UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
     tAVDT_EVT_HDR   single;
-    UNUSED(p_data);
 
     if (p_scb->p_ccb != NULL)
     {
@@ -652,10 +646,9 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_hdl_start_cmd(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_hdl_start_cmd(tAVDT_SCB *p_scb,
+			    UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
                               p_scb->p_ccb ? p_scb->p_ccb->peer_addr : NULL,
                               AVDT_START_IND_EVT,
@@ -690,10 +683,9 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_hdl_suspend_cmd(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_hdl_suspend_cmd(tAVDT_SCB *p_scb,
+			      UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
                               p_scb->p_ccb ? p_scb->p_ccb->peer_addr : NULL,
                               AVDT_SUSPEND_IND_EVT,
@@ -1001,10 +993,10 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_snd_abort_req(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_snd_abort_req(tAVDT_SCB *p_scb,
+                            UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
     tAVDT_EVT_HDR   hdr;
-    UNUSED(p_data);
 
     if (p_scb->p_ccb != NULL)
     {
@@ -1025,10 +1017,8 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_snd_abort_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_snd_abort_rsp(UNUSED_ATTR tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
 {
-    UNUSED(p_scb);
-
     avdt_msg_send_rsp(avdt_ccb_by_idx(p_data->msg.hdr.ccb_idx), AVDT_SIG_ABORT,
                       &p_data->msg);
 }
@@ -1042,10 +1032,10 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_snd_close_req(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_snd_close_req(tAVDT_SCB *p_scb,
+                            UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
     tAVDT_EVT_HDR   hdr;
-    UNUSED(p_data);
 
     p_scb->role = AVDT_CLOSE_INT;
 
@@ -1092,10 +1082,10 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_snd_getconfig_req(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_snd_getconfig_req(tAVDT_SCB *p_scb,
+                                UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
     tAVDT_EVT_HDR   hdr;
-    UNUSED(p_data);
 
     hdr.seid = p_scb->peer_seid;
 
@@ -1125,10 +1115,10 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_snd_open_req(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_snd_open_req(tAVDT_SCB *p_scb,
+                           UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
     tAVDT_EVT_HDR   hdr;
-    UNUSED(p_data);
 
     hdr.seid = p_scb->peer_seid;
 
@@ -1332,10 +1322,9 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_snd_tc_close(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_snd_tc_close(tAVDT_SCB *p_scb,
+                           UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
 #if (AVDT_REPORTING == TRUE)
     if(p_scb->curr_cfg.psc_mask & AVDT_PSC_REPORT)
         avdt_ad_close_req(AVDT_CHAN_REPORT, p_scb->p_ccb, p_scb);
@@ -1353,10 +1342,10 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_cb_err(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_cb_err(tAVDT_SCB *p_scb,
+		     UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
     tAVDT_CTRL          avdt_ctrl;
-    UNUSED(p_data);
 
     /* set error code and parameter */
     avdt_ctrl.hdr.err_code = AVDT_ERR_BAD_STATE;
@@ -1394,10 +1383,8 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_rej_state(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_rej_state(UNUSED_ATTR tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
 {
-    UNUSED(p_scb);
-
     p_data->msg.hdr.err_code = AVDT_ERR_BAD_STATE;
     p_data->msg.hdr.err_param = 0;
     avdt_msg_send_rej(avdt_ccb_by_idx(p_data->msg.hdr.ccb_idx),
@@ -1414,10 +1401,8 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_rej_in_use(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_rej_in_use(UNUSED_ATTR tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
 {
-    UNUSED(p_scb);
-
     p_data->msg.hdr.err_code = AVDT_ERR_IN_USE;
     p_data->msg.hdr.err_param = 0;
     avdt_msg_send_rej(avdt_ccb_by_idx(p_data->msg.hdr.ccb_idx),
@@ -1434,10 +1419,8 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_rej_not_in_use(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_rej_not_in_use(UNUSED_ATTR tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
 {
-    UNUSED(p_scb);
-
     p_data->msg.hdr.err_code = AVDT_ERR_NOT_IN_USE;
     p_data->msg.hdr.err_param = 0;
     avdt_msg_send_rej(avdt_ccb_by_idx(p_data->msg.hdr.ccb_idx),
@@ -1453,10 +1436,9 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_set_remove(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_set_remove(tAVDT_SCB *p_scb,
+                         UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     p_scb->remove = true;
 }
 
@@ -1495,13 +1477,13 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_clr_pkt(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_clr_pkt(tAVDT_SCB *p_scb,
+                      UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
     tAVDT_CTRL      avdt_ctrl;
     tAVDT_CCB       *p_ccb;
     uint8_t         tcid;
     uint16_t        lcid;
-    UNUSED(p_data);
 
     /* set error code and parameter */
     avdt_ctrl.hdr.err_code = AVDT_ERR_BAD_STATE;
@@ -1541,11 +1523,11 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_chk_snd_pkt(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_chk_snd_pkt(tAVDT_SCB *p_scb,
+                          UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
     tAVDT_CTRL      avdt_ctrl;
     BT_HDR          *p_pkt;
-    UNUSED(p_data);
 
     avdt_ctrl.hdr.err_code = 0;
 
@@ -1573,10 +1555,9 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_transport_channel_timer(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_transport_channel_timer(tAVDT_SCB *p_scb,
+				      UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     alarm_set_on_queue(p_scb->transport_channel_timer,
                        AVDT_SCB_TC_DISC_TIMEOUT_MS,
                        avdt_scb_transport_channel_timer_timeout, p_scb,
@@ -1592,9 +1573,9 @@
 ** Returns          Nothing.
 **
 *******************************************************************************/
-void avdt_scb_clr_vars(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
+void avdt_scb_clr_vars(tAVDT_SCB *p_scb,
+                       UNUSED_ATTR tAVDT_SCB_EVT *p_data)
 {
-    UNUSED(p_data);
     p_scb->in_use = false;
     p_scb->p_ccb = NULL;
     p_scb->peer_seid = 0;
diff --git a/stack/avrc/avrc_bld_tg.cc b/stack/avrc/avrc_bld_tg.cc
index da15317..28677a1 100644
--- a/stack/avrc/avrc_bld_tg.cc
+++ b/stack/avrc/avrc_bld_tg.cc
@@ -285,11 +285,9 @@
 **                  Otherwise, the error code.
 **
 *******************************************************************************/
-static tAVRC_STS avrc_bld_set_app_setting_value_rsp (tAVRC_RSP *p_rsp, BT_HDR *p_pkt)
+static tAVRC_STS avrc_bld_set_app_setting_value_rsp (UNUSED_ATTR tAVRC_RSP *p_rsp,
+                                                     UNUSED_ATTR BT_HDR *p_pkt)
 {
-    UNUSED(p_rsp);
-    UNUSED(p_pkt);
-
     /* nothing to be added. */
     AVRC_TRACE_API("%s", __func__);
     return AVRC_STS_NO_ERROR;
@@ -419,11 +417,9 @@
 **                  Otherwise, the error code.
 **
 *******************************************************************************/
-static tAVRC_STS avrc_bld_inform_charset_rsp (tAVRC_RSP *p_rsp, BT_HDR *p_pkt)
+static tAVRC_STS avrc_bld_inform_charset_rsp (UNUSED_ATTR tAVRC_RSP *p_rsp,
+                                              UNUSED_ATTR BT_HDR *p_pkt)
 {
-    UNUSED(p_rsp);
-    UNUSED(p_pkt);
-
     /* nothing to be added. */
     AVRC_TRACE_API("%s", __func__);
     return AVRC_STS_NO_ERROR;
@@ -440,11 +436,9 @@
 **                  Otherwise, the error code.
 **
 *******************************************************************************/
-static tAVRC_STS avrc_bld_inform_battery_status_rsp (tAVRC_RSP *p_rsp, BT_HDR *p_pkt)
+static tAVRC_STS avrc_bld_inform_battery_status_rsp (UNUSED_ATTR tAVRC_RSP *p_rsp,
+                                                     UNUSED_ATTR BT_HDR *p_pkt)
 {
-    UNUSED(p_rsp);
-    UNUSED(p_pkt);
-
     /* nothing to be added. */
     AVRC_TRACE_API("%s", __func__);
     return AVRC_STS_NO_ERROR;
diff --git a/stack/avrc/avrc_pars_ct.cc b/stack/avrc/avrc_pars_ct.cc
index aa3e1c7..fbd5df0 100644
--- a/stack/avrc/avrc_pars_ct.cc
+++ b/stack/avrc/avrc_pars_ct.cc
@@ -664,12 +664,12 @@
 **                  Otherwise, the error code defined by AVRCP 1.4
 **
 *******************************************************************************/
-tAVRC_STS AVRC_ParsResponse (tAVRC_MSG *p_msg, tAVRC_RESPONSE *p_result, uint8_t *p_buf, uint16_t buf_len)
+tAVRC_STS AVRC_ParsResponse (tAVRC_MSG *p_msg, tAVRC_RESPONSE *p_result,
+                             UNUSED_ATTR uint8_t *p_buf,
+                             UNUSED_ATTR uint16_t buf_len)
 {
     tAVRC_STS  status = AVRC_STS_INTERNAL_ERR;
     uint16_t id;
-    UNUSED(p_buf);
-    UNUSED(buf_len);
 
     if (p_msg && p_result)
     {
diff --git a/stack/bnep/bnep_main.cc b/stack/bnep/bnep_main.cc
index 1402d12..e904084 100644
--- a/stack/bnep/bnep_main.cc
+++ b/stack/bnep/bnep_main.cc
@@ -118,10 +118,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void bnep_connect_ind (BD_ADDR  bd_addr, uint16_t l2cap_cid, uint16_t psm, uint8_t l2cap_id)
+static void bnep_connect_ind (BD_ADDR  bd_addr, uint16_t l2cap_cid,
+                              UNUSED_ATTR uint16_t psm, uint8_t l2cap_id)
 {
     tBNEP_CONN    *p_bcb = bnepu_find_bcb_by_bd_addr (bd_addr);
-    UNUSED(psm);
 
     /* If we are not acting as server, or already have a connection, or have */
     /* no more resources to handle the connection, reject the connection.    */
diff --git a/stack/bnep/bnep_utils.cc b/stack/bnep/bnep_utils.cc
index 6aa4477..02f0cee 100644
--- a/stack/bnep/bnep_utils.cc
+++ b/stack/bnep/bnep_utils.cc
@@ -1162,14 +1162,12 @@
 ** Returns          void
 **
 *******************************************************************************/
-void bnep_sec_check_complete (BD_ADDR bd_addr, tBT_TRANSPORT trasnport,
+void bnep_sec_check_complete (UNUSED_ATTR BD_ADDR bd_addr, UNUSED_ATTR tBT_TRANSPORT trasnport,
                                     void *p_ref_data, uint8_t result)
 {
     tBNEP_CONN      *p_bcb = (tBNEP_CONN *)p_ref_data;
     uint16_t        resp_code = BNEP_SETUP_CONN_OK;
     bool            is_role_change;
-    UNUSED(bd_addr);
-    UNUSED(trasnport);
 
     BNEP_TRACE_EVENT ("BNEP security callback returned result %d", result);
     if (p_bcb->con_flags & BNEP_FLAGS_CONN_COMPLETED)
diff --git a/stack/btm/btm_ble.cc b/stack/btm/btm_ble.cc
index f90fc67..a24860b 100644
--- a/stack/btm/btm_ble.cc
+++ b/stack/btm/btm_ble.cc
@@ -1855,11 +1855,11 @@
 **
 *******************************************************************************/
 void btm_ble_connected (uint8_t *bda, uint16_t handle, uint8_t enc_mode, uint8_t role,
-                        tBLE_ADDR_TYPE addr_type, bool    addr_matched)
+                        tBLE_ADDR_TYPE addr_type,
+                        UNUSED_ATTR bool addr_matched)
 {
     tBTM_SEC_DEV_REC *p_dev_rec = btm_find_dev (bda);
     tBTM_BLE_CB *p_cb = &btm_cb.ble_ctr_cb;
-    UNUSED(addr_matched);
 
     BTM_TRACE_EVENT ("btm_ble_connected");
 
@@ -1922,7 +1922,8 @@
 **  Description     LE connection complete.
 **
 ******************************************************************************/
-void btm_ble_conn_complete(uint8_t *p, uint16_t evt_len, bool    enhanced)
+void btm_ble_conn_complete(uint8_t *p,
+                           UNUSED_ATTR uint16_t evt_len, bool    enhanced)
 {
 #if (BLE_PRIVACY_SPT == TRUE)
     uint8_t     *p_data = p, peer_addr_type;
@@ -1933,7 +1934,6 @@
     BD_ADDR     bda;
     uint16_t    conn_interval, conn_latency, conn_timeout;
     bool        match = false;
-    UNUSED(evt_len);
 
     STREAM_TO_UINT8   (status, p);
     STREAM_TO_UINT16   (handle, p);
diff --git a/stack/btm/btm_ble_bgconn.cc b/stack/btm/btm_ble_bgconn.cc
index 9763154..6d15e02 100644
--- a/stack/btm/btm_ble_bgconn.cc
+++ b/stack/btm/btm_ble_bgconn.cc
@@ -286,11 +286,11 @@
 ** Description      Indicates white list cleared.
 **
 *******************************************************************************/
-void btm_ble_clear_white_list_complete(uint8_t *p_data, uint16_t evt_len)
+void btm_ble_clear_white_list_complete(uint8_t *p_data,
+                                       UNUSED_ATTR uint16_t evt_len)
 {
     tBTM_BLE_CB *p_cb = &btm_cb.ble_ctr_cb;
     uint8_t     status;
-    UNUSED(evt_len);
 
     BTM_TRACE_EVENT ("btm_ble_clear_white_list_complete");
     STREAM_TO_UINT8  (status, p_data);
@@ -333,9 +333,9 @@
 ** Description      White list element removal complete
 **
 *******************************************************************************/
-void btm_ble_remove_from_white_list_complete(uint8_t *p, uint16_t evt_len)
+void btm_ble_remove_from_white_list_complete(uint8_t *p,
+                                             UNUSED_ATTR uint16_t evt_len)
 {
-    UNUSED(evt_len);
     BTM_TRACE_EVENT ("%s status=%d", __func__, *p);
     if (*p == HCI_SUCCESS)
         ++btm_cb.ble_ctr_cb.white_list_avail_size;
diff --git a/stack/btm/btm_ble_gap.cc b/stack/btm/btm_ble_gap.cc
index f817734..eec70a6 100644
--- a/stack/btm/btm_ble_gap.cc
+++ b/stack/btm/btm_ble_gap.cc
@@ -235,11 +235,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-bool    BTM_BleUpdateAdvWhitelist(bool    add_remove, BD_ADDR remote_bda)
+bool    BTM_BleUpdateAdvWhitelist(UNUSED_ATTR bool add_remove,
+                                  UNUSED_ATTR BD_ADDR remote_bda)
 {
-    UNUSED(add_remove);
-    UNUSED(remote_bda);
-
     return false;
 }
 
@@ -1844,12 +1842,12 @@
 ** Returns          void
 **
 *******************************************************************************/
-void btm_ble_cache_adv_data(tBTM_INQ_RESULTS *p_cur, uint8_t data_len, uint8_t *p, uint8_t evt_type)
+void btm_ble_cache_adv_data(UNUSED_ATTR tBTM_INQ_RESULTS *p_cur, uint8_t data_len,
+                            uint8_t *p, uint8_t evt_type)
 {
     tBTM_BLE_INQ_CB     *p_le_inq_cb = &btm_cb.ble_ctr_cb.inq_var;
     uint8_t *p_cache;
     uint8_t length;
-    UNUSED(p_cur);
 
     /* cache adv report/scan response data */
     if (evt_type != BTM_BLE_SCAN_RSP_EVT)
@@ -1892,15 +1890,14 @@
 ** Returns          void
 **
 *******************************************************************************/
-uint8_t btm_ble_is_discoverable(BD_ADDR bda, uint8_t evt_type, uint8_t *p)
+uint8_t btm_ble_is_discoverable(BD_ADDR bda, uint8_t evt_type,
+                                UNUSED_ATTR uint8_t *p)
 {
     uint8_t             *p_flag, flag = 0, rt = 0;
     uint8_t              data_len;
     tBTM_INQ_PARMS      *p_cond = &btm_cb.btm_inq_vars.inqparms;
     tBTM_BLE_INQ_CB     *p_le_inq_cb = &btm_cb.ble_ctr_cb.inq_var;
 
-    UNUSED(p);
-
     /* for observer, always "discoverable */
     if (BTM_BLE_IS_OBS_ACTIVE(btm_cb.ble_ctr_cb.scan_activity))
         rt |= BTM_BLE_OBS_RESULT;
@@ -2226,11 +2223,11 @@
 ** Returns          void
 **
 *******************************************************************************/
-void btm_send_sel_conn_callback(BD_ADDR remote_bda, uint8_t evt_type, uint8_t *p_data, uint8_t addr_type)
+void btm_send_sel_conn_callback(BD_ADDR remote_bda, uint8_t evt_type, uint8_t *p_data,
+                                UNUSED_ATTR uint8_t addr_type)
 {
     uint8_t data_len, len;
     uint8_t *p_dev_name, remname[31] = {0};
-    UNUSED(addr_type);
 
     if (btm_cb.ble_ctr_cb.p_select_cback == NULL ||
         /* non-connectable device */
diff --git a/stack/btm/btm_devctl.cc b/stack/btm/btm_devctl.cc
index a31cf79..5fcf921 100644
--- a/stack/btm/btm_devctl.cc
+++ b/stack/btm/btm_devctl.cc
@@ -512,11 +512,11 @@
 ** Returns          void
 **
 *******************************************************************************/
-void btm_read_local_name_complete (uint8_t *p, uint16_t evt_len)
+void btm_read_local_name_complete (uint8_t *p,
+                                   UNUSED_ATTR uint16_t evt_len)
 {
     tBTM_CMPL_CB   *p_cb = btm_cb.devcb.p_rln_cmpl_cb;
     uint8_t         status;
-    UNUSED(evt_len);
 
     alarm_cancel(btm_cb.devcb.read_local_name_timer);
 
diff --git a/stack/btm/btm_pm.cc b/stack/btm/btm_pm.cc
index 0c09220..18b2693 100644
--- a/stack/btm/btm_pm.cc
+++ b/stack/btm/btm_pm.cc
@@ -890,7 +890,8 @@
 **
 *******************************************************************************/
 #if (BTM_SSR_INCLUDED == TRUE)
-void btm_pm_proc_ssr_evt (uint8_t *p, uint16_t evt_len)
+void btm_pm_proc_ssr_evt (uint8_t *p,
+                          UNUSED_ATTR uint16_t evt_len)
 {
     uint8_t     status;
     uint16_t    handle;
@@ -899,7 +900,6 @@
     tBTM_PM_MCB *p_cb;
     tACL_CONN   *p_acl=NULL;
     uint16_t    use_ssr = true;
-    UNUSED(evt_len);
 
     STREAM_TO_UINT8 (status, p);
 
diff --git a/stack/gap/gap_ble.cc b/stack/gap/gap_ble.cc
index 80b69dc..0a874fc 100644
--- a/stack/gap/gap_ble.cc
+++ b/stack/gap/gap_ble.cc
@@ -44,8 +44,8 @@
 static void gap_ble_s_attr_request_cback (uint16_t conn_id, uint32_t trans_id, tGATTS_REQ_TYPE op_code, tGATTS_DATA *p_data);
 
 /* client connection callback */
-static void  gap_ble_c_connect_cback (tGATT_IF gatt_if, BD_ADDR bda, uint16_t conn_id, bool    connected,
-                                            tGATT_DISCONN_REASON reason, tGATT_TRANSPORT transport);
+static void  gap_ble_c_connect_cback (tGATT_IF gatt_if, BD_ADDR bda, uint16_t conn_id, bool connected,
+                                      tGATT_DISCONN_REASON reason, tGATT_TRANSPORT transport);
 static void  gap_ble_c_cmpl_cback (uint16_t conn_id, tGATTC_OPTYPE op, tGATT_STATUS status, tGATT_CL_COMPLETE *p_data);
 
 static tGATT_CBACK gap_cback =
@@ -276,10 +276,10 @@
 /*******************************************************************************
 **   GAP Attributes Database Read/Read Blob Request process
 *******************************************************************************/
-tGATT_STATUS gap_proc_read (tGATTS_REQ_TYPE type, tGATT_READ_REQ *p_data, tGATTS_RSP *p_rsp)
+tGATT_STATUS gap_proc_read (UNUSED_ATTR tGATTS_REQ_TYPE type, tGATT_READ_REQ *p_data,
+                            tGATTS_RSP *p_rsp)
 {
     tGATT_STATUS    status = GATT_NO_RESOURCES;
-    UNUSED(type);
 
     if (p_data->is_long)
         p_rsp->attr_value.offset = p_data->offset;
@@ -300,11 +300,10 @@
 ** Returns          void.
 **
 *******************************************************************************/
-uint8_t gap_proc_write_req( tGATTS_REQ_TYPE type, tGATT_WRITE_REQ *p_data)
+uint8_t gap_proc_write_req(UNUSED_ATTR tGATTS_REQ_TYPE type, tGATT_WRITE_REQ *p_data)
 {
     tGAP_ATTR   *p_db_attr = gap_cb.gatt_attr;
     uint8_t i;
-    UNUSED(type);
 
     for (i = 0; i < GAP_MAX_CHAR_NUM; i ++, p_db_attr ++)
     {
@@ -566,15 +565,13 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void gap_ble_c_connect_cback (tGATT_IF gatt_if, BD_ADDR bda, uint16_t conn_id,
+static void gap_ble_c_connect_cback (UNUSED_ATTR tGATT_IF gatt_if, BD_ADDR bda,
+                                     uint16_t conn_id,
                                      bool    connected, tGATT_DISCONN_REASON reason,
-                                     tGATT_TRANSPORT transport)
+                                     UNUSED_ATTR tGATT_TRANSPORT transport)
 {
     tGAP_CLCB   *p_clcb = gap_find_clcb_by_bd_addr (bda);
 
-    UNUSED(gatt_if);
-    UNUSED(transport);
-
     if (p_clcb != NULL)
     {
         if (connected)
diff --git a/stack/gap/gap_conn.cc b/stack/gap/gap_conn.cc
index f664ae9..399002e 100644
--- a/stack/gap/gap_conn.cc
+++ b/stack/gap/gap_conn.cc
@@ -811,11 +811,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void gap_sec_check_complete (BD_ADDR bd_addr, tBT_TRANSPORT transport, void *p_ref_data, uint8_t res)
+static void gap_sec_check_complete (UNUSED_ATTR BD_ADDR bd_addr, UNUSED_ATTR tBT_TRANSPORT transport, void *p_ref_data,
+                                    uint8_t res)
 {
     tGAP_CCB *p_ccb = (tGAP_CCB *)p_ref_data;
-    UNUSED(bd_addr);
-    UNUSED (transport);
 
     GAP_TRACE_EVENT ("gap_sec_check_complete conn_state:%d, conn_flags:0x%x, status:%d",
         p_ccb->con_state, p_ccb->con_flags, res);
diff --git a/stack/gatt/gatt_attr.cc b/stack/gatt/gatt_attr.cc
index fc6b2e8..d47e0f1 100644
--- a/stack/gatt/gatt_attr.cc
+++ b/stack/gatt/gatt_attr.cc
@@ -42,12 +42,13 @@
 #endif
 
 static void gatt_request_cback(uint16_t conn_id, uint32_t trans_id, uint8_t op_code, tGATTS_DATA *p_data);
-static void gatt_connect_cback(tGATT_IF gatt_if, BD_ADDR bda, uint16_t conn_id, bool    connected,
+static void gatt_connect_cback(UNUSED_ATTR tGATT_IF gatt_if, BD_ADDR bda,
+			       uint16_t conn_id, bool    connected,
               tGATT_DISCONN_REASON reason, tBT_TRANSPORT transport);
 static void gatt_disc_res_cback(uint16_t conn_id, tGATT_DISC_TYPE disc_type, tGATT_DISC_RES *p_data);
 static void gatt_disc_cmpl_cback(uint16_t conn_id, tGATT_DISC_TYPE disc_type, tGATT_STATUS status);
-static void gatt_cl_op_cmpl_cback(uint16_t conn_id, tGATTC_OPTYPE op, tGATT_STATUS status,
-              tGATT_CL_COMPLETE *p_data);
+static void gatt_cl_op_cmpl_cback(UNUSED_ATTR uint16_t conn_id, UNUSED_ATTR tGATTC_OPTYPE op, UNUSED_ATTR tGATT_STATUS status,
+              UNUSED_ATTR tGATT_CL_COMPLETE *p_data);
 
 static void gatt_cl_start_config_ccc(tGATT_PROFILE_CLCB *p_clcb);
 
@@ -232,12 +233,11 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void gatt_connect_cback (tGATT_IF gatt_if, BD_ADDR bda, uint16_t conn_id,
+static void gatt_connect_cback (UNUSED_ATTR tGATT_IF gatt_if, BD_ADDR bda,
+                                uint16_t conn_id,
                                         bool    connected, tGATT_DISCONN_REASON reason,
                                         tBT_TRANSPORT transport)
 {
-    UNUSED(gatt_if);
-
     GATT_TRACE_EVENT ("%s: from %08x%04x connected:%d conn_id=%d reason = 0x%04x", __FUNCTION__,
                        (bda[0]<<24)+(bda[1]<<16)+(bda[2]<<8)+bda[3],
                        (bda[4]<<8)+bda[5], connected, conn_id, reason);
@@ -373,13 +373,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void gatt_cl_op_cmpl_cback (uint16_t conn_id, tGATTC_OPTYPE op,
-                                   tGATT_STATUS status, tGATT_CL_COMPLETE *p_data)
+static void gatt_cl_op_cmpl_cback (UNUSED_ATTR uint16_t conn_id, UNUSED_ATTR tGATTC_OPTYPE op,
+                                   UNUSED_ATTR tGATT_STATUS status,
+                                   UNUSED_ATTR tGATT_CL_COMPLETE *p_data)
 {
-    UNUSED(conn_id);
-    UNUSED(op);
-    UNUSED(status);
-    UNUSED(p_data);
 }
 
 /*******************************************************************************
diff --git a/stack/gatt/gatt_auth.cc b/stack/gatt/gatt_auth.cc
index fb3d9b8..5392e28 100644
--- a/stack/gatt/gatt_auth.cc
+++ b/stack/gatt/gatt_auth.cc
@@ -157,12 +157,12 @@
 ** Returns
 **
 *******************************************************************************/
-void gatt_enc_cmpl_cback(BD_ADDR bd_addr, tBT_TRANSPORT transport, void *p_ref_data, tBTM_STATUS result)
+void gatt_enc_cmpl_cback(BD_ADDR bd_addr, tBT_TRANSPORT transport,
+                         UNUSED_ATTR void *p_ref_data, tBTM_STATUS result)
 {
     tGATT_TCB   *p_tcb;
     uint8_t     sec_flag;
     bool        status = false;
-    UNUSED(p_ref_data);
 
     GATT_TRACE_DEBUG("gatt_enc_cmpl_cback");
     if ((p_tcb = gatt_find_tcb_by_addr(bd_addr, transport)) != NULL)
diff --git a/stack/gatt/gatt_cl.cc b/stack/gatt/gatt_cl.cc
index 1c14747..4c8757e 100644
--- a/stack/gatt/gatt_cl.cc
+++ b/stack/gatt/gatt_cl.cc
@@ -411,13 +411,12 @@
 ** Returns          void
 **
 *******************************************************************************/
-void gatt_process_find_type_value_rsp (tGATT_TCB *p_tcb, tGATT_CLCB *p_clcb, uint16_t len, uint8_t *p_data)
+void gatt_process_find_type_value_rsp (UNUSED_ATTR tGATT_TCB *p_tcb, tGATT_CLCB *p_clcb,
+				       uint16_t len, uint8_t *p_data)
 {
     tGATT_DISC_RES      result;
     uint8_t             *p = p_data;
 
-    UNUSED(p_tcb);
-
     GATT_TRACE_DEBUG("gatt_process_find_type_value_rsp ");
     /* unexpected response */
     if (p_clcb->operation != GATTC_OPTYPE_DISCOVERY || p_clcb->op_subtype != GATT_DISC_SRVC_BY_UUID)
@@ -456,15 +455,12 @@
 ** Returns          void
 **
 *******************************************************************************/
-void gatt_process_read_info_rsp(tGATT_TCB *p_tcb, tGATT_CLCB *p_clcb, uint8_t op_code,
+void gatt_process_read_info_rsp(UNUSED_ATTR tGATT_TCB *p_tcb, tGATT_CLCB *p_clcb, UNUSED_ATTR uint8_t op_code,
                                 uint16_t len, uint8_t *p_data)
 {
     tGATT_DISC_RES  result;
     uint8_t *p = p_data, uuid_len = 0, type;
 
-    UNUSED(p_tcb);
-    UNUSED(op_code);
-
     if (len < GATT_INFO_RSP_MIN_LEN)
     {
         GATT_TRACE_ERROR("invalid Info Response PDU received, discard.");
@@ -515,14 +511,12 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void gatt_proc_disc_error_rsp(tGATT_TCB *p_tcb, tGATT_CLCB *p_clcb, uint8_t opcode,
-                              uint16_t handle, uint8_t reason)
+void gatt_proc_disc_error_rsp(UNUSED_ATTR tGATT_TCB *p_tcb, tGATT_CLCB *p_clcb,
+                              uint8_t opcode,
+                              UNUSED_ATTR uint16_t handle, uint8_t reason)
 {
     tGATT_STATUS    status = (tGATT_STATUS) reason;
 
-    UNUSED(p_tcb);
-    UNUSED(handle);
-
     GATT_TRACE_DEBUG("gatt_proc_disc_error_rsp reason: %02x cmd_code %04x", reason, opcode);
 
     switch (opcode)
@@ -555,16 +549,13 @@
 ** Returns          void
 **
 *******************************************************************************/
-void gatt_process_error_rsp(tGATT_TCB *p_tcb, tGATT_CLCB *p_clcb, uint8_t op_code,
-                            uint16_t len, uint8_t *p_data)
+void gatt_process_error_rsp(tGATT_TCB *p_tcb, tGATT_CLCB *p_clcb, UNUSED_ATTR uint8_t op_code,
+                            UNUSED_ATTR uint16_t len, uint8_t *p_data)
 {
     uint8_t opcode, reason, * p= p_data;
     uint16_t handle;
     tGATT_VALUE  *p_attr = (tGATT_VALUE *)p_clcb->p_attr_buf;
 
-    UNUSED(op_code);
-    UNUSED(len);
-
     GATT_TRACE_DEBUG("gatt_process_error_rsp ");
     STREAM_TO_UINT8(opcode, p);
     STREAM_TO_UINT16(handle, p);
@@ -948,14 +939,12 @@
 ** Returns          void
 **
 *******************************************************************************/
-void gatt_process_read_rsp(tGATT_TCB *p_tcb, tGATT_CLCB *p_clcb,  uint8_t op_code,
+void gatt_process_read_rsp(tGATT_TCB *p_tcb, tGATT_CLCB *p_clcb,  UNUSED_ATTR uint8_t op_code,
                            uint16_t len, uint8_t *p_data)
 {
     uint16_t    offset = p_clcb->counter;
     uint8_t     * p= p_data;
 
-    UNUSED(op_code);
-
     if (p_clcb->operation == GATTC_OPTYPE_READ)
     {
         if (p_clcb->op_subtype != GATT_READ_BY_HANDLE)
diff --git a/stack/gatt/gatt_db.cc b/stack/gatt/gatt_db.cc
index 37ae94b..d8de2d1 100644
--- a/stack/gatt/gatt_db.cc
+++ b/stack/gatt/gatt_db.cc
@@ -117,7 +117,7 @@
 **
 *******************************************************************************/
 static tGATT_STATUS gatts_check_attr_readability(tGATT_ATTR *p_attr,
-                                                 uint16_t offset,
+                                                 UNUSED_ATTR uint16_t offset,
                                                  bool    read_long,
                                                  tGATT_SEC_FLAG sec_flag,
                                                  uint8_t key_size)
@@ -125,7 +125,6 @@
     uint16_t        min_key_size;
     tGATT_PERM      perm = p_attr->permission;
 
-    UNUSED(offset);
     min_key_size = (((perm & GATT_ENCRYPT_KEY_SIZE_MASK) >> 12));
     if (min_key_size != 0 )
     {
diff --git a/stack/gatt/gatt_main.cc b/stack/gatt/gatt_main.cc
index 84ccd03..da3ae94 100644
--- a/stack/gatt/gatt_main.cc
+++ b/stack/gatt/gatt_main.cc
@@ -591,13 +591,13 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void gatt_l2cif_connect_ind_cback (BD_ADDR  bd_addr, uint16_t lcid, uint16_t psm, uint8_t id)
+static void gatt_l2cif_connect_ind_cback (BD_ADDR  bd_addr, uint16_t lcid,
+                                          UNUSED_ATTR uint16_t psm, uint8_t id)
 {
     /* do we already have a control channel for this peer? */
     uint8_t     result = L2CAP_CONN_OK;
     tL2CAP_CFG_INFO cfg;
     tGATT_TCB       *p_tcb = gatt_find_tcb_by_addr(bd_addr, BT_TRANSPORT_BR_EDR);
-    UNUSED(psm);
 
     GATT_TRACE_ERROR("Connection indication cid = %d", lcid);
     /* new connection ? */
@@ -847,11 +847,11 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void gatt_l2cif_disconnect_cfm_cback(uint16_t lcid, uint16_t result)
+static void gatt_l2cif_disconnect_cfm_cback(uint16_t lcid,
+                                            UNUSED_ATTR uint16_t result)
 {
     tGATT_TCB       *p_tcb;
     uint16_t        reason;
-    UNUSED(result);
 
     /* look up clcb for this channel */
     if ((p_tcb = gatt_find_tcb_by_cid(lcid)) != NULL)
diff --git a/stack/gatt/gatt_sr.cc b/stack/gatt/gatt_sr.cc
index 85e9404..075829d 100644
--- a/stack/gatt/gatt_sr.cc
+++ b/stack/gatt/gatt_sr.cc
@@ -254,11 +254,10 @@
 **
 *******************************************************************************/
 tGATT_STATUS gatt_sr_process_app_rsp (tGATT_TCB *p_tcb, tGATT_IF gatt_if,
-                                      uint32_t trans_id, uint8_t op_code,
+                                      UNUSED_ATTR uint32_t trans_id, uint8_t op_code,
                                       tGATT_STATUS status, tGATTS_RSP *p_msg)
 {
     tGATT_STATUS    ret_code = GATT_SUCCESS;
-    UNUSED(trans_id);
 
     GATT_TRACE_DEBUG("gatt_sr_process_app_rsp gatt_if=%d", gatt_if);
 
@@ -323,15 +322,14 @@
 ** Returns          void
 **
 *******************************************************************************/
-void gatt_process_exec_write_req (tGATT_TCB *p_tcb, uint8_t op_code, uint16_t len, uint8_t *p_data)
+void gatt_process_exec_write_req (tGATT_TCB *p_tcb, uint8_t op_code,
+                                  UNUSED_ATTR uint16_t len, uint8_t *p_data)
 {
     uint8_t *p = p_data, flag, i = 0;
     uint32_t trans_id = 0;
     tGATT_IF gatt_if;
     uint16_t conn_id;
 
-    UNUSED(len);
-
 #if (GATT_CONFORMANCE_TESTING == TRUE)
     if (gatt_cb.enable_err_rsp && gatt_cb.req_op_code == op_code)
     {
@@ -505,7 +503,8 @@
 *******************************************************************************/
 static tGATT_STATUS gatt_build_primary_service_rsp (BT_HDR *p_msg, tGATT_TCB *p_tcb,
                                                     uint8_t op_code, uint16_t s_hdl,
-                                                    uint16_t e_hdl, uint8_t *p_data, tBT_UUID value)
+                                                    uint16_t e_hdl,
+                                                    UNUSED_ATTR uint8_t *p_data, tBT_UUID value)
 {
     tGATT_STATUS    status = GATT_NOT_FOUND;
     uint8_t         handle_len =4, *p ;
@@ -514,8 +513,6 @@
     tGATT_SRV_LIST_ELEM  *p_srv=NULL;
     tBT_UUID       *p_uuid;
 
-    UNUSED(p_data);
-
     p = (uint8_t *)(p_msg + 1) + L2CAP_MIN_OFFSET;
 
     p_srv = p_list->p_first;
@@ -1146,7 +1143,8 @@
 **
 *******************************************************************************/
 static void gatts_process_read_req(tGATT_TCB *p_tcb, tGATT_SR_REG *p_rcb, uint8_t op_code,
-                                   uint16_t handle, uint16_t len, uint8_t *p_data)
+                                   uint16_t handle,
+                                   UNUSED_ATTR uint16_t len, uint8_t *p_data)
 {
     size_t          buf_len = sizeof(BT_HDR) + p_tcb->payload_size + L2CAP_MIN_OFFSET;
     tGATT_STATUS    reason;
@@ -1154,8 +1152,6 @@
     uint16_t        offset = 0, value_len = 0;
     BT_HDR          *p_msg = (BT_HDR *)osi_calloc(buf_len);
 
-    UNUSED(len);
-
     if (op_code == GATT_REQ_READ_BLOB)
         STREAM_TO_UINT16(offset, p_data);
 
diff --git a/stack/gatt/gatt_utils.cc b/stack/gatt/gatt_utils.cc
index 267f427..d5c0773 100644
--- a/stack/gatt/gatt_utils.cc
+++ b/stack/gatt/gatt_utils.cc
@@ -439,10 +439,9 @@
 ** Returns          None.
 **
 *******************************************************************************/
-void gatts_update_srv_list_elem(uint8_t i_sreg, uint16_t handle, bool    is_primary)
+void gatts_update_srv_list_elem(uint8_t i_sreg,
+                                UNUSED_ATTR uint16_t handle, bool    is_primary)
 {
-    UNUSED(handle);
-
     gatt_cb.srv_list[i_sreg].in_use         = true;
     gatt_cb.srv_list[i_sreg].i_sreg    = i_sreg;
     gatt_cb.srv_list[i_sreg].s_hdl          = gatt_cb.sr_reg[i_sreg].s_hdl;
diff --git a/stack/hid/hidh_conn.cc b/stack/hid/hidh_conn.cc
index 9028bb1..dc03c67 100644
--- a/stack/hid/hidh_conn.cc
+++ b/stack/hid/hidh_conn.cc
@@ -168,11 +168,10 @@
 **                  send security block L2C connection response.
 **
 *******************************************************************************/
-void hidh_sec_check_complete_term (BD_ADDR bd_addr, tBT_TRANSPORT transport, void *p_ref_data, uint8_t res)
+void hidh_sec_check_complete_term (UNUSED_ATTR BD_ADDR bd_addr, UNUSED_ATTR tBT_TRANSPORT transport, void *p_ref_data,
+                                   uint8_t res)
 {
     tHID_HOST_DEV_CTB *p_dev= (tHID_HOST_DEV_CTB *) p_ref_data;
-    UNUSED(bd_addr);
-    UNUSED (transport);
 
     if( res == BTM_SUCCESS && p_dev->conn.conn_state == HID_CONN_STATE_SECURITY )
     {
@@ -333,12 +332,11 @@
 ** Returns          void
 **
 *******************************************************************************/
-void hidh_sec_check_complete_orig (BD_ADDR bd_addr, tBT_TRANSPORT transport, void *p_ref_data, uint8_t res)
+void hidh_sec_check_complete_orig (UNUSED_ATTR BD_ADDR bd_addr, UNUSED_ATTR tBT_TRANSPORT transport, void *p_ref_data,
+                                   uint8_t res)
 {
     tHID_HOST_DEV_CTB *p_dev = (tHID_HOST_DEV_CTB *) p_ref_data;
     uint8_t dhandle;
-    UNUSED(bd_addr);
-    UNUSED (transport);
 
     // TODO(armansito): This kind of math to determine a device handle is way
     // too dirty and unnecessary. Why can't |p_dev| store it's handle?
@@ -710,11 +708,11 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void hidh_l2cif_disconnect_cfm (uint16_t l2cap_cid, uint16_t result)
+static void hidh_l2cif_disconnect_cfm (uint16_t l2cap_cid,
+                                       UNUSED_ATTR uint16_t result)
 {
     uint8_t dhandle;
     tHID_CONN    *p_hcon = NULL;
-    UNUSED(result);
 
     /* Find CCB based on CID */
     if( (dhandle = find_conn_by_cid(l2cap_cid)) < HID_HOST_MAX_DEVICES )
diff --git a/stack/l2cap/l2c_ble.cc b/stack/l2cap/l2c_ble.cc
index 269f94a..ba664c5 100644
--- a/stack/l2cap/l2c_ble.cc
+++ b/stack/l2cap/l2c_ble.cc
@@ -389,15 +389,12 @@
 ** Returns          void
 **
 *******************************************************************************/
-void l2cble_advertiser_conn_comp (uint16_t handle, BD_ADDR bda, tBLE_ADDR_TYPE type,
-                                  uint16_t conn_interval, uint16_t conn_latency, uint16_t conn_timeout)
+void l2cble_advertiser_conn_comp (uint16_t handle, BD_ADDR bda, UNUSED_ATTR tBLE_ADDR_TYPE type,
+                                  UNUSED_ATTR uint16_t conn_interval, UNUSED_ATTR uint16_t conn_latency,
+                                  UNUSED_ATTR uint16_t conn_timeout)
 {
     tL2C_LCB            *p_lcb;
     tBTM_SEC_DEV_REC    *p_dev_rec;
-    UNUSED(type);
-    UNUSED(conn_interval);
-    UNUSED(conn_latency);
-    UNUSED(conn_timeout);
 
     /* See if we have a link control block for the remote device */
     p_lcb = l2cu_find_lcb_by_bd_addr (bda, BT_TRANSPORT_LE);
diff --git a/stack/l2cap/l2c_link.cc b/stack/l2cap/l2c_link.cc
index 4ec50b3..9f2190a 100644
--- a/stack/l2cap/l2c_link.cc
+++ b/stack/l2cap/l2c_link.cc
@@ -297,7 +297,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void l2c_link_sec_comp (BD_ADDR p_bda, tBT_TRANSPORT transport, void *p_ref_data, uint8_t status)
+void l2c_link_sec_comp (BD_ADDR p_bda,
+                        UNUSED_ATTR tBT_TRANSPORT transport, void *p_ref_data,
+                        uint8_t status)
 {
     tL2C_CONN_INFO  ci;
     tL2C_LCB        *p_lcb;
@@ -305,8 +307,6 @@
     tL2C_CCB        *p_next_ccb;
     uint8_t         event;
 
-    UNUSED(transport);
-
     L2CAP_TRACE_DEBUG ("l2c_link_sec_comp: %d, 0x%x", status, p_ref_data);
 
     if (status == BTM_SUCCESS_NO_SECURITY)
@@ -922,13 +922,11 @@
 ** Returns          count of number of entries filled in
 **
 *******************************************************************************/
-uint8_t l2c_link_pkts_rcvd (uint16_t *num_pkts, uint16_t *handles)
+uint8_t l2c_link_pkts_rcvd (UNUSED_ATTR uint16_t *num_pkts,
+                            UNUSED_ATTR uint16_t *handles)
 {
     uint8_t     num_found = 0;
 
-    UNUSED(num_pkts);
-    UNUSED(handles);
-
     return (num_found);
 }
 
diff --git a/stack/mcap/mca_cact.cc b/stack/mcap/mca_cact.cc
index 8513bb8..faaf06e 100644
--- a/stack/mcap/mca_cact.cc
+++ b/stack/mcap/mca_cact.cc
@@ -48,10 +48,10 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void mca_ccb_rsp_tout(tMCA_CCB *p_ccb, tMCA_CCB_EVT *p_data)
+void mca_ccb_rsp_tout(tMCA_CCB *p_ccb,
+                      UNUSED_ATTR tMCA_CCB_EVT *p_data)
 {
    tMCA_CTRL   evt_data;
-   UNUSED(p_data);
 
    mca_ccb_report_event(p_ccb, MCA_RSP_TOUT_IND_EVT, &evt_data);
 }
@@ -80,9 +80,8 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void mca_ccb_free_msg(tMCA_CCB *p_ccb, tMCA_CCB_EVT *p_data)
+void mca_ccb_free_msg(UNUSED_ATTR tMCA_CCB *p_ccb, tMCA_CCB_EVT *p_data)
 {
-    UNUSED(p_ccb);
     osi_free(p_data);
 }
 
@@ -209,10 +208,9 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void mca_ccb_do_disconn (tMCA_CCB *p_ccb, tMCA_CCB_EVT *p_data)
+void mca_ccb_do_disconn (tMCA_CCB *p_ccb,
+                         UNUSED_ATTR tMCA_CCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     mca_dcb_close_by_mdl_id (p_ccb, MCA_ALL_MDL_ID);
     L2CA_DisconnectReq(p_ccb->lcid);
 }
@@ -569,10 +567,9 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void mca_ccb_dl_open (tMCA_CCB *p_ccb, tMCA_CCB_EVT *p_data)
+void mca_ccb_dl_open (tMCA_CCB *p_ccb,
+                      UNUSED_ATTR tMCA_CCB_EVT *p_data)
 {
-    UNUSED(p_data);
-
     osi_free_and_reset((void **)&p_ccb->p_tx_req);
     osi_free_and_reset((void **)&p_ccb->p_rx_msg);
     p_ccb->status = MCA_CCB_STAT_NORM;
diff --git a/stack/mcap/mca_dact.cc b/stack/mcap/mca_dact.cc
index 9895dd7..589a79b 100644
--- a/stack/mcap/mca_dact.cc
+++ b/stack/mcap/mca_dact.cc
@@ -100,9 +100,8 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void mca_dcb_free_data(tMCA_DCB *p_dcb, tMCA_DCB_EVT *p_data)
+void mca_dcb_free_data(UNUSED_ATTR tMCA_DCB *p_dcb, tMCA_DCB_EVT *p_data)
 {
-    UNUSED(p_dcb);
     osi_free(p_data);
 }
 
@@ -115,10 +114,10 @@
 ** Returns          void.
 **
 *******************************************************************************/
-void mca_dcb_do_disconn (tMCA_DCB *p_dcb, tMCA_DCB_EVT *p_data)
+void mca_dcb_do_disconn (tMCA_DCB *p_dcb,
+                         UNUSED_ATTR tMCA_DCB_EVT *p_data)
 {
     tMCA_CLOSE  close;
-    UNUSED(p_data);
 
     if ((p_dcb->lcid == 0) || (L2CA_DisconnectReq(p_dcb->lcid) == false))
     {
diff --git a/stack/mcap/mca_l2c.cc b/stack/mcap/mca_l2c.cc
index 89e9d36..b5e1d48 100644
--- a/stack/mcap/mca_l2c.cc
+++ b/stack/mcap/mca_l2c.cc
@@ -70,14 +70,14 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void mca_sec_check_complete_term (BD_ADDR bd_addr, tBT_TRANSPORT transport, void *p_ref_data, uint8_t res)
+static void mca_sec_check_complete_term (BD_ADDR bd_addr,
+                                         UNUSED_ATTR tBT_TRANSPORT transport, void *p_ref_data,
+                                         uint8_t res)
 {
     tMCA_TC_TBL     *p_tbl = (tMCA_TC_TBL *)p_ref_data;
     tL2CAP_CFG_INFO cfg;
     tL2CAP_ERTM_INFO ertm_info;
 
-    UNUSED(transport);
-
     MCA_TRACE_DEBUG("mca_sec_check_complete_term res: %d", res);
 
     if ( res == BTM_SUCCESS )
@@ -117,12 +117,11 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void mca_sec_check_complete_orig (BD_ADDR bd_addr, tBT_TRANSPORT transport, void *p_ref_data, uint8_t res)
+static void mca_sec_check_complete_orig (UNUSED_ATTR BD_ADDR bd_addr, UNUSED_ATTR tBT_TRANSPORT transport, void *p_ref_data,
+                                         uint8_t res)
 {
     tMCA_TC_TBL     *p_tbl = (tMCA_TC_TBL *)p_ref_data;
     tL2CAP_CFG_INFO cfg;
-    UNUSED(bd_addr);
-    UNUSED(transport);
 
     MCA_TRACE_DEBUG("mca_sec_check_complete_orig res: %d", res);
 
diff --git a/stack/pan/pan_main.cc b/stack/pan/pan_main.cc
index ca248f6..e26658d 100644
--- a/stack/pan/pan_main.cc
+++ b/stack/pan/pan_main.cc
@@ -326,11 +326,12 @@
 ** Returns          none
 **
 *******************************************************************************/
-void pan_connect_state_cb (uint16_t handle, BD_ADDR rem_bda, tBNEP_RESULT result, bool    is_role_change)
+void pan_connect_state_cb (uint16_t handle,
+                           UNUSED_ATTR BD_ADDR rem_bda, tBNEP_RESULT result,
+                           bool    is_role_change)
 {
     tPAN_CONN       *pcb;
     uint8_t          peer_role;
-    UNUSED(rem_bda);
 
     PAN_TRACE_EVENT ("pan_connect_state_cb - for handle %d, result %d", handle, result);
     pcb = pan_get_pcb_by_handle (handle);
diff --git a/stack/rfcomm/port_rfc.cc b/stack/rfcomm/port_rfc.cc
index a41d021..3b13d2d 100644
--- a/stack/rfcomm/port_rfc.cc
+++ b/stack/rfcomm/port_rfc.cc
@@ -580,10 +580,10 @@
 **                  state for the port.  Propagate change to the user.
 **
 *******************************************************************************/
-void PORT_PortNegCnf (tRFC_MCB *p_mcb, uint8_t dlci, tPORT_STATE *p_pars, uint16_t result)
+void PORT_PortNegCnf (tRFC_MCB *p_mcb, uint8_t dlci,
+                      UNUSED_ATTR tPORT_STATE *p_pars, uint16_t result)
 {
     tPORT  *p_port = port_find_mcb_dlci_port (p_mcb, dlci);
-    UNUSED(p_pars);
 
     RFCOMM_TRACE_EVENT ("PORT_PortNegCnf");
 
@@ -681,11 +681,11 @@
 **                  peer acknowleges change of the modem signals.
 **
 *******************************************************************************/
-void PORT_ControlCnf (tRFC_MCB *p_mcb, uint8_t dlci, tPORT_CTRL *p_pars)
+void PORT_ControlCnf (tRFC_MCB *p_mcb, uint8_t dlci,
+                      UNUSED_ATTR tPORT_CTRL *p_pars)
 {
     tPORT *p_port = port_find_mcb_dlci_port (p_mcb, dlci);
     uint32_t event = 0;
-    UNUSED(p_pars);
 
     RFCOMM_TRACE_EVENT ("PORT_ControlCnf");
 
diff --git a/stack/rfcomm/rfc_l2cap_if.cc b/stack/rfcomm/rfc_l2cap_if.cc
index 2e65468..d8381eb 100644
--- a/stack/rfcomm/rfc_l2cap_if.cc
+++ b/stack/rfcomm/rfc_l2cap_if.cc
@@ -45,7 +45,7 @@
 static void RFCOMM_ConfigInd (uint16_t lcid, tL2CAP_CFG_INFO *p_cfg);
 static void RFCOMM_ConfigCnf (uint16_t lcid, tL2CAP_CFG_INFO *p_cfg);
 static void RFCOMM_DisconnectInd (uint16_t lcid, bool    is_clear);
-static void RFCOMM_QoSViolationInd (BD_ADDR bd_addr);
+static void RFCOMM_QoSViolationInd (UNUSED_ATTR BD_ADDR bd_addr);
 static void RFCOMM_BufDataInd (uint16_t lcid, BT_HDR *p_buf);
 static void RFCOMM_CongestionStatusInd (uint16_t lcid, bool    is_congested);
 
@@ -88,10 +88,10 @@
 **                  and dispatch the event to it.
 **
 *******************************************************************************/
-void RFCOMM_ConnectInd (BD_ADDR bd_addr, uint16_t lcid, uint16_t psm, uint8_t id)
+void RFCOMM_ConnectInd (BD_ADDR bd_addr, uint16_t lcid,
+                        UNUSED_ATTR uint16_t psm, uint8_t id)
 {
     tRFC_MCB *p_mcb = rfc_alloc_multiplexer_channel(bd_addr, false);
-    UNUSED(psm);
 
     if ((p_mcb)&&(p_mcb->state != RFC_MX_STATE_IDLE))
     {
@@ -260,9 +260,8 @@
 **                  L2CA_QoSViolationIndInd received.  Dispatch event to the FSM.
 **
 *******************************************************************************/
-void RFCOMM_QoSViolationInd (BD_ADDR bd_addr)
+void RFCOMM_QoSViolationInd (UNUSED_ATTR BD_ADDR bd_addr)
 {
-    UNUSED(bd_addr);
 }
 
 
diff --git a/stack/rfcomm/rfc_mx_fsm.cc b/stack/rfcomm/rfc_mx_fsm.cc
index 8168962..370b78a 100644
--- a/stack/rfcomm/rfc_mx_fsm.cc
+++ b/stack/rfcomm/rfc_mx_fsm.cc
@@ -45,7 +45,8 @@
 static void rfc_mx_sm_state_configure (tRFC_MCB *p_mcb, uint16_t event, void *p_data);
 static void rfc_mx_sm_sabme_wait_ua (tRFC_MCB *p_mcb, uint16_t event, void *p_data);
 static void rfc_mx_sm_state_wait_sabme (tRFC_MCB *p_mcb, uint16_t event, void *p_data);
-static void rfc_mx_sm_state_connected (tRFC_MCB *p_mcb, uint16_t event, void *p_data);
+static void rfc_mx_sm_state_connected (tRFC_MCB *p_mcb, uint16_t event,
+				       UNUSED_ATTR void *p_data);
 static void rfc_mx_sm_state_disc_wait_ua (tRFC_MCB *p_mcb, uint16_t event, void *p_data);
 
 static void rfc_mx_send_config_req (tRFC_MCB *p_mcb);
@@ -311,10 +312,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void rfc_mx_sm_sabme_wait_ua (tRFC_MCB *p_mcb, uint16_t event, void *p_data)
+void rfc_mx_sm_sabme_wait_ua (tRFC_MCB *p_mcb, uint16_t event,
+			      UNUSED_ATTR void *p_data)
 {
-    UNUSED(p_data);
-
     RFCOMM_TRACE_EVENT ("rfc_mx_sm_sabme_wait_ua - evt:%d", event);
     switch (event)
     {
@@ -442,10 +442,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void rfc_mx_sm_state_connected (tRFC_MCB *p_mcb, uint16_t event, void *p_data)
+void rfc_mx_sm_state_connected (tRFC_MCB *p_mcb, uint16_t event,
+                                UNUSED_ATTR void *p_data)
 {
-    UNUSED(p_data);
-
     RFCOMM_TRACE_EVENT ("rfc_mx_sm_state_connected - evt:%d", event);
 
     switch (event)
diff --git a/stack/rfcomm/rfc_port_fsm.cc b/stack/rfcomm/rfc_port_fsm.cc
index 89b56be..17387cc 100644
--- a/stack/rfcomm/rfc_port_fsm.cc
+++ b/stack/rfcomm/rfc_port_fsm.cc
@@ -794,10 +794,9 @@
 ** Description      This function handles None Supported Command frame.
 **
 *******************************************************************************/
-void rfc_process_nsc (tRFC_MCB *p_mcb, MX_FRAME *p_frame)
+void rfc_process_nsc (UNUSED_ATTR tRFC_MCB *p_mcb,
+                      UNUSED_ATTR MX_FRAME *p_frame)
 {
-    UNUSED(p_mcb);
-    UNUSED(p_frame);
 }
 
 
@@ -809,9 +808,8 @@
 **                  reply to it.  Otherwise pass response to the user.
 **
 *******************************************************************************/
-void rfc_process_test_rsp(tRFC_MCB *p_mcb, BT_HDR *p_buf)
+void rfc_process_test_rsp(UNUSED_ATTR tRFC_MCB *p_mcb, BT_HDR *p_buf)
 {
-    UNUSED(p_mcb);
     osi_free(p_buf);
 }
 
diff --git a/stack/rfcomm/rfc_port_if.cc b/stack/rfcomm/rfc_port_if.cc
index 4b43a59..f33fda6 100644
--- a/stack/rfcomm/rfc_port_if.cc
+++ b/stack/rfcomm/rfc_port_if.cc
@@ -77,9 +77,9 @@
 **                  machine.
 **
 *******************************************************************************/
-void RFCOMM_DlcEstablishReq (tRFC_MCB *p_mcb, uint8_t dlci, uint16_t mtu)
+void RFCOMM_DlcEstablishReq (tRFC_MCB *p_mcb, uint8_t dlci,
+                             UNUSED_ATTR uint16_t mtu)
 {
-    UNUSED(mtu);
     if (p_mcb->state != RFC_MX_STATE_CONNECTED)
     {
         PORT_DlcEstablishCnf (p_mcb, dlci, 0, RFCOMM_ERROR);
@@ -105,9 +105,9 @@
 **                  acks Establish Indication.
 **
 *******************************************************************************/
-void RFCOMM_DlcEstablishRsp (tRFC_MCB *p_mcb, uint8_t dlci, uint16_t mtu, uint16_t result)
+void RFCOMM_DlcEstablishRsp (tRFC_MCB *p_mcb, uint8_t dlci,
+                             UNUSED_ATTR uint16_t mtu, uint16_t result)
 {
-    UNUSED(mtu);
     if ((p_mcb->state != RFC_MX_STATE_CONNECTED) && (result == RFCOMM_SUCCESS))
     {
         PORT_DlcReleaseInd (p_mcb, dlci);
diff --git a/stack/rfcomm/rfc_utils.cc b/stack/rfcomm/rfc_utils.cc
index 3135e4d..1f8c42b 100644
--- a/stack/rfcomm/rfc_utils.cc
+++ b/stack/rfcomm/rfc_utils.cc
@@ -344,11 +344,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-void rfc_sec_check_complete (BD_ADDR bd_addr, tBT_TRANSPORT transport, void *p_ref_data, uint8_t res)
+void rfc_sec_check_complete (UNUSED_ATTR BD_ADDR bd_addr, UNUSED_ATTR tBT_TRANSPORT transport, void *p_ref_data,
+                             uint8_t res)
 {
     tPORT *p_port = (tPORT *)p_ref_data;
-    UNUSED(bd_addr);
-    UNUSED(transport);
 
     /* Verify that PORT is still waiting for Security to complete */
     if (!p_port->in_use
diff --git a/stack/sdp/sdp_api.cc b/stack/sdp/sdp_api.cc
index 5909bc8..6ac29cf 100644
--- a/stack/sdp/sdp_api.cc
+++ b/stack/sdp/sdp_api.cc
@@ -238,10 +238,9 @@
 }
 
 #if (SDP_CLIENT_ENABLED == TRUE)
-void SDP_SetIdleTimeout (BD_ADDR addr, uint16_t timeout)
+void SDP_SetIdleTimeout (UNUSED_ATTR BD_ADDR addr,
+                         UNUSED_ATTR uint16_t timeout)
 {
-    UNUSED(addr);
-    UNUSED(timeout);
 }
 #endif
 
diff --git a/stack/sdp/sdp_main.cc b/stack/sdp/sdp_main.cc
index 9de5b80..ccda56b 100644
--- a/stack/sdp/sdp_main.cc
+++ b/stack/sdp/sdp_main.cc
@@ -53,7 +53,7 @@
 /********************************************************************************/
 /*              L O C A L    F U N C T I O N     P R O T O T Y P E S            */
 /********************************************************************************/
-static void sdp_connect_ind (BD_ADDR  bd_addr, uint16_t l2cap_cid, uint16_t psm,
+static void sdp_connect_ind (BD_ADDR  bd_addr, uint16_t l2cap_cid, UNUSED_ATTR uint16_t psm,
                              uint8_t l2cap_id);
 static void sdp_config_ind (uint16_t l2cap_cid, tL2CAP_CFG_INFO *p_cfg);
 static void sdp_config_cfm (uint16_t l2cap_cid, tL2CAP_CFG_INFO *p_cfg);
@@ -169,9 +169,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void sdp_connect_ind (BD_ADDR  bd_addr, uint16_t l2cap_cid, uint16_t psm, uint8_t l2cap_id)
+static void sdp_connect_ind (BD_ADDR  bd_addr, uint16_t l2cap_cid,
+                             UNUSED_ATTR uint16_t psm, uint8_t l2cap_id)
 {
-    UNUSED(psm);
 #if (SDP_SERVER_ENABLED == TRUE)
     tCONN_CB    *p_ccb;
 
@@ -668,10 +668,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void sdp_disconnect_cfm (uint16_t l2cap_cid, uint16_t result)
+static void sdp_disconnect_cfm (uint16_t l2cap_cid,
+                                UNUSED_ATTR uint16_t result)
 {
     tCONN_CB    *p_ccb;
-    UNUSED(result);
 
     /* Find CCB based on CID */
     if ((p_ccb = sdpu_find_ccb_by_cid (l2cap_cid)) == NULL)
diff --git a/stack/sdp/sdp_server.cc b/stack/sdp/sdp_server.cc
index 40a2abf..c63e197 100644
--- a/stack/sdp/sdp_server.cc
+++ b/stack/sdp/sdp_server.cc
@@ -54,7 +54,7 @@
 /********************************************************************************/
 static void process_service_search (tCONN_CB *p_ccb, uint16_t trans_num,
                                     uint16_t param_len, uint8_t *p_req,
-                                    uint8_t *p_req_end);
+                                    UNUSED_ATTR uint8_t *p_req_end);
 
 static void process_service_attr_req (tCONN_CB *p_ccb, uint16_t trans_num,
                                       uint16_t param_len, uint8_t *p_req,
@@ -62,7 +62,7 @@
 
 static void process_service_search_attr_req (tCONN_CB *p_ccb, uint16_t trans_num,
                                              uint16_t param_len, uint8_t *p_req,
-                                             uint8_t *p_req_end);
+                                             UNUSED_ATTR uint8_t *p_req_end);
 
 
 /********************************************************************************/
@@ -175,7 +175,7 @@
 *******************************************************************************/
 static void process_service_search (tCONN_CB *p_ccb, uint16_t trans_num,
                                     uint16_t param_len, uint8_t *p_req,
-                                    uint8_t *p_req_end)
+                                    UNUSED_ATTR uint8_t *p_req_end)
 {
     uint16_t        max_replies, cur_handles, rem_handles, cont_offset;
     tSDP_UUID_SEQ   uid_seq;
@@ -184,7 +184,6 @@
     uint32_t        rsp_handles[SDP_MAX_RECORDS] = {0};
     tSDP_RECORD    *p_rec = NULL;
     bool            is_cont = false;
-    UNUSED(p_req_end);
 
     p_req = sdpu_extract_uid_seq (p_req, param_len, &uid_seq);
 
@@ -543,7 +542,7 @@
 *******************************************************************************/
 static void process_service_search_attr_req (tCONN_CB *p_ccb, uint16_t trans_num,
                                              uint16_t param_len, uint8_t *p_req,
-                                             uint8_t *p_req_end)
+                                             UNUSED_ATTR uint8_t *p_req_end)
 {
     uint16_t       max_list_len;
     int16_t        rem_len;
@@ -557,7 +556,6 @@
     bool            maxxed_out = false, is_cont = false;
     uint8_t         *p_seq_start;
     uint16_t        seq_len, attr_len;
-    UNUSED(p_req_end);
 
     /* Extract the UUID sequence to search for */
     p_req = sdpu_extract_uid_seq (p_req, param_len, &uid_seq);
diff --git a/stack/smp/smp_keys.cc b/stack/smp/smp_keys.cc
index 61b6e16..0173fe9 100644
--- a/stack/smp/smp_keys.cc
+++ b/stack/smp/smp_keys.cc
@@ -181,10 +181,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void smp_generate_passkey(tSMP_CB *p_cb, tSMP_INT_DATA *p_data)
+void smp_generate_passkey(tSMP_CB *p_cb,
+                          UNUSED_ATTR tSMP_INT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     SMP_TRACE_DEBUG ("%s", __func__);
     p_cb->rand_enc_proc_state = SMP_GEN_TK;
 
@@ -249,9 +248,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void smp_generate_stk(tSMP_CB *p_cb, tSMP_INT_DATA *p_data)
+void smp_generate_stk(tSMP_CB *p_cb,
+                      UNUSED_ATTR tSMP_INT_DATA *p_data)
 {
-    UNUSED(p_data);
 
     tSMP_ENC output;
     tSMP_STATUS status = SMP_PAIR_FAIL_UNKNOWN;
@@ -287,10 +286,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void smp_generate_srand_mrand_confirm(tSMP_CB *p_cb, tSMP_INT_DATA *p_data)
+void smp_generate_srand_mrand_confirm(tSMP_CB *p_cb,
+                                      UNUSED_ATTR tSMP_INT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     SMP_TRACE_DEBUG ("%s", __func__);
     p_cb->rand_enc_proc_state = SMP_GEN_SRAND_MRAND;
     /* generate MRand or SRand */
@@ -307,10 +305,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void smp_generate_rand_cont(tSMP_CB *p_cb, tSMP_INT_DATA *p_data)
+void smp_generate_rand_cont(tSMP_CB *p_cb,
+                            UNUSED_ATTR tSMP_INT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     SMP_TRACE_DEBUG ("%s", __func__);
     p_cb->rand_enc_proc_state = SMP_GEN_SRAND_MRAND_CONT;
     /* generate 64 MSB of MRand or SRand */
@@ -332,9 +329,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void smp_generate_ltk(tSMP_CB *p_cb, tSMP_INT_DATA *p_data)
+void smp_generate_ltk(tSMP_CB *p_cb,
+                      UNUSED_ATTR tSMP_INT_DATA *p_data)
 {
-    UNUSED(p_data);
 
     bool    div_status;
     SMP_TRACE_DEBUG ("%s", __func__);
@@ -374,9 +371,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void smp_compute_csrk(tSMP_CB *p_cb, tSMP_INT_DATA *p_data)
+void smp_compute_csrk(tSMP_CB *p_cb,
+                      UNUSED_ATTR tSMP_INT_DATA *p_data)
 {
-    UNUSED(p_data);
 
     BT_OCTET16  er;
     uint8_t     buffer[4]; /* for (r || DIV)  r=1*/
@@ -421,9 +418,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void smp_generate_csrk(tSMP_CB *p_cb, tSMP_INT_DATA *p_data)
+void smp_generate_csrk(tSMP_CB *p_cb,
+                       UNUSED_ATTR tSMP_INT_DATA *p_data)
 {
-    UNUSED(p_data);
 
     bool        div_status;
 
@@ -591,9 +588,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void smp_calculate_comfirm (tSMP_CB *p_cb, BT_OCTET16 rand, BD_ADDR bda)
+void smp_calculate_comfirm (tSMP_CB *p_cb, BT_OCTET16 rand,
+                            UNUSED_ATTR BD_ADDR bda)
 {
-    UNUSED(bda);
 
     BT_OCTET16      p1;
     tSMP_ENC       output;
@@ -679,10 +676,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void smp_generate_confirm(tSMP_CB *p_cb, tSMP_INT_DATA *p_data)
+static void smp_generate_confirm(tSMP_CB *p_cb,
+                                 UNUSED_ATTR tSMP_INT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     SMP_TRACE_DEBUG ("%s", __func__);
     p_cb->rand_enc_proc_state = SMP_GEN_CONFIRM;
     smp_debug_print_nbyte_little_endian ((uint8_t *)p_cb->rand,  (const uint8_t *)"local rand", 16);
@@ -700,10 +696,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-void smp_generate_compare (tSMP_CB *p_cb, tSMP_INT_DATA *p_data)
+void smp_generate_compare (tSMP_CB *p_cb,
+                           UNUSED_ATTR tSMP_INT_DATA *p_data)
 {
-    UNUSED(p_data);
-
     SMP_TRACE_DEBUG ("smp_generate_compare ");
     p_cb->rand_enc_proc_state = SMP_GEN_COMPARE;
     smp_debug_print_nbyte_little_endian ((uint8_t *)p_cb->rrand,  (const uint8_t *)"peer rand", 16);
@@ -797,9 +792,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void smp_generate_ltk_cont(tSMP_CB *p_cb, tSMP_INT_DATA *p_data)
+static void smp_generate_ltk_cont(tSMP_CB *p_cb,
+                                  UNUSED_ATTR tSMP_INT_DATA *p_data)
 {
-    UNUSED(p_data);
 
     BT_OCTET16  er;
     tSMP_ENC    output;
@@ -833,9 +828,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void smp_generate_y(tSMP_CB *p_cb, tSMP_INT_DATA *p)
+static void smp_generate_y(tSMP_CB *p_cb,
+                           UNUSED_ATTR tSMP_INT_DATA *p)
 {
-    UNUSED(p);
 
     BT_OCTET16  dhk;
     tSMP_ENC   output;
@@ -867,10 +862,9 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void smp_generate_rand_vector (tSMP_CB *p_cb, tSMP_INT_DATA *p)
+static void smp_generate_rand_vector (tSMP_CB *p_cb,
+                                      UNUSED_ATTR tSMP_INT_DATA *p)
 {
-    UNUSED(p);
-
     /* generate EDIV and rand now */
     /* generate random vector */
     SMP_TRACE_DEBUG ("smp_generate_rand_vector ");
diff --git a/stack/smp/smp_utils.cc b/stack/smp/smp_utils.cc
index 201aceb..c578496 100644
--- a/stack/smp/smp_utils.cc
+++ b/stack/smp/smp_utils.cc
@@ -135,19 +135,19 @@
 typedef BT_HDR * (*tSMP_CMD_ACT)(uint8_t cmd_code, tSMP_CB *p_cb);
 
 static BT_HDR *smp_build_pairing_cmd(uint8_t cmd_code, tSMP_CB *p_cb);
-static BT_HDR *smp_build_confirm_cmd(uint8_t cmd_code, tSMP_CB *p_cb);
-static BT_HDR *smp_build_rand_cmd(uint8_t cmd_code, tSMP_CB *p_cb);
-static BT_HDR *smp_build_pairing_fail(uint8_t cmd_code, tSMP_CB *p_cb);
-static BT_HDR *smp_build_identity_info_cmd(uint8_t cmd_code, tSMP_CB *p_cb);
-static BT_HDR *smp_build_encrypt_info_cmd(uint8_t cmd_code, tSMP_CB *p_cb);
-static BT_HDR *smp_build_security_request(uint8_t cmd_code, tSMP_CB *p_cb);
-static BT_HDR *smp_build_signing_info_cmd(uint8_t cmd_code, tSMP_CB *p_cb);
-static BT_HDR *smp_build_master_id_cmd(uint8_t cmd_code, tSMP_CB *p_cb);
-static BT_HDR *smp_build_id_addr_cmd(uint8_t cmd_code, tSMP_CB *p_cb);
-static BT_HDR *smp_build_pair_public_key_cmd(uint8_t cmd_code, tSMP_CB *p_cb);
-static BT_HDR *smp_build_pairing_commitment_cmd(uint8_t cmd_code, tSMP_CB *p_cb);
-static BT_HDR *smp_build_pair_dhkey_check_cmd(uint8_t cmd_code, tSMP_CB *p_cb);
-static BT_HDR *smp_build_pairing_keypress_notification_cmd(uint8_t cmd_code, tSMP_CB *p_cb);
+static BT_HDR *smp_build_confirm_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb);
+static BT_HDR *smp_build_rand_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb);
+static BT_HDR *smp_build_pairing_fail(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb);
+static BT_HDR *smp_build_identity_info_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb);
+static BT_HDR *smp_build_encrypt_info_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb);
+static BT_HDR *smp_build_security_request(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb);
+static BT_HDR *smp_build_signing_info_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb);
+static BT_HDR *smp_build_master_id_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb);
+static BT_HDR *smp_build_id_addr_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb);
+static BT_HDR *smp_build_pair_public_key_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb);
+static BT_HDR *smp_build_pairing_commitment_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb);
+static BT_HDR *smp_build_pair_dhkey_check_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb);
+static BT_HDR *smp_build_pairing_keypress_notification_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb);
 
 static const tSMP_CMD_ACT smp_cmd_build_act[] =
 {
@@ -435,13 +435,12 @@
 ** Description      Build confirm request command.
 **
 *******************************************************************************/
-static BT_HDR * smp_build_confirm_cmd(uint8_t cmd_code, tSMP_CB *p_cb)
+static BT_HDR * smp_build_confirm_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb)
 {
     uint8_t *p;
     BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR) +
                         SMP_CONFIRM_CMD_SIZE + L2CAP_MIN_OFFSET);
 
-    UNUSED(cmd_code);
     SMP_TRACE_EVENT("%s", __func__);
 
     p = (uint8_t *)(p_buf + 1) + L2CAP_MIN_OFFSET;
@@ -462,13 +461,12 @@
 ** Description      Build Random command.
 **
 *******************************************************************************/
-static BT_HDR * smp_build_rand_cmd(uint8_t cmd_code, tSMP_CB *p_cb)
+static BT_HDR * smp_build_rand_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb)
 {
     uint8_t *p;
     BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR) +
                         SMP_RAND_CMD_SIZE + L2CAP_MIN_OFFSET);
 
-    UNUSED(cmd_code);
     SMP_TRACE_EVENT("%s", __func__);
 
     p = (uint8_t *)(p_buf + 1) + L2CAP_MIN_OFFSET;
@@ -488,13 +486,12 @@
 ** Description      Build security information command.
 **
 *******************************************************************************/
-static BT_HDR * smp_build_encrypt_info_cmd(uint8_t cmd_code, tSMP_CB *p_cb)
+static BT_HDR * smp_build_encrypt_info_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb)
 {
     uint8_t *p;
     BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR) +
                         SMP_ENC_INFO_SIZE + L2CAP_MIN_OFFSET);
 
-    UNUSED(cmd_code);
     SMP_TRACE_EVENT("%s", __func__);
 
     p = (uint8_t *)(p_buf + 1) + L2CAP_MIN_OFFSET;
@@ -514,13 +511,12 @@
 ** Description      Build security information command.
 **
 *******************************************************************************/
-static BT_HDR * smp_build_master_id_cmd(uint8_t cmd_code, tSMP_CB *p_cb)
+static BT_HDR * smp_build_master_id_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb)
 {
     uint8_t *p;
     BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR) +
                         SMP_MASTER_ID_SIZE + L2CAP_MIN_OFFSET);
 
-    UNUSED(cmd_code);
     SMP_TRACE_EVENT("%s", __func__);
 
     p = (uint8_t *)(p_buf + 1) + L2CAP_MIN_OFFSET;
@@ -541,15 +537,14 @@
 ** Description      Build identity information command.
 **
 *******************************************************************************/
-static BT_HDR * smp_build_identity_info_cmd(uint8_t cmd_code, tSMP_CB *p_cb)
+static BT_HDR * smp_build_identity_info_cmd(UNUSED_ATTR uint8_t cmd_code,
+                                            UNUSED_ATTR tSMP_CB *p_cb)
 {
     uint8_t *p;
     BT_OCTET16 irk;
     BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR) +
                         SMP_ID_INFO_SIZE + L2CAP_MIN_OFFSET);
 
-    UNUSED(cmd_code);
-    UNUSED(p_cb);
     SMP_TRACE_EVENT("%s", __func__);
 
     p = (uint8_t *)(p_buf + 1) + L2CAP_MIN_OFFSET;
@@ -572,14 +567,13 @@
 ** Description      Build identity address information command.
 **
 *******************************************************************************/
-static BT_HDR * smp_build_id_addr_cmd(uint8_t cmd_code, tSMP_CB *p_cb)
+static BT_HDR * smp_build_id_addr_cmd(UNUSED_ATTR uint8_t cmd_code,
+                                      UNUSED_ATTR tSMP_CB *p_cb)
 {
     uint8_t *p;
     BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR) +
                         SMP_ID_ADDR_SIZE + L2CAP_MIN_OFFSET);
 
-    UNUSED(cmd_code);
-    UNUSED(p_cb);
     SMP_TRACE_EVENT("%s", __func__);
 
     p = (uint8_t *)(p_buf + 1) + L2CAP_MIN_OFFSET;
@@ -600,13 +594,12 @@
 ** Description      Build signing information command.
 **
 *******************************************************************************/
-static BT_HDR * smp_build_signing_info_cmd(uint8_t cmd_code, tSMP_CB *p_cb)
+static BT_HDR * smp_build_signing_info_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb)
 {
     uint8_t *p;
     BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR) +
                         SMP_SIGN_INFO_SIZE + L2CAP_MIN_OFFSET);
 
-    UNUSED(cmd_code);
     SMP_TRACE_EVENT("%s", __func__);
 
     p = (uint8_t *)(p_buf + 1) + L2CAP_MIN_OFFSET;
@@ -626,13 +619,12 @@
 ** Description      Build Pairing Fail command.
 **
 *******************************************************************************/
-static BT_HDR * smp_build_pairing_fail(uint8_t cmd_code, tSMP_CB *p_cb)
+static BT_HDR * smp_build_pairing_fail(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb)
 {
     uint8_t *p;
     BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR) +
                         SMP_PAIR_FAIL_SIZE + L2CAP_MIN_OFFSET);
 
-    UNUSED(cmd_code);
     SMP_TRACE_EVENT("%s", __func__);
 
     p = (uint8_t *)(p_buf + 1) + L2CAP_MIN_OFFSET;
@@ -652,13 +644,12 @@
 ** Description      Build security request command.
 **
 *******************************************************************************/
-static BT_HDR *smp_build_security_request(uint8_t cmd_code, tSMP_CB *p_cb)
+static BT_HDR *smp_build_security_request(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb)
 {
     uint8_t *p;
     BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR) +
                         2 + L2CAP_MIN_OFFSET);
 
-    UNUSED(cmd_code);
     SMP_TRACE_EVENT("%s", __func__);
 
     p = (uint8_t *)(p_buf + 1) + L2CAP_MIN_OFFSET;
@@ -680,7 +671,7 @@
 ** Description      Build pairing public key command.
 **
 *******************************************************************************/
-static BT_HDR *smp_build_pair_public_key_cmd(uint8_t cmd_code, tSMP_CB *p_cb)
+static BT_HDR *smp_build_pair_public_key_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb)
 {
     uint8_t *p;
     uint8_t publ_key[2*BT_OCTET32_LEN];
@@ -688,7 +679,6 @@
     BT_HDR  *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR) +
                         SMP_PAIR_PUBL_KEY_SIZE + L2CAP_MIN_OFFSET);
 
-    UNUSED(cmd_code);
     SMP_TRACE_EVENT("%s", __func__);
 
     memcpy(p_publ_key, p_cb->loc_publ_key.x, BT_OCTET32_LEN);
@@ -711,13 +701,12 @@
 ** Description      Build pairing commitment command.
 **
 *******************************************************************************/
-static BT_HDR *smp_build_pairing_commitment_cmd(uint8_t cmd_code, tSMP_CB *p_cb)
+static BT_HDR *smp_build_pairing_commitment_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb)
 {
     uint8_t *p;
     BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR) +
                         SMP_PAIR_COMMITM_SIZE + L2CAP_MIN_OFFSET);
 
-    UNUSED(cmd_code);
     SMP_TRACE_EVENT("%s", __func__);
 
     p = (uint8_t *)(p_buf + 1) + L2CAP_MIN_OFFSET;
@@ -737,13 +726,12 @@
 ** Description      Build pairing DHKey check command.
 **
 *******************************************************************************/
-static BT_HDR *smp_build_pair_dhkey_check_cmd(uint8_t cmd_code, tSMP_CB *p_cb)
+static BT_HDR *smp_build_pair_dhkey_check_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb)
 {
     uint8_t *p;
     BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR) +
                         SMP_PAIR_DHKEY_CHECK_SIZE + L2CAP_MIN_OFFSET);
 
-    UNUSED(cmd_code);
     SMP_TRACE_EVENT("%s", __func__);
 
     p = (uint8_t *)(p_buf + 1) + L2CAP_MIN_OFFSET;
@@ -763,13 +751,12 @@
 ** Description      Build keypress notification command.
 **
 *******************************************************************************/
-static BT_HDR * smp_build_pairing_keypress_notification_cmd(uint8_t cmd_code, tSMP_CB *p_cb)
+static BT_HDR * smp_build_pairing_keypress_notification_cmd(UNUSED_ATTR uint8_t cmd_code, tSMP_CB *p_cb)
 {
     uint8_t     *p;
     BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR) +
                         SMP_PAIR_KEYPR_NOTIF_SIZE + L2CAP_MIN_OFFSET);
 
-    UNUSED(cmd_code);
     SMP_TRACE_EVENT("%s", __func__);
 
     p = (uint8_t *)(p_buf + 1) + L2CAP_MIN_OFFSET;
diff --git a/stack/srvc/srvc_battery.cc b/stack/srvc/srvc_battery.cc
index 33d7ffd..d73f8fa 100644
--- a/stack/srvc/srvc_battery.cc
+++ b/stack/srvc/srvc_battery.cc
@@ -110,13 +110,14 @@
 /*******************************************************************************
 **   BA Attributes Database Server Request callback
 *******************************************************************************/
-uint8_t battery_s_read_attr_value (uint8_t clcb_idx, uint16_t handle, tGATT_VALUE *p_value, bool    is_long, tGATT_STATUS* p_status)
+uint8_t battery_s_read_attr_value (uint8_t clcb_idx, uint16_t handle,
+                                   UNUSED_ATTR tGATT_VALUE *p_value, bool    is_long,
+                                   tGATT_STATUS* p_status)
 {
     uint8_t     i;
     tBA_INST    *p_inst = &battery_cb.battery_inst[0];
     tGATT_STATUS    st = GATT_NOT_FOUND;
     uint8_t     act = SRVC_ACT_RSP;
-    UNUSED(p_value);
 
     for (i = 0; i < BA_MAX_INT_NUM; i ++, p_inst ++)
     {
@@ -164,9 +165,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-bool    battery_gatt_c_read_ba_req(uint16_t conn_id)
+bool    battery_gatt_c_read_ba_req(UNUSED_ATTR uint16_t conn_id)
 {
-    UNUSED(conn_id);
     return true;
 }
 
@@ -179,13 +179,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-void battery_c_cmpl_cback (tSRVC_CLCB *p_clcb, tGATTC_OPTYPE op,
-                              tGATT_STATUS status, tGATT_CL_COMPLETE *p_data)
+void battery_c_cmpl_cback (UNUSED_ATTR tSRVC_CLCB *p_clcb, UNUSED_ATTR tGATTC_OPTYPE op,
+                              UNUSED_ATTR tGATT_STATUS status,
+                           UNUSED_ATTR tGATT_CL_COMPLETE *p_data)
 {
-    UNUSED(p_clcb);
-    UNUSED(op);
-    UNUSED(status);
-    UNUSED(p_data);
 }
 
 
@@ -393,9 +390,8 @@
 ** Returns          void
 **
 *******************************************************************************/
-bool    Battery_ReadBatteryLevel(BD_ADDR peer_bda)
+bool    Battery_ReadBatteryLevel(UNUSED_ATTR BD_ADDR peer_bda)
 {
-    UNUSED(peer_bda);
     /* to be implemented */
     return true;
 }
diff --git a/stack/srvc/srvc_dis.cc b/stack/srvc/srvc_dis.cc
index f11ae67..a268c0d 100644
--- a/stack/srvc/srvc_dis.cc
+++ b/stack/srvc/srvc_dis.cc
@@ -102,17 +102,16 @@
 **
 **   Process write DIS attribute request.
 *******************************************************************************/
-uint8_t dis_write_attr_value(tGATT_WRITE_REQ * p_data, tGATT_STATUS *p_status)
+uint8_t dis_write_attr_value(UNUSED_ATTR tGATT_WRITE_REQ *p_data, tGATT_STATUS *p_status)
 {
-    UNUSED(p_data);
-
     *p_status = GATT_WRITE_NOT_PERMIT;
     return SRVC_ACT_RSP;
 }
 /*******************************************************************************
 **   DIS Attributes Database Server Request callback
 *******************************************************************************/
-uint8_t dis_read_attr_value (uint8_t clcb_idx, uint16_t handle, tGATT_VALUE *p_value,
+uint8_t dis_read_attr_value (UNUSED_ATTR uint8_t clcb_idx, uint16_t handle,
+                             tGATT_VALUE *p_value,
                            bool    is_long, tGATT_STATUS *p_status)
 {
     tDIS_DB_ENTRY   *p_db_attr = dis_cb.dis_attr;
@@ -120,7 +119,6 @@
     uint16_t        offset = p_value->offset;
     uint8_t         act = SRVC_ACT_RSP;
     tGATT_STATUS    st = GATT_NOT_FOUND;
-    UNUSED(clcb_idx);
 
     for (i = 0; i < DIS_MAX_CHAR_NUM; i ++, p_db_attr ++)
     {
diff --git a/stack/srvc/srvc_eng.cc b/stack/srvc/srvc_eng.cc
index 5d95fc3..88afcb2 100644
--- a/stack/srvc/srvc_eng.cc
+++ b/stack/srvc/srvc_eng.cc
@@ -29,7 +29,8 @@
 #include "srvc_battery_int.h"
 
 static void srvc_eng_s_request_cback (uint16_t conn_id, uint32_t trans_id, uint8_t op_code, tGATTS_DATA *p_data);
-static void srvc_eng_connect_cback (tGATT_IF gatt_if, BD_ADDR bda, uint16_t conn_id, bool    connected,
+static void srvc_eng_connect_cback (UNUSED_ATTR tGATT_IF gatt_if, BD_ADDR bda,
+				    uint16_t conn_id, bool    connected,
                                           tGATT_DISCONN_REASON reason, tBT_TRANSPORT transport);
 static void srvc_eng_c_cmpl_cback (uint16_t conn_id, tGATTC_OPTYPE op, tGATT_STATUS status, tGATT_CL_COMPLETE *p_data);
 
@@ -232,10 +233,10 @@
 /*******************************************************************************
 **   Service Engine Server Attributes Database write Request process
 *******************************************************************************/
-uint8_t srvc_eng_process_write_req (uint8_t clcb_idx, tGATT_WRITE_REQ *p_data, tGATTS_RSP *p_rsp, tGATT_STATUS *p_status)
+uint8_t srvc_eng_process_write_req (uint8_t clcb_idx, tGATT_WRITE_REQ *p_data,
+                                    UNUSED_ATTR tGATTS_RSP *p_rsp, tGATT_STATUS *p_status)
 {
     uint8_t     act = SRVC_ACT_RSP;
-    UNUSED(p_rsp);
 
     if (dis_valid_handle_range(p_data->handle))
     {
@@ -347,10 +348,10 @@
 ** Returns          void
 **
 *******************************************************************************/
-static void srvc_eng_connect_cback (tGATT_IF gatt_if, BD_ADDR bda, uint16_t conn_id,
+static void srvc_eng_connect_cback (UNUSED_ATTR tGATT_IF gatt_if, BD_ADDR bda,
+                                    uint16_t conn_id,
                                         bool    connected, tGATT_DISCONN_REASON reason,  tBT_TRANSPORT transport)
 {
-    UNUSED(gatt_if);
     UNUSED (transport);
 
     GATT_TRACE_EVENT ("srvc_eng_connect_cback: from %08x%04x connected:%d conn_id=%d reason = 0x%04x",
diff --git a/udrv/ulinux/uipc.cc b/udrv/ulinux/uipc.cc
index f913500..898d839 100644
--- a/udrv/ulinux/uipc.cc
+++ b/udrv/ulinux/uipc.cc
@@ -504,11 +504,10 @@
 }
 
 
-static void *uipc_read_task(void *arg)
+static void *uipc_read_task(UNUSED_ATTR void *arg)
 {
     int ch_id;
     int result;
-    UNUSED(arg);
 
     prctl(PR_SET_NAME, (unsigned long)"uipc-main", 0, 0, 0);
 
@@ -604,10 +603,8 @@
  **
  *******************************************************************************/
 
-void UIPC_Init(void *p_data)
+void UIPC_Init(UNUSED_ATTR void *p_data)
 {
-    UNUSED(p_data);
-
     BTIF_TRACE_DEBUG("UIPC_Init");
 
     memset(&uipc_main, 0, sizeof(tUIPC_MAIN));
@@ -699,11 +696,10 @@
  ** Returns          true in case of success, false in case of failure.
  **
  *******************************************************************************/
-bool    UIPC_Send(tUIPC_CH_ID ch_id, uint16_t msg_evt, uint8_t *p_buf,
+bool    UIPC_Send(tUIPC_CH_ID ch_id,
+                  UNUSED_ATTR uint16_t msg_evt, uint8_t *p_buf,
         uint16_t msglen)
 {
-    UNUSED(msg_evt);
-
     BTIF_TRACE_DEBUG("UIPC_Send : ch_id:%d %d bytes", ch_id, msglen);
 
     UIPC_LOCK();
@@ -729,12 +725,13 @@
  **
  *******************************************************************************/
 
-uint32_t UIPC_Read(tUIPC_CH_ID ch_id, uint16_t *p_msg_evt, uint8_t *p_buf, uint32_t len)
+uint32_t UIPC_Read(tUIPC_CH_ID ch_id,
+                   UNUSED_ATTR uint16_t *p_msg_evt, uint8_t *p_buf,
+                   uint32_t len)
 {
     int n_read = 0;
     int fd = uipc_main.ch[ch_id].fd;
     struct pollfd pfd;
-    UNUSED(p_msg_evt);
 
     if (ch_id >= UIPC_CH_NUM)
     {
diff --git a/utils/include/bt_utils.h b/utils/include/bt_utils.h
index a091c9b..fb0ff7c 100644
--- a/utils/include/bt_utils.h
+++ b/utils/include/bt_utils.h
@@ -41,7 +41,6 @@
 
 void raise_priority_a2dp(tHIGH_PRIORITY_TASK high_task);
 void adjust_priority_a2dp(int start);
-#define UNUSED(x) (void)(x)
 
 #ifdef __cplusplus
 }