ath6kl: cleanup ath6kl_reset_device()
authorKalle Valo <kvalo@qca.qualcomm.com>
Sat, 9 Mar 2013 10:01:35 +0000 (12:01 +0200)
committerKalle Valo <kvalo@qca.qualcomm.com>
Mon, 18 Mar 2013 11:37:46 +0000 (13:37 +0200)
Move it to init.c, make it static, remove all useless checks and force it to
always do cold reset.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath6kl/core.h
drivers/net/wireless/ath/ath6kl/init.c
drivers/net/wireless/ath/ath6kl/main.c
drivers/net/wireless/ath/ath6kl/target.h

index 1c9ed40..26b0f92 100644 (file)
@@ -935,8 +935,6 @@ void aggr_recv_addba_req_evt(struct ath6kl_vif *vif, u8 tid, u16 seq_no,
                             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);
index 3e45adc..ae1e477 100644 (file)
@@ -1619,6 +1619,14 @@ static void ath6kl_init_get_fwcaps(struct ath6kl *ar, char *buf, size_t buf_len)
        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;
@@ -1836,9 +1844,7 @@ void ath6kl_stop_txrx(struct ath6kl *ar)
         * 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);
 }
index bd50b6b..bad62b3 100644 (file)
@@ -345,39 +345,6 @@ out:
        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;
index a98c12b..a580a62 100644 (file)
@@ -25,7 +25,7 @@
 #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