diff --git a/wifi/1.0/IWifiStaIfaceEventCallback.hal b/wifi/1.0/IWifiStaIfaceEventCallback.hal
index 1ee2d4e..7466fc3 100644
--- a/wifi/1.0/IWifiStaIfaceEventCallback.hal
+++ b/wifi/1.0/IWifiStaIfaceEventCallback.hal
@@ -17,32 +17,6 @@
 package android.hardware.wifi@1.0;
 
 interface IWifiStaIfaceEventCallback {
-  /**
-   * Callback indicating that the requested packet filter was successfully
-   * installed.
-   */
-  oneway onInstallPacketFilterSuccess();
-
-  /**
-   * Callback indicating that installing a packet filter failed.
-   */
-  oneway onInstallPacketFilterFailure(FailureReason reason);
-
-  /**
-   * Callback indicating that a requested background scan was started.
-   */
-  oneway onBackgroundScanStarted();
-
-  /**
-   * Callback indicating that a requested background scan failed to start.
-   */
-  oneway onBackgroundScanStartFailure(FailureReason reason);
-
-  /**
-   * Callback indicating that a scan was stopped
-   */
-  oneway onBackgroundScanStopped();
-
  /**
   * Information elements contained within the |ScanResult| structure.
   * These elements correspond to the IEEE_802.11 standard.
@@ -104,6 +78,12 @@
   };
 
   /**
+   * Callback indicating that an ongoing background scan request has failed.
+   * The background scan needs to be restarted to continue scanning.
+   */
+  oneway onBackgroundScanFailure(CommandId cmdId);
+
+  /**
    * Called for each received beacon/probe response for a scan with the
    * |REPORT_EVENTS_FULL_RESULTS| flag set in
    * |BackgroundScanBucketParameters.eventReportScheme|.
