diff --git a/btif/co/bta_ag_co.cc b/btif/co/bta_ag_co.cc
index 640402c..32709fd 100644
--- a/btif/co/bta_ag_co.cc
+++ b/btif/co/bta_ag_co.cc
@@ -43,17 +43,16 @@
  * Function         bta_ag_co_audio_state
  *
  * Description      This function is called by the AG before the audio
- *connection
- *                  is brought up, after it comes up, and after it goes down.
+ *                  connection is brought up, after it comes up, and
+ *                  after it goes down.
  *
  * Parameters       handle - handle of the AG instance
  *                  state - Audio state
  *                  codec - if WBS support is compiled in, codec to going to be
- *used is provided
- *                      and when in SCO_STATE_SETUP, BTM_I2SPCMConfig() must be
- *called with
- *                      the correct platform parameters.
- *                      in the other states codec type should not be ignored
+ *                      used is provided and when in SCO_STATE_SETUP,
+ *                      BTM_I2SPCMConfig() must be called with the correct
+ *                      platform parameters.
+ *                      In the other states, codec type should not be ignored.
  *
  * Returns          void
  *
@@ -108,12 +107,10 @@
  * Function         bta_ag_co_data_open
  *
  * Description      This function is executed by AG when a service level
- *connection
- *                  is opened.  The phone can use this function to set
- *                  up data paths or perform any required initialization or
+ *                  connection is opened.  The phone can use this function to
+ *                  set up data paths or perform any required initialization or
  *                  set up particular to the connected service.
  *
- *
  * Returns          void
  *
  ******************************************************************************/
@@ -142,9 +139,8 @@
  **
  ** Description      This function is called by the AG to send data to the
  **                  phone when the AG is configured for AT command
- *pass-through.
- **                  The implementation of this function must copy the data to
- **                  the phones memory.
+ **                  pass-through. The implementation of this function must copy
+ **                  the data to the phones memory.
  **
  ** Returns          void
  **
diff --git a/btif/co/bta_av_co.cc b/btif/co/bta_av_co.cc
index 3cd30ab..ddc8737 100644
--- a/btif/co/bta_av_co.cc
+++ b/btif/co/bta_av_co.cc
@@ -494,8 +494,7 @@
  ** Function         bta_av_co_audio_setconfig
  **
  ** Description      This callout function is executed by AV to set the codec
- *and
- **                  content protection configuration of the audio stream.
+ **                  and content protection configuration of the audio stream.
  **
  **
  ** Returns          void
@@ -614,8 +613,7 @@
  ** Function         bta_av_co_audio_open
  **
  ** Description      This function is called by AV when the audio stream
- *connection
- **                  is opened.
+ **                  connection is opened.
  **
  **
  ** Returns          void
@@ -643,8 +641,7 @@
  ** Function         bta_av_co_audio_close
  **
  ** Description      This function is called by AV when the audio stream
- *connection
- **                  is closed.
+ **                  connection is closed.
  **
  **
  ** Returns          void
@@ -711,7 +708,7 @@
  **                  the audio codec to AVDTP.
  **
  ** Returns          Pointer to the GKI buffer to send, NULL if no buffer to
