static void handle_scan_complete(struct work_struct *work)
 {
        struct host_if_msg *msg = container_of(work, struct host_if_msg, work);
-       struct wilc *wilc = msg->vif->wilc;
 
        del_timer(&msg->vif->hif_drv->scan_timer);
 
-       if (!wilc_wlan_get_num_conn_ifcs(wilc))
-               wilc_chip_sleep_manually(wilc);
-
        handle_scan_done(msg->vif, SCAN_EVENT_DONE);
 
        kfree(msg);
 
        dev_info(dev, "sdio suspend\n");
        chip_wakeup(wilc);
 
-       if (!wilc->suspend_event) {
-               wilc_chip_sleep_manually(wilc);
-       } else {
+       if (wilc->suspend_event) {
                host_sleep_notify(wilc);
                chip_allow_sleep(wilc);
        }
 
 }
 EXPORT_SYMBOL_GPL(chip_wakeup);
 
-void wilc_chip_sleep_manually(struct wilc *wilc)
-{
-       if (wilc->chip_ps_state != WILC_CHIP_WAKEDUP)
-               return;
-       acquire_bus(wilc, WILC_BUS_ACQUIRE_ONLY);
-
-       chip_allow_sleep(wilc);
-       wilc->hif_func->hif_write_reg(wilc, 0x10a8, 1);
-
-       wilc->chip_ps_state = WILC_CHIP_SLEEPING_MANUAL;
-       release_bus(wilc, WILC_BUS_RELEASE_ONLY);
-}
-EXPORT_SYMBOL_GPL(wilc_chip_sleep_manually);
-
 void host_wakeup_notify(struct wilc *wilc)
 {
        acquire_bus(wilc, WILC_BUS_ACQUIRE_ONLY);
 
                      u32 drv_handler);
 int wilc_wlan_txq_add_mgmt_pkt(struct net_device *dev, void *priv, u8 *buffer,
                               u32 buffer_size, void (*func)(void *, int));
-void wilc_chip_sleep_manually(struct wilc *wilc);
-
 void wilc_enable_tcp_ack_filter(struct wilc_vif *vif, bool value);
 int wilc_wlan_get_num_conn_ifcs(struct wilc *wilc);
 netdev_tx_t wilc_mac_xmit(struct sk_buff *skb, struct net_device *dev);