#define MRVDRV_MAX_BEACON_INTERVAL             1000
 #define MRVDRV_BEACON_INTERVAL                 100
 
+#define MARVELL_MESH_IE_LENGTH         9
+
 /** INT status Bit Definition*/
 #define his_cmddnldrdy                 0x01
 #define his_cardevent                  0x02
 
                                memcpy(bss->wpa_ie, elem, bss->wpa_ie_len);
                                lbs_dbg_hex("process_bss: WPA IE", bss->wpa_ie,
                                            elem->len);
+                       } else if (elem->len >= MARVELL_MESH_IE_LENGTH &&
+                           elem->data[0] == 0x00 &&
+                           elem->data[1] == 0x50 &&
+                           elem->data[2] == 0x43 &&
+                           elem->data[3] == 0x04) {
+                               bss->mesh = 1;
                        }
                        break;
 
                        break;
                }
 
+               /* For mesh device, list only mesh networks */
+               if (dev == priv->mesh_dev && !iter_bss->mesh)
+                       continue;
+
                /* Prune old an old scan result */
                stale_time = iter_bss->last_scanned + DEFAULT_MAX_SCAN_AGE;
                if (time_after(jiffies, stale_time)) {