- *send
+ **                  send
  **
  *******************************************************************************/
 void* bta_av_co_audio_src_data_path(const uint8_t* p_codec_info,
@@ -756,9 +753,9 @@
  **
  ** Description      An Audio packet is dropped. .
  **                  It's very likely that the connected headset with this
- *handle
- **                  is moved far away. The implementation may want to reduce
- **                  the encoder bit rate setting to reduce the packet size.
+ **                  handle is moved far away. The implementation may want to
+ **                  reduce the encoder bit rate setting to reduce the packet
+ **                  size.
  **
  ** Returns          void
  **
@@ -772,9 +769,8 @@
  ** Function         bta_av_co_audio_delay
  **
  ** Description      This function is called by AV when the audio stream
- *connection
- **                  needs to send the initial delay report to the connected
- *SRC.
+ **                  connection needs to send the initial delay report to the
+ **                  connected SRC.
  **
  **
  ** Returns          void
@@ -915,7 +911,7 @@
  **                  configuration and content protection
  **
  ** Returns          true if all opened devices support this codec, false
- *otherwise
+ **                  otherwise
  **
  *******************************************************************************/
 static bool bta_av_co_audio_codec_supported(void) {
diff --git a/btif/co/bta_dm_co.cc b/btif/co/bta_dm_co.cc
index 4ea6a96..45dff10 100644
--- a/btif/co/bta_dm_co.cc
+++ b/btif/co/bta_dm_co.cc
@@ -64,13 +64,13 @@
  * Function         bta_dm_co_io_req
  *
  * Description      This callout function is executed by DM to get IO
- *capabilities
- *                  of the local device for the Simple Pairing process
+ *                  capabilities of the local device for the Simple Pairing
+ *                  process.
  *
  * Parameters       bd_addr  - The peer device
  *                  *p_io_cap - The local Input/Output capabilities
  *                  *p_oob_data - true, if OOB data is available for the peer
- *device.
+ *                                device.
  *                  *p_auth_req - true, if MITM protection is required.
  *
  * Returns          void.
@@ -93,13 +93,13 @@
  * Function         bta_dm_co_io_rsp
  *
  * Description      This callout function is executed by DM to report IO
- *capabilities
- *                  of the peer device for the Simple Pairing process
+ *                  capabilities of the peer device for the Simple Pairing
+ *                  process.
  *
  * Parameters       bd_addr  - The peer device
  *                  io_cap - The remote Input/Output capabilities
  *                  oob_data - true, if OOB data is available for the peer
- *device.
+ *                             device.
  *                  auth_req - true, if MITM protection is required.
  *
  * Returns          void.
@@ -198,8 +198,7 @@
  *
  * Description      This function can be used by the phone to initialize audio
  *                  codec or for other initialization purposes before SCO
- *connection
- *                  is opened.
+ *                  connection is opened.
  *
  *
  * Returns          tBTA_DM_SCO_ROUTE_TYPE: SCO routing configuration type.
@@ -286,7 +285,7 @@
  * Function         bta_dm_sco_co_in_data
  *
  * Description      This function is called to send incoming SCO data to
- *application.
+ *                  application.
  *
  * Returns          void
  *
@@ -317,7 +316,7 @@
  * Function         bta_dm_co_le_io_key_req
  *
  * Description      This callout function is executed by DM to get BLE key
- *information
+ *                  information
  *                  before SMP pairing gets going.
  *
  * Parameters       bd_addr  - The peer device
@@ -346,8 +345,7 @@
  * Function         bta_dm_co_ble_local_key_reload
  *
  * Description      This callout function is to load the local BLE keys if
- *available
- *                  on the device.
+ *                  available on the device.
  *
  * Parameters       none
  *
@@ -369,15 +367,14 @@
  * Function         bta_dm_co_ble_io_req
  *
  * Description      This callout function is executed by DM to get BLE IO
- *capabilities
- *                  before SMP pairing gets going.
+ *                  capabilities before SMP pairing gets going.
  *
  * Parameters       bd_addr  - The peer device
  *                  *p_io_cap - The local Input/Output capabilities
  *                  *p_oob_data - true, if OOB data is available for the peer
- *device.
+ *                                device.
  *                  *p_auth_req -  Auth request setting (Bonding and MITM
- *required or not)
+ *                                 required or not)
  *                  *p_max_key_size - max key size local device supported.
  *                  *p_init_key - initiator keys.
  *                  *p_resp_key - responder keys.
diff --git a/btif/co/bta_gatts_co.cc b/btif/co/bta_gatts_co.cc
index 77569ca..8733b95 100644
--- a/btif/co/bta_gatts_co.cc
+++ b/btif/co/bta_gatts_co.cc
@@ -93,11 +93,10 @@
  * Function         bta_gatts_co_update_handle_range
  *
  * Description      This callout function is executed by GATTS when a GATT
- *server
- *                  handle range ios to be added or removed.
+ *                  server handle range ios to be added or removed.
  *
  * Parameter        is_add: true is to add a handle range; otherwise is to
- *delete.
+ *                          delete.
  *                  p_hndl_range: handle range.
  *
  * Returns          void.
@@ -115,8 +114,7 @@
  *
  * Description      This call-out is to read/write/remove service change related
  *                  informaiton. The request consists of the cmd and p_req and
- *the
- *                  response is returned in p_rsp
+ *                  the response is returned in p_rsp
  *
  * Parameter        cmd - request command
  *                  p_req - request paramters
@@ -142,8 +140,7 @@
  * Function         bta_gatts_co_load_handle_range
  *
  * Description      This callout function is executed by GATTS when a GATT
- *server
- *                  handle range is requested to be loaded from NV.
+ *                  server handle range is requested to be loaded from NV.
  *
  * Parameter
  *
diff --git a/btif/co/bta_hh_co.cc b/btif/co/bta_hh_co.cc
index 74cf1b3..1bf9bcb 100644
--- a/btif/co/bta_hh_co.cc
+++ b/btif/co/bta_hh_co.cc
@@ -390,8 +390,7 @@
  * Function         bta_hh_co_data
  *
  * Description      This function is executed by BTA when HID host receive a
- *data
- *                  report.
+ *                  data report.
  *
  * Parameters       dev_handle  - device handle
  *                  *p_rpt      - pointer to the report data
@@ -444,7 +443,7 @@
  * Function         bta_hh_co_send_hid_info
  *
  * Description      This function is called in btif_hh.c to process DSCP
- *received.
+ *                  received.
  *
  * Parameters       dev_handle  - device handle
  *                  dscp_len    - report descriptor length
@@ -552,10 +551,9 @@
  * Function         bta_hh_le_co_cache_load
  *
  * Description      This callout function is to request the application to load
- *the
- *                  cached HOGP report if there is any. When cache reading is
- *completed,
- *                  bta_hh_le_ci_cache_load() is called by the application.
+ *                  the cached HOGP report if there is any. When cache reading
+ *                  is completed, bta_hh_le_ci_cache_load() is called by the
+ *                  application.
  *
  * Parameters       remote_bda  - remote device address
  *                  p_num_rpt: number of cached report
diff --git a/btif/co/bta_hl_co.cc b/btif/co/bta_hl_co.cc
index 1bcd0ea..16c8f1f 100644
--- a/btif/co/bta_hl_co.cc
+++ b/btif/co/bta_hl_co.cc
@@ -60,8 +60,7 @@
  *
  * Parameters      app_id - application ID
  *                 p_num_of_mdep (output) - number of MDEP configurations
- *supported
- *                                          by the application
+ *                                          supported by the application
  *
  * Returns         true on success
  *
@@ -85,8 +84,8 @@
  * Function        bta_hl_co_advrtise_source_sdp
  *
  * Description     This function is called to find out whether the SOURCE MDEP
- *                 configuration information should be advertize in the SDP or
- *nopt
+ *                 configuration information should be advertise in the SDP or
+ *                 not.
  *
  * Parameters      app_id - application ID
  *
@@ -113,8 +112,7 @@
  *
  * Description     This function is called to get the supported feature
  *                 configuration for the specified mdep index and it also
- *assigns
- *                 the MDEP ID for the specified mdep index
+ *                 assigns the MDEP ID for the specified mdep index
  *
  * Parameters      app_id - HDP application ID
  *                 mdep_idx - the mdep index
@@ -160,8 +158,7 @@
  *
  * Parameters      app_id - HDP application ID
  *                 p_echo_cfg (output) - pointer to the Echo test maximum APDU
- *size
- *                                       configuration
+ *                                       size configuration
  *
  * Returns         Bloolean - true success
  ******************************************************************************/
@@ -192,8 +189,7 @@
  * Function        bta_hl_co_save_mdl
  *
  * Description     This function is called to save a MDL configuration item in
- *persistent
- *                 storage
+ *                 persistent storage
  *
  * Parameters      app_id - HDP application ID
  *                 item_idx - the MDL configuration storage index
@@ -216,8 +212,7 @@
  * Function        bta_hl_co_delete_mdl
  *
  * Description     This function is called to delete a MDL configuration item in
- *persistent
- *                 storage
+ *                 persistent storage
  *
  * Parameters      app_id - HDP application ID
  *                 item_idx - the MDL configuration storage index
@@ -237,12 +232,11 @@
  *
  * Description     This function is called to get the MDL configuration
  *                 from the persistent memory. This function shall only be
-*called
-*8                 once after the device is powered up
+ *                 called once after the device is powered up
  *
  * Parameters      app_id - HDP application ID
  *                 buffer_size - the unit of the buffer size is
-*sizeof(tBTA_HL_MDL_CFG)
+ *                               sizeof(tBTA_HL_MDL_CFG)
  *                 p_mdl_buf - Point to the starting location of the buffer
  *
  * Returns         bool
diff --git a/btif/include/btif_api.h b/btif/include/btif_api.h
index 3927408..685a354 100644
--- a/btif/include/btif_api.h
+++ b/btif/include/btif_api.h
@@ -300,7 +300,7 @@
  * Function         btif_dm_ssp_reply
  *
  * Description      BT SSP Reply - Just Works, Numeric Comparison & Passkey
- *Entry
+ *                  Entry
  *
  * Returns          bt_status_t
  *
@@ -360,8 +360,7 @@
  * Function         btif_dut_mode_configure
  *
  * Description      Configure Test Mode - 'enable' to 1 puts the device in test
- *mode and 0 exits
- *                       test mode
+ *                  mode and 0 exits test mode
  *
  * Returns          BT_STATUS_SUCCESS on success
  *
diff --git a/btif/include/btif_hl.h b/btif/include/btif_hl.h
index a99f280..94cd108 100644
--- a/btif/include/btif_hl.h
+++ b/btif/include/btif_hl.h
@@ -226,9 +226,8 @@
   uint16_t sec_mask; /* Security mask for BTM_SetSecurityLevel() */
   char srv_name[BTA_SERVICE_NAME_LEN +
                 1]; /* service name to be used in the SDP; null terminated*/
-  char
-      srv_desp[BTA_SERVICE_DESP_LEN + 1]; /* service description to be used in
-                                             the SDP; null terminated */
+  char srv_desp[BTA_SERVICE_DESP_LEN + 1]; /* service description to be used in
+                                              the SDP; null terminated */
   char provider_name[BTA_PROVIDER_NAME_LEN + 1]; /* provide name to be used in
                                                     the SDP; null terminated */
   char
diff --git a/btif/include/btif_sm.h b/btif/include/btif_sm.h
index 3f2f91a..129e312 100644
--- a/btif/include/btif_sm.h
+++ b/btif/include/btif_sm.h
@@ -96,7 +96,7 @@
  * Function     btif_sm_dispatch
  *
  * Description  Dispatches the 'event' along with 'data' to the current state
- *handler
+ *              handler
  *
  * Returns      Returns BT_STATUS_OK on success, BT_STATUS_FAIL otherwise
  *
@@ -111,8 +111,7 @@
  * Description  Make a transition to the new 'state'. The 'BTIF_SM_EXIT_EVT'
  *              shall be invoked before exiting the current state. The
  *              'BTIF_SM_ENTER_EVT' shall be invoked before entering the new
- *state
- *
+ *              state
  *
  * Returns      Returns BT_STATUS_OK on success, BT_STATUS_FAIL otherwise
  *
diff --git a/btif/include/btif_sock_thread.h b/btif/include/btif_sock_thread.h
index 6349b68..207d5fc 100644
--- a/btif/include/btif_sock_thread.h
+++ b/btif/include/btif_sock_thread.h
@@ -31,9 +31,9 @@
 #define SOCK_THREAD_FD_RD 1               /* BT socket read signal */
 #define SOCK_THREAD_FD_WR (1 << 1)        /* BT socket write signal */
 #define SOCK_THREAD_FD_EXCEPTION (1 << 2) /* BT socket exception singal */
-#define SOCK_THREAD_ADD_FD_SYNC                  \
-  (1 << 3) /* Add BT socket fd in current socket \
-               poll thread context immediately */
+
+/* Add BT socket fd in current socket poll thread context immediately */
+#define SOCK_THREAD_ADD_FD_SYNC (1 << 3)
 
 /*******************************************************************************
  *  Functions
diff --git a/btif/include/btif_storage.h b/btif/include/btif_storage.h
index a182e47..1d1c03a 100644
--- a/btif/include/btif_storage.h
+++ b/btif/include/btif_storage.h
@@ -154,7 +154,7 @@
  * Function         btif_storage_add_hid_device_info
  *
  * Description      BTIF storage API - Adds the hid information of bonded hid
- *devices-to NVRAM
+ *                  devices-to NVRAM
  *
  * Returns          BT_STATUS_SUCCESS if the store was successful,
  *                  BT_STATUS_FAIL otherwise
@@ -172,8 +172,7 @@
  * Function         btif_storage_load_bonded_hid_info
  *
  * Description      BTIF storage API - Loads hid info for all the bonded devices
- *from NVRAM
- *                  and adds those devices  to the BTA_HH.
+ *                  from NVRAM and adds those devices  to the BTA_HH.
  *
  * Returns          BT_STATUS_SUCCESS if successful, BT_STATUS_FAIL otherwise
  *
@@ -185,7 +184,7 @@
  * Function         btif_storage_remove_hid_info
  *
  * Description      BTIF storage API - Deletes the bonded hid device info from
- *NVRAM
+ *                  NVRAM
  *
  * Returns          BT_STATUS_SUCCESS if the deletion was successful,
  *                  BT_STATUS_FAIL otherwise
@@ -198,7 +197,7 @@
  * Function         btif_storage_is_retricted_device
  *
  * Description      BTIF storage API - checks if this device is a restricted
- *device
+ *                  device
  *
  * Returns          true  if the device is labled as restricted
  *                  false otherwise
diff --git a/btif/src/btif_av.cc b/btif/src/btif_av.cc
index a753680..c2bc1d3 100644
--- a/btif/src/btif_av.cc
+++ b/btif/src/btif_av.cc
@@ -244,8 +244,7 @@
  * Function         btif_report_connection_state
  *
  * Description      Updates the components via the callbacks about the
- *connection
- *                  state of a2dp connection.
+ *                  connection state of a2dp connection.
  *
  * Returns          None
  *
@@ -1249,7 +1248,7 @@
  * Function         connect
  *
  * Description      Establishes the AV signalling channel with the remote
- *headset
+ *                  headset
  *
  * Returns          bt_status_t
  *
diff --git a/btif/src/btif_core.cc b/btif/src/btif_core.cc
index 2d14251..13ee322 100644
--- a/btif/src/btif_core.cc
+++ b/btif/src/btif_core.cc
@@ -183,7 +183,7 @@
  *                  p_params  : parameter area passed to callback (copied)
  *                  param_len : length of parameter area
  *                  p_copy_cback : If set this function will be invoked for deep
- *copy
+ *                                 copy
  *
  * Returns          void
  *
@@ -656,7 +656,7 @@
  * Function         btif_dut_mode_cback
  *
  * Description     Callback invoked on completion of vendor specific test mode
- *command
+ *                 command
  *
  * Returns          None
  *
@@ -671,8 +671,7 @@
  * Function         btif_dut_mode_configure
  *
  * Description      Configure Test Mode - 'enable' to 1 puts the device in test
- *mode and 0 exits
- *                       test mode
+ *                       mode and 0 exits test mode
  *
  * Returns          BT_STATUS_SUCCESS on success
  *
diff --git a/btif/src/btif_dm.cc b/btif/src/btif_dm.cc
index a734801..162e2c2 100644
--- a/btif/src/btif_dm.cc
+++ b/btif/src/btif_dm.cc
@@ -2275,7 +2275,7 @@
  * Function         btif_dm_create_bond_out_of_band
  *
  * Description      Initiate bonding with the specified device using out of band
- *data
+ *                  data
  *
  * Returns          bt_status_t
  *
@@ -2357,7 +2357,7 @@
  * Function         btif_dm_hh_open_failed
  *
  * Description      informs the upper layers if the HH have failed during
- *bonding
+ *                  bonding
  *
  * Returns          none
  *
@@ -2440,7 +2440,7 @@
  * Function         btif_dm_ssp_reply
  *
  * Description      BT SSP Reply - Just Works, Numeric Comparison & Passkey
- *Entry
+ *                  Entry
  *
  * Returns          bt_status_t
  *
diff --git a/btif/src/btif_hf.cc b/btif/src/btif_hf.cc
index 5c91ec6..5d3c6af 100644
--- a/btif/src/btif_hf.cc
+++ b/btif/src/btif_hf.cc
@@ -653,7 +653,7 @@
  * Function         btif_in_hf_generic_evt
  *
  * Description     Processes generic events to be sent to JNI that are not
- *triggered from the BTA.
+ *                      triggered from the BTA.
  *                      Always runs in BTIF context
  *
  * Returns          void
@@ -1086,7 +1086,7 @@
  * Function         formatted_at_response
  *
  * Description      Pre-formatted AT response, typically in response to unknown
- *AT cmd
+ *                  AT cmd
  *
  * Returns          bt_status_t
  *
@@ -1151,7 +1151,7 @@
  * Description      response for CLCC command
  *                  Can be iteratively called for each call index. Call index
  *                  of 0 will be treated as NULL termination (Completes
- *response)
+ *                  response)
  *
  * Returns          bt_status_t
  *
diff --git a/btif/src/btif_hf_client.cc b/btif/src/btif_hf_client.cc
index b4d42ac..7a44aa6 100644
--- a/btif/src/btif_hf_client.cc
+++ b/btif/src/btif_hf_client.cc
@@ -115,7 +115,7 @@
  * Function        btif_in_hf_client_generic_evt
  *
  * Description     Processes generic events to be sent to JNI that are not
- *triggered from the BTA.
+ *                 triggered from the BTA.
  *                 Always runs in BTIF context
  *
  * Returns          void
diff --git a/btif/src/btif_hh.cc b/btif/src/btif_hh.cc
index c59a8b7..94c4aed 100644
--- a/btif/src/btif_hh.cc
+++ b/btif/src/btif_hh.cc
@@ -256,7 +256,7 @@
  * Function         update_keyboard_lockstates
  *
  * Description      Sends a report to the keyboard to set the lock states of
- *keys
+ *                  keys.
  *
  ******************************************************************************/
 static void update_keyboard_lockstates(btif_hh_device_t* p_dev) {
@@ -284,9 +284,9 @@
  * Function         sync_lockstate_on_connect
  *
  * Description      Function to update the keyboard lock states managed by the
- *OS
- *                  when a HID keyboard is connected or disconnected and
- *reconnected
+ *                  OS when a HID keyboard is connected or disconnected and
+ *                  reconnected
+ *
  * Returns          void
  ******************************************************************************/
 static void sync_lockstate_on_connect(btif_hh_device_t* p_dev) {
@@ -323,7 +323,7 @@
  * Function         btif_hh_find_connected_dev_by_handle
  *
  * Description      Return the connected device pointer of the specified device
- *handle
+ *                  handle
  *
  * Returns          Device entry pointer in the device table
  ******************************************************************************/
@@ -362,7 +362,7 @@
  * Function         btif_hh_find_connected_dev_by_bda
  *
  * Description      Return the connected device pointer of the specified
- *bt_bdaddr_t.
+ *                  bt_bdaddr_t.
  *
  * Returns          Device entry pointer in the device table
  ******************************************************************************/
diff --git a/btif/src/btif_hl.cc b/btif/src/btif_hl.cc
index 19963f1..4496dc9 100644
--- a/btif/src/btif_hl.cc
+++ b/btif/src/btif_hl.cc
@@ -429,7 +429,7 @@
  * Function      btif_hl_find_sdp_idx_using_mdep_filter
  *
  * Description  This function finds the SDP record index using MDEP filter
- *parameters
+ *              parameters
  *
  * Returns      bool
  *
@@ -444,7 +444,7 @@
  * Function      btif_hl_find_sdp_idx_using_mdep_filter
  *
  * Description  This function finds the SDP record index using MDEP filter
- *parameters
+ *              parameters
  *
  * Returns      bool
  *
@@ -3498,7 +3498,7 @@
  * Function         btif_hl_upstreams_ctrl_evt
  *
  * Description      Callback function for HL control events in the BTIF task
- *context
+ *                  context
  *
  * Returns          void
  *
@@ -4104,7 +4104,7 @@
  * Function btif_hl_update_maxfd
  *
  * Description Update the max fd if the input fd is greater than the current max
- *fd
+ * fd
  *
  * Returns int
  *
diff --git a/btif/src/btif_rc.cc b/btif/src/btif_rc.cc
index 11091ff..8833bac 100644
--- a/btif/src/btif_rc.cc
+++ b/btif/src/btif_rc.cc
@@ -1343,7 +1343,7 @@
  ** Function       btif_rc_check_handle_pending_play
  **
  ** Description    Clears the queued PLAY command. if |bSendToApp| is true,
- *forwards to app
+ **                forwards to app
  **
  ***************************************************************************/
 
@@ -1420,7 +1420,7 @@
  *
  *  - Argument:   status
  *  - Description: Returns response type codes for particular command code and
- *status.
+ *                 status.
  *
  ***************************************************************************/
 static tBTA_AV_CODE get_rsp_type_code(tAVRC_STS status, tBTA_AV_CODE code) {
@@ -2094,9 +2094,8 @@
  * Function         reject_pending_notification
  *
  * Description      Utility function to reject a pending notification. When
- *AddressedPlayer
- *                  change is received, all pending notifications should be
- *completed.
+ *                  AddressedPlayer change is received, all pending
+ *                  notifications should be completed.
  *
  * Returns          void
  *
@@ -2225,15 +2224,14 @@
  * Function         get_folder_items_list_rsp
  *
  * Description      Returns the list of media items in current folder along with
- *requested
- *                  attributes. This is called in response to GetFolderItems
- *request.
+ *                  requested attributes. This is called in response to
+ *                  GetFolderItems request.
  *
  * Returns          bt_status_t
  *                      BT_STATUS_NOT_READY - when RC is not connected.
  *                      BT_STATUS_SUCCESS   - always if RC is connected
  *                      BT_STATUS_UNHANDLED - when rsp is not pending for
- *get_folder_items_list PDU
+ *                                            get_folder_items_list PDU
  *
  **************************************************************************/
 static bt_status_t get_folder_items_list_rsp(bt_bdaddr_t* bd_addr,
@@ -2391,8 +2389,7 @@
  * Function         set_addressed_player_rsp
  *
  * Description      Response to set the addressed player for specified media
- *player based on
- *                  id in the media player list.
+ *                  player based on id in the media player list.
  *
  * Returns          bt_status_t
  *                      BT_STATUS_NOT_READY - when RC is not connected.
@@ -2424,17 +2421,16 @@
  * Function         set_browsed_player_rsp
  *
  * Description      Response to set the browsed player command which contains
- *current browsed path
- *                  of the media player. By default, current_path = root and
- *folder_depth = 0 for
+ *                  current browsed path of the media player. By default,
+ *                  current_path = root and folder_depth = 0 for
  *                  every set_browsed_player request.
  *
  * Returns          bt_status_t
  *                      BT_STATUS_NOT_READY - when RC is not connected.
  *                      BT_STATUS_SUCCESS   - if RC is connected and reponse
- *sent successfully
+ *                                            sent successfully
  *                      BT_STATUS_UNHANDLED - when rsp is not pending for
- *set_browsed_player PDU
+ *                                            set_browsed_player PDU
  *
  **************************************************************************/
 static bt_status_t set_browsed_player_rsp(bt_bdaddr_t* bd_addr,
@@ -3765,7 +3761,7 @@
  * Description      handles the the get attributes text response, if fails
  *                  calls HAL callback with just normal settings and initiates
  *                  query for current settings else initiates query for value
- *text
+ *                  text
  * Returns          None
  *
  **************************************************************************/
diff --git a/btif/src/btif_sdp.cc b/btif/src/btif_sdp.cc
index 7e80091..6c337f5 100644
--- a/btif/src/btif_sdp.cc
+++ b/btif/src/btif_sdp.cc
@@ -21,7 +21,7 @@
  *  Filename:      btif_sdp.c
  *  Description:   SDP Bluetooth Interface.
  *                 Implements the generic message handling and search
- *functionality.
+ *                 functionality.
  *                 References btif_sdp_server.c for SDP record creation.
  *
  ***********************************************************************************/
diff --git a/btif/src/btif_sdp_server.cc b/btif/src/btif_sdp_server.cc
index c66f84d..4830e66 100644
--- a/btif/src/btif_sdp_server.cc
+++ b/btif/src/btif_sdp_server.cc
@@ -20,7 +20,7 @@
  *
  *  Filename:      btif_sdp_server.cc
  *  Description:   SDP server Bluetooth Interface to create and remove SDP
- *records.
+ *                 records.
  *                 To be used in combination with the RFCOMM/L2CAP(LE) sockets.
  *
  *
diff --git a/btif/src/btif_sm.cc b/btif/src/btif_sm.cc
index 9b2b033..8f7bbb2 100644
--- a/btif/src/btif_sm.cc
+++ b/btif/src/btif_sm.cc
@@ -118,7 +118,7 @@
  * Function     btif_sm_dispatch
  *
  * Description  Dispatches the 'event' along with 'data' to the current state
- *handler
+ *              handler
  *
  * Returns      BT_STATUS_SUCCESS on success
  *              BT_STATUS_UNHANDLED if event was not processed
@@ -149,7 +149,7 @@
  * Description  Make a transition to the new 'state'. The 'BTIF_SM_EXIT_EVT'
  *              shall be invoked before exiting the current state. The
  *              'BTIF_SM_ENTER_EVT' shall be invoked before entering the new
- *state
+ *              state
  *
  * Returns      BT_STATUS_SUCCESS on success
  *              BT_STATUS_UNHANDLED if event was not processed
diff --git a/btif/src/btif_sock_l2cap.cc b/btif/src/btif_sock_l2cap.cc
index 2e4dd8f..dd5887f 100644
--- a/btif/src/btif_sock_l2cap.cc
+++ b/btif/src/btif_sock_l2cap.cc
@@ -794,15 +794,14 @@
 }
 
 /* L2CAP default options for OBEX socket connections */
-const tL2CAP_FCR_OPTS obex_l2c_fcr_opts_def =
-    {
-        L2CAP_FCR_ERTM_MODE,               /* Mandatory for OBEX over l2cap */
-        OBX_FCR_OPT_TX_WINDOW_SIZE_BR_EDR, /* Tx window size */
-        OBX_FCR_OPT_MAX_TX_B4_DISCNT,      /* Maximum transmissions before
-                                              disconnecting */
-        OBX_FCR_OPT_RETX_TOUT,             /* Retransmission timeout (2 secs) */
-        OBX_FCR_OPT_MONITOR_TOUT,          /* Monitor timeout (12 secs) */
-        OBX_FCR_OPT_MAX_PDU_SIZE           /* MPS segment size */
+const tL2CAP_FCR_OPTS obex_l2c_fcr_opts_def = {
+    L2CAP_FCR_ERTM_MODE,               /* Mandatory for OBEX over l2cap */
+    OBX_FCR_OPT_TX_WINDOW_SIZE_BR_EDR, /* Tx window size */
+    OBX_FCR_OPT_MAX_TX_B4_DISCNT,      /* Maximum transmissions before
+                                          disconnecting */
+    OBX_FCR_OPT_RETX_TOUT,             /* Retransmission timeout (2 secs) */
+    OBX_FCR_OPT_MONITOR_TOUT,          /* Monitor timeout (12 secs) */
+    OBX_FCR_OPT_MAX_PDU_SIZE           /* MPS segment size */
 };
 const tL2CAP_ERTM_INFO obex_l2c_etm_opt = {
     L2CAP_FCR_ERTM_MODE,     /* Mandatory for OBEX over l2cap */
diff --git a/btif/src/btif_storage.cc b/btif/src/btif_storage.cc
index 21d6eb3..9013f5b 100644
--- a/btif/src/btif_storage.cc
+++ b/btif/src/btif_storage.cc
@@ -794,7 +794,7 @@
  *                  and adds to the BTA.
  *                  Additionally, this API also invokes the adaper_properties_cb
  *                  and remote_device_properties_cb for each of the bonded
- *devices.
+ *                  devices.
  *
  * Returns          BT_STATUS_SUCCESS if successful, BT_STATUS_FAIL otherwise
  *
@@ -1217,7 +1217,7 @@
  * Function         btif_storage_add_hid_device_info
  *
  * Description      BTIF storage API - Adds the hid information of bonded hid
- *devices-to NVRAM
+ *                  devices-to NVRAM
  *
  * Returns          BT_STATUS_SUCCESS if the store was successful,
  *                  BT_STATUS_FAIL otherwise
@@ -1251,8 +1251,7 @@
  * Function         btif_storage_load_bonded_hid_info
  *
  * Description      BTIF storage API - Loads hid info for all the bonded devices
- *from NVRAM
- *                  and adds those devices  to the BTA_HH.
+ *                  from NVRAM and adds those devices  to the BTA_HH.
  *
  * Returns          BT_STATUS_SUCCESS if successful, BT_STATUS_FAIL otherwise
  *
@@ -1333,7 +1332,7 @@
  * Function         btif_storage_remove_hid_info
  *
  * Description      BTIF storage API - Deletes the bonded hid device info from
- *NVRAM
+ *                  NVRAM
  *
  * Returns          BT_STATUS_SUCCESS if the deletion was successful,
  *                  BT_STATUS_FAIL otherwise
@@ -1362,7 +1361,7 @@
  * Function         btif_storage_is_restricted_device
  *
  * Description      BTIF storage API - checks if this device is a restricted
- *device
+ *                  device
  *
  * Returns          true  if the device is labeled as restricted
  *                  false otherwise
