ath6kl: alignment should match open parenthesis
[cascardo/linux.git] / drivers / net / wireless / ath / ath6kl / hif.c
index e57da35..68ed6c2 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2007-2011 Atheros Communications Inc.
+ * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
  *
  * Permission to use, copy, modify, and/or distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -15,6 +16,8 @@
  */
 #include "hif.h"
 
+#include <linux/export.h>
+
 #include "core.h"
 #include "target.h"
 #include "hif-ops.h"
@@ -59,6 +62,8 @@ int ath6kl_hif_rw_comp_handler(void *context, int status)
 
        return 0;
 }
+EXPORT_SYMBOL(ath6kl_hif_rw_comp_handler);
+
 #define REG_DUMP_COUNT_AR6003   60
 #define REGISTER_DUMP_LEN_MAX   60
 
@@ -85,7 +90,7 @@ static void ath6kl_hif_dump_fw_crash(struct ath6kl *ar)
        }
 
        ath6kl_dbg(ATH6KL_DBG_IRQ, "register dump data address 0x%x\n",
-               regdump_addr);
+                  regdump_addr);
        regdump_addr = TARG_VTOP(ar->target_type, regdump_addr);
 
        /* fetch register dump data */
@@ -102,9 +107,9 @@ static void ath6kl_hif_dump_fw_crash(struct ath6kl *ar)
 
        BUILD_BUG_ON(REG_DUMP_COUNT_AR6003 % 4);
 
-       for (i = 0; i < REG_DUMP_COUNT_AR6003 / 4; i++) {
+       for (i = 0; i < REG_DUMP_COUNT_AR6003; i += 4) {
                ath6kl_info("%d: 0x%8.8x 0x%8.8x 0x%8.8x 0x%8.8x\n",
-                           4 * i,
+                           i,
                            le32_to_cpu(regdump_val[i]),
                            le32_to_cpu(regdump_val[i + 1]),
                            le32_to_cpu(regdump_val[i + 2]),
@@ -130,6 +135,7 @@ static int ath6kl_hif_proc_dbg_intr(struct ath6kl_device *dev)
                ath6kl_warn("Failed to clear debug interrupt: %d\n", ret);
 
        ath6kl_hif_dump_fw_crash(dev->ar);
+       ath6kl_read_fwlogs(dev->ar);
 
        return ret;
 }
@@ -279,7 +285,7 @@ static int ath6kl_hif_proc_counter_intr(struct ath6kl_device *dev)
                             dev->irq_en_reg.cntr_int_status_en;
 
        ath6kl_dbg(ATH6KL_DBG_IRQ,
-               "valid interrupt source(s) in COUNTER_INT_STATUS: 0x%x\n",
+                  "valid interrupt source(s) in COUNTER_INT_STATUS: 0x%x\n",
                counter_int_status);
 
        /*
@@ -354,7 +360,7 @@ static int ath6kl_hif_proc_cpu_intr(struct ath6kl_device *dev)
        }
 
        ath6kl_dbg(ATH6KL_DBG_IRQ,
-               "valid interrupt source(s) in CPU_INT_STATUS: 0x%x\n",
+                  "valid interrupt source(s) in CPU_INT_STATUS: 0x%x\n",
                cpu_int_status);
 
        /* Clear the interrupt */
@@ -429,9 +435,8 @@ static int proc_pending_irqs(struct ath6kl_device *dev, bool *done)
                if (status)
                        goto out;
 
-               if (AR_DBG_LVL_CHECK(ATH6KL_DBG_IRQ))
-                       ath6kl_dump_registers(dev, &dev->irq_proc_reg,
-                                        &dev->irq_en_reg);
+               ath6kl_dump_registers(dev, &dev->irq_proc_reg,
+                                     &dev->irq_en_reg);
 
                /* Update only those registers that are enabled */
                host_int_status = dev->irq_proc_reg.host_int_status &
@@ -561,6 +566,7 @@ int ath6kl_hif_intr_bh_handler(struct ath6kl *ar)
 
        return status;
 }
+EXPORT_SYMBOL(ath6kl_hif_intr_bh_handler);
 
 static int ath6kl_hif_enable_intrs(struct ath6kl_device *dev)
 {
@@ -689,6 +695,11 @@ int ath6kl_hif_setup(struct ath6kl_device *dev)
        ath6kl_dbg(ATH6KL_DBG_HIF, "hif block size %d mbox addr 0x%x\n",
                   dev->htc_cnxt->block_sz, dev->ar->mbox_info.htc_addr);
 
+       /* usb doesn't support enabling interrupts */
+       /* FIXME: remove check once USB support is implemented */
+       if (dev->ar->hif_type == ATH6KL_HIF_TYPE_USB)
+               return 0;
+
        status = ath6kl_hif_disable_intrs(dev);
 
 fail_setup: