u8 win_sz);
 void ath6kl_wakeup_event(void *dev);
 
-void ath6kl_reset_device(struct ath6kl *ar, u32 target_type,
-                        bool wait_fot_compltn, bool cold_reset);
 void ath6kl_init_control_info(struct ath6kl_vif *vif);
 struct ath6kl_vif *ath6kl_vif_first(struct ath6kl *ar);
 void ath6kl_cfg80211_vif_stop(struct ath6kl_vif *vif, bool wmi_ready);
 
        buf[len] = '\0';
 }
 
+static int ath6kl_init_hw_reset(struct ath6kl *ar)
+{
+       ath6kl_dbg(ATH6KL_DBG_BOOT, "cold resetting the device");
+
+       return ath6kl_diag_write32(ar, RESET_CONTROL_ADDRESS,
+                                  cpu_to_le32(RESET_CONTROL_COLD_RST));
+}
+
 static int __ath6kl_init_hw_start(struct ath6kl *ar)
 {
        long timeleft;
         * Try to reset the device if we can. The driver may have been
         * configure NOT to reset the target during a debug session.
         */
-       ath6kl_dbg(ATH6KL_DBG_TRC,
-                  "attempting to reset target on instance destroy\n");
-       ath6kl_reset_device(ar, ar->target_type, true, true);
+       ath6kl_init_hw_reset(ar);
 
        up(&ar->sem);
 }
 
        return ret;
 }
 
-/* FIXME: move to a better place, target.h? */
-#define AR6003_RESET_CONTROL_ADDRESS 0x00004000
-#define AR6004_RESET_CONTROL_ADDRESS 0x00004000
-
-void ath6kl_reset_device(struct ath6kl *ar, u32 target_type,
-                        bool wait_fot_compltn, bool cold_reset)
-{
-       int status = 0;
-       u32 address;
-       __le32 data;
-
-       if (target_type != TARGET_TYPE_AR6003 &&
-           target_type != TARGET_TYPE_AR6004)
-               return;
-
-       data = cold_reset ? cpu_to_le32(RESET_CONTROL_COLD_RST) :
-                           cpu_to_le32(RESET_CONTROL_MBOX_RST);
-
-       switch (target_type) {
-       case TARGET_TYPE_AR6003:
-               address = AR6003_RESET_CONTROL_ADDRESS;
-               break;
-       case TARGET_TYPE_AR6004:
-               address = AR6004_RESET_CONTROL_ADDRESS;
-               break;
-       }
-
-       status = ath6kl_diag_write32(ar, address, data);
-
-       if (status)
-               ath6kl_err("failed to reset target\n");
-}
-
 static void ath6kl_install_static_wep_keys(struct ath6kl_vif *vif)
 {
        u8 index;
 
 #define AR6004_BOARD_DATA_SZ     6144
 #define AR6004_BOARD_EXT_DATA_SZ 0
 
-#define RESET_CONTROL_ADDRESS          0x00000000
+#define RESET_CONTROL_ADDRESS          0x00004000
 #define RESET_CONTROL_COLD_RST         0x00000100
 #define RESET_CONTROL_MBOX_RST         0x00000004