diff --git a/gnss/1.0/IGnssNiCallback.hal b/gnss/1.0/IGnssNiCallback.hal
index c5fb223..163ba25 100644
--- a/gnss/1.0/IGnssNiCallback.hal
+++ b/gnss/1.0/IGnssNiCallback.hal
@@ -16,9 +16,9 @@
 
 package android.hardware.gnss@1.0;
 
-/* GNSS Network Initiated callback interface. */
+/** GNSS Network Initiated callback interface. */
 interface IGnssNiCallback {
-    /*
+    /**
      * GnssNiType constants
      */
     @export(name="", value_prefix="GPS_NI_TYPE_")
@@ -28,7 +28,7 @@
         UMTS_CTRL_PLANE = 3
     };
 
-    /*
+    /**
      * GnssNiNotifyFlags constants
      */
     @export(name="", value_prefix="GPS_NI_")
@@ -41,7 +41,7 @@
         PRIVACY_OVERRIDE = 0x0004,
     };
 
-    /*
+    /**
      * GNSS NI responses, used to define the response in
      * NI structures
      */
@@ -52,7 +52,7 @@
         RESPONSE_NORESP  = 3,
     };
 
-    /*
+    /**
      * NI data encoding scheme
      */
     @export(name="", value_prefix="GPS_")
@@ -66,59 +66,59 @@
 
     /** Represents an NI request */
     struct GnssNiNotification{
-        /*
+        /**
          * An ID generated by HAL to associate NI notifications and UI
          * responses.
          */
         int32_t notificationId;
 
-        /*
+        /**
          * A type used to distinguish different categories of NI
          * events, such as VOICE, UMTS_SUPL etc.
          */
         GnssNiType niType;
 
-        /*
+        /**
          * Notification/verification options, combinations of GnssNiNotifyFlags
          * constants.
          */
         bitfield<GnssNiNotifyFlags> notifyFlags;
 
-        /*
+        /**
          * Timeout period to wait for user response.
          * Set to 0 for no timeout limit. Specified in seconds.
          */
         uint32_t timeoutSec;
 
-        /*
+        /**
          * Default response when timeout.
          */
         GnssUserResponseType defaultResponse;
 
-        /*
+        /**
          * String representing the requester of the network inititated location
          * request.
          */
         string requestorId;
 
-        /*
+        /**
          * Notification message. String representing the service(for eg. SUPL-service)
          * who sent the network initiated location request.
          */
         string notificationMessage;
 
-        /*
+        /**
          * requestorId decoding scheme.
          */
         GnssNiEncodingType requestorIdEncoding;
 
-        /*
+        /**
          * notificationId decoding scheme
          */
         GnssNiEncodingType notificationIdEncoding;
     };
 
-    /*
+    /**
      * Callback with a network initiated request.
      *
      * @param notification network initiated request.
