]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/wireless/iwlwifi/iwl-core.c
Merge git://git.infradead.org/battery-2.6
[linux-2.6-omap-h63xx.git] / drivers / net / wireless / iwlwifi / iwl-core.c
index 342a269b8abb2ab7dd769b5cd935d0133c159b76..2dfd982d7d1f6977c6de528ea11fbc31ab365fd3 100644 (file)
 struct iwl_priv; /* FIXME: remove */
 #include "iwl-debug.h"
 #include "iwl-eeprom.h"
+#include "iwl-4965.h" /* FIXME: remove */
 #include "iwl-core.h"
+#include "iwl-rfkill.h"
 
-#include "iwl-4965.h" /* FIXME: remove */
 
 MODULE_DESCRIPTION("iwl core");
 MODULE_VERSION(IWLWIFI_VERSION);
@@ -255,14 +256,20 @@ EXPORT_SYMBOL(iwl_setup);
 int iwlcore_low_level_notify(struct iwl_priv *priv,
                              enum iwlcore_card_notify notify)
 {
+       int ret;
        switch (notify) {
        case IWLCORE_INIT_EVT:
+               ret = iwl_rfkill_init(priv);
+               if (ret)
+                       IWL_ERROR("Unable to initialize RFKILL system. "
+                                 "Ignoring error: %d\n", ret);
                break;
        case IWLCORE_START_EVT:
                break;
        case IWLCORE_STOP_EVT:
                break;
        case IWLCORE_REMOVE_EVT:
+               iwl_rfkill_unregister(priv);
                break;
        }
 
@@ -270,3 +277,16 @@ int iwlcore_low_level_notify(struct iwl_priv *priv,
 }
 EXPORT_SYMBOL(iwlcore_low_level_notify);
 
+int iwl_send_statistics_request(struct iwl_priv *priv, u8 flags)
+{
+       u32 stat_flags = 0;
+       struct iwl_host_cmd cmd = {
+               .id = REPLY_STATISTICS_CMD,
+               .meta.flags = flags,
+               .len = sizeof(stat_flags),
+               .data = (u8 *) &stat_flags,
+       };
+       return iwl_send_cmd(priv, &cmd);
+}
+EXPORT_SYMBOL(iwl_send_statistics_request);
+