diff --git a/wilink_6_1/platforms/os/linux/src/WlanDrvIf.c b/wilink_6_1/platforms/os/linux/src/WlanDrvIf.c
index c719d49..afdd005 100644
--- a/wilink_6_1/platforms/os/linux/src/WlanDrvIf.c
+++ b/wilink_6_1/platforms/os/linux/src/WlanDrvIf.c
@@ -600,14 +600,13 @@
     TWlanDrvIfObj *drv = (TWlanDrvIfObj *)NETDEV_GET_PRIVATE(dev);
 
     ti_dprintf (TIWLAN_LOG_OTHER, "wlanDrvIf_Start()\n");
-
+    printk("%s\n", __func__);
     if (!drv->tCommon.hDrvMain)
     {
         ti_dprintf (TIWLAN_LOG_ERROR, "wlanDrvIf_Start() Driver not created!\n");
         return -ENODEV;
     }
 
-
     /*
      *  Insert Start command in DrvMain action queue, request driver scheduling 
      *      and wait for action completion (all init process).
@@ -622,7 +621,7 @@
     TWlanDrvIfObj *drv = (TWlanDrvIfObj *)NETDEV_GET_PRIVATE(dev);
 
     ti_dprintf (TIWLAN_LOG_OTHER, "wlanDrvIf_Open()\n");
-
+    printk("%s\n", __func__);
     if (!drv->tCommon.hDrvMain)
     {
         ti_dprintf (TIWLAN_LOG_ERROR, "wlanDrvIf_Open() Driver not created!\n");
@@ -646,7 +645,6 @@
     sdioDrv_register_pm(wlanDrvIf_pm_resume, wlanDrvIf_pm_suspend);
 #endif
 #endif
-
     return 0;
 }
 
@@ -668,6 +666,7 @@
     TWlanDrvIfObj *drv = (TWlanDrvIfObj *)NETDEV_GET_PRIVATE(dev);
 
     ti_dprintf (TIWLAN_LOG_OTHER, "wlanDrvIf_Stop()\n");
+    printk("%s\n", __func__);
     /* 
      *  Insert Stop command in DrvMain action queue, request driver scheduling 
      *      and wait for Stop process completion.
@@ -681,7 +680,7 @@
     /* TWlanDrvIfObj *drv = (TWlanDrvIfObj *)NETDEV_GET_PRIVATE(dev); */
 
     ti_dprintf (TIWLAN_LOG_OTHER, "wlanDrvIf_Release()\n");
-
+    printk("%s\n", __func__);
     /* Disable network interface queue */
     netif_stop_queue (dev);
     return 0;
