mod_timer(&wil->scan_timer, jiffies + WIL6210_SCAN_TO);
 
        memset(&cmd, 0, sizeof(cmd));
+       cmd.cmd.scan_type = WMI_ACTIVE_SCAN;
        cmd.cmd.num_channels = 0;
        n = min(request->n_channels, 4U);
        for (i = 0; i < n; i++) {
        if (rc)
                goto out;
 
+       if (wil->discovery_mode && cmd.cmd.scan_type == WMI_ACTIVE_SCAN) {
+               cmd.cmd.discovery_mode = 1;
+               wil_dbg_misc(wil, "active scan with discovery_mode=1\n");
+       }
+
        rc = wmi_send(wil, WMI_START_SCAN_CMDID, &cmd, sizeof(cmd.cmd) +
                        cmd.cmd.num_channels * sizeof(cmd.cmd.channel_list[0]));
 
 
        doff_x32 = 1,
        doff_ulong = 2,
        doff_io32 = 3,
+       doff_u8 = 4
 };
 
 /* offset to "wil" */
                                                         tbl[i].mode, dbg,
                                                         base + tbl[i].off);
                        break;
+               case doff_u8:
+                       f = debugfs_create_u8(tbl[i].name, tbl[i].mode, dbg,
+                                             base + tbl[i].off);
+                       break;
                default:
                        f = ERR_PTR(-EINVAL);
                }
        WIL_FIELD(hw_version,   S_IRUGO,                doff_x32),
        WIL_FIELD(recovery_count, S_IRUGO,              doff_u32),
        WIL_FIELD(ap_isolate,   S_IRUGO,                doff_u32),
+       WIL_FIELD(discovery_mode, S_IRUGO | S_IWUSR,    doff_u8),
        {},
 };
 
 
        /* debugfs */
        struct dentry *debug;
        struct debugfs_blob_wrapper blobs[ARRAY_SIZE(fw_mapping)];
+       u8 discovery_mode;
 
        void *platform_handle;
        struct wil_platform_ops platform_ops;
 
  * - WMI_SCAN_COMPLETE_EVENTID
  */
 enum wmi_scan_type {
-       WMI_LONG_SCAN           = 0,
+       WMI_ACTIVE_SCAN         = 0,
        WMI_SHORT_SCAN          = 1,
        WMI_PBC_SCAN            = 2,
        WMI_DIRECT_SCAN         = 3,
-       WMI_ACTIVE_SCAN         = 4,
+       WMI_LONG_SCAN           = 4,
 };
 
 struct wmi_start_scan_cmd {
        u8 direct_scan_mac_addr[6];
-       u8 reserved[2];
+       u8 discovery_mode;
+       u8 reserved;
        __le32 home_dwell_time; /* Max duration in the home channel(ms) */
        __le32 force_scan_interval;     /* Time interval between scans (ms)*/
        u8 scan_type;           /* wmi_scan_type */