* [ath9k-devel] [RFC] ath10k: kill regtable
@ 2013-04-22 10:02 Janusz Dziedzic
2013-04-23 4:51 ` Kalle Valo
0 siblings, 1 reply; 2+ messages in thread
From: Janusz Dziedzic @ 2013-04-22 10:02 UTC (permalink / raw)
To: ath9k-devel
Remove register table abstraction layer.
Use direct defines for ar988x.
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
---
drivers/net/wireless/ath/ath10k/Makefile | 4 +-
drivers/net/wireless/ath/ath10k/ar9888_regtable.c | 167 -----------------
drivers/net/wireless/ath/ath10k/ar9888_regtable.h | 26 ---
drivers/net/wireless/ath/ath10k/ar9888def.h | 3 +
drivers/net/wireless/ath/ath10k/ce.c | 1 -
drivers/net/wireless/ath/ath10k/ce.h | 6 +-
drivers/net/wireless/ath/ath10k/core.h | 1 -
drivers/net/wireless/ath/ath10k/pci.c | 179 +++++++++---------
drivers/net/wireless/ath/ath10k/pci.h | 9 +-
drivers/net/wireless/ath/ath10k/regtable.c | 43 -----
drivers/net/wireless/ath/ath10k/regtable.h | 206 ---------------------
11 files changed, 97 insertions(+), 548 deletions(-)
delete mode 100644 drivers/net/wireless/ath/ath10k/ar9888_regtable.c
delete mode 100644 drivers/net/wireless/ath/ath10k/ar9888_regtable.h
delete mode 100644 drivers/net/wireless/ath/ath10k/regtable.c
delete mode 100644 drivers/net/wireless/ath/ath10k/regtable.h
diff --git a/drivers/net/wireless/ath/ath10k/Makefile b/drivers/net/wireless/ath/ath10k/Makefile
index efd8798..a4179f4 100644
--- a/drivers/net/wireless/ath/ath10k/Makefile
+++ b/drivers/net/wireless/ath/ath10k/Makefile
@@ -14,9 +14,7 @@ ath10k_core-$(CONFIG_ATH10K_TRACING) += trace.o
obj-$(CONFIG_ATH10K_PCI) += ath10k_pci.o
ath10k_pci-y += pci.o \
- ce.o \
- regtable.o \
- ar9888_regtable.o
+ ce.o
# for tracing framework to find trace.h
CFLAGS_trace.o := -I$(src)
diff --git a/drivers/net/wireless/ath/ath10k/ar9888_regtable.c b/drivers/net/wireless/ath/ath10k/ar9888_regtable.c
deleted file mode 100644
index 5e0b25a..0000000
--- a/drivers/net/wireless/ath/ath10k/ar9888_regtable.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright (c) 2005-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2013 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
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "ar9888_regtable.h"
-#include "ar9888def.h"
-
-/* AR9888_V1 hostdef, targetdef structures */
-static struct targetdef ar9888_target_def = {
- .D_RTC_SOC_BASE_ADDRESS = RTC_SOC_BASE_ADDRESS,
- .D_RTC_WMAC_BASE_ADDRESS = RTC_WMAC_BASE_ADDRESS,
- .D_SYSTEM_SLEEP_OFFSET = WLAN_SYSTEM_SLEEP_OFFSET,
- .D_WLAN_SYSTEM_SLEEP_OFFSET = WLAN_SYSTEM_SLEEP_OFFSET,
- .D_WLAN_SYSTEM_SLEEP_DISABLE_LSB = WLAN_SYSTEM_SLEEP_DISABLE_LSB,
- .D_WLAN_SYSTEM_SLEEP_DISABLE_MASK = WLAN_SYSTEM_SLEEP_DISABLE_MASK,
- .D_CLOCK_CONTROL_OFFSET = CLOCK_CONTROL_OFFSET,
- .D_CLOCK_CONTROL_SI0_CLK_MASK = CLOCK_CONTROL_SI0_CLK_MASK,
- .D_RESET_CONTROL_OFFSET = SOC_RESET_CONTROL_OFFSET,
- .D_RESET_CONTROL_MBOX_RST_MASK = RESET_CONTROL_MBOX_RST_MASK,
- .D_RESET_CONTROL_SI0_RST_MASK = RESET_CONTROL_SI0_RST_MASK,
- .D_WLAN_RESET_CONTROL_OFFSET = WLAN_RESET_CONTROL_OFFSET,
- .D_WLAN_RESET_CONTROL_COLD_RST_MASK = WLAN_RESET_CONTROL_COLD_RST_MASK,
- .D_WLAN_RESET_CONTROL_WARM_RST_MASK = WLAN_RESET_CONTROL_WARM_RST_MASK,
- .D_GPIO_BASE_ADDRESS = GPIO_BASE_ADDRESS,
- .D_GPIO_PIN0_OFFSET = GPIO_PIN0_OFFSET,
- .D_GPIO_PIN1_OFFSET = GPIO_PIN1_OFFSET,
- .D_GPIO_PIN0_CONFIG_MASK = GPIO_PIN0_CONFIG_MASK,
- .D_GPIO_PIN1_CONFIG_MASK = GPIO_PIN1_CONFIG_MASK,
- .D_SI_CONFIG_BIDIR_OD_DATA_LSB = SI_CONFIG_BIDIR_OD_DATA_LSB,
- .D_SI_CONFIG_BIDIR_OD_DATA_MASK = SI_CONFIG_BIDIR_OD_DATA_MASK,
- .D_SI_CONFIG_I2C_LSB = SI_CONFIG_I2C_LSB,
- .D_SI_CONFIG_I2C_MASK = SI_CONFIG_I2C_MASK,
- .D_SI_CONFIG_POS_SAMPLE_LSB = SI_CONFIG_POS_SAMPLE_LSB,
- .D_SI_CONFIG_POS_SAMPLE_MASK = SI_CONFIG_POS_SAMPLE_MASK,
- .D_SI_CONFIG_INACTIVE_CLK_LSB = SI_CONFIG_INACTIVE_CLK_LSB,
- .D_SI_CONFIG_INACTIVE_CLK_MASK = SI_CONFIG_INACTIVE_CLK_MASK,
- .D_SI_CONFIG_INACTIVE_DATA_LSB = SI_CONFIG_INACTIVE_DATA_LSB,
- .D_SI_CONFIG_INACTIVE_DATA_MASK = SI_CONFIG_INACTIVE_DATA_MASK,
- .D_SI_CONFIG_DIVIDER_LSB = SI_CONFIG_DIVIDER_LSB,
- .D_SI_CONFIG_DIVIDER_MASK = SI_CONFIG_DIVIDER_MASK,
- .D_SI_BASE_ADDRESS = SI_BASE_ADDRESS,
- .D_SI_CONFIG_OFFSET = SI_CONFIG_OFFSET,
- .D_SI_TX_DATA0_OFFSET = SI_TX_DATA0_OFFSET,
- .D_SI_TX_DATA1_OFFSET = SI_TX_DATA1_OFFSET,
- .D_SI_RX_DATA0_OFFSET = SI_RX_DATA0_OFFSET,
- .D_SI_RX_DATA1_OFFSET = SI_RX_DATA1_OFFSET,
- .D_SI_CS_OFFSET = SI_CS_OFFSET,
- .D_SI_CS_DONE_ERR_MASK = SI_CS_DONE_ERR_MASK,
- .D_SI_CS_DONE_INT_MASK = SI_CS_DONE_INT_MASK,
- .D_SI_CS_START_LSB = SI_CS_START_LSB,
- .D_SI_CS_START_MASK = SI_CS_START_MASK,
- .D_SI_CS_RX_CNT_LSB = SI_CS_RX_CNT_LSB,
- .D_SI_CS_RX_CNT_MASK = SI_CS_RX_CNT_MASK,
- .D_SI_CS_TX_CNT_LSB = SI_CS_TX_CNT_LSB,
- .D_SI_CS_TX_CNT_MASK = SI_CS_TX_CNT_MASK,
- .D_BOARD_DATA_SZ = MY_TARGET_BOARD_DATA_SZ,
- .D_BOARD_EXT_DATA_SZ = MY_TARGET_BOARD_EXT_DATA_SZ,
- .D_MBOX_BASE_ADDRESS = MBOX_BASE_ADDRESS,
- .D_LOCAL_SCRATCH_OFFSET = LOCAL_SCRATCH_OFFSET,
- .D_CPU_CLOCK_OFFSET = CPU_CLOCK_OFFSET,
- .D_LPO_CAL_OFFSET = LPO_CAL_OFFSET,
- .D_GPIO_PIN10_OFFSET = GPIO_PIN10_OFFSET,
- .D_GPIO_PIN11_OFFSET = GPIO_PIN11_OFFSET,
- .D_GPIO_PIN12_OFFSET = GPIO_PIN12_OFFSET,
- .D_GPIO_PIN13_OFFSET = GPIO_PIN13_OFFSET,
- .D_CLOCK_GPIO_OFFSET = CLOCK_GPIO_OFFSET,
- .D_CPU_CLOCK_STANDARD_LSB = CPU_CLOCK_STANDARD_LSB,
- .D_CPU_CLOCK_STANDARD_MASK = CPU_CLOCK_STANDARD_MASK,
- .D_LPO_CAL_ENABLE_LSB = LPO_CAL_ENABLE_LSB,
- .D_LPO_CAL_ENABLE_MASK = LPO_CAL_ENABLE_MASK,
- .D_CLOCK_GPIO_BT_CLK_OUT_EN_LSB = CLOCK_GPIO_BT_CLK_OUT_EN_LSB,
- .D_CLOCK_GPIO_BT_CLK_OUT_EN_MASK = CLOCK_GPIO_BT_CLK_OUT_EN_MASK,
- .D_ANALOG_INTF_BASE_ADDRESS = ANALOG_INTF_BASE_ADDRESS,
- .D_WLAN_MAC_BASE_ADDRESS = WLAN_MAC_BASE_ADDRESS,
- .D_CE0_BASE_ADDRESS = CE0_BASE_ADDRESS,
- .D_CE1_BASE_ADDRESS = CE1_BASE_ADDRESS,
- .D_FW_INDICATOR_ADDRESS = FW_INDICATOR_ADDRESS,
- .D_DRAM_BASE_ADDRESS = DRAM_BASE_ADDRESS,
- .D_SOC_CORE_BASE_ADDRESS = SOC_CORE_BASE_ADDRESS,
- .D_CORE_CTRL_ADDRESS = CORE_CTRL_ADDRESS,
- .D_CE_COUNT = CE_COUNT,
- .D_MSI_NUM_REQUEST = MSI_NUM_REQUEST,
- .D_MSI_ASSIGN_FW = MSI_ASSIGN_FW,
- .D_MSI_ASSIGN_CE_INITIAL = MSI_ASSIGN_CE_INITIAL,
- .D_MSI_ASSIGN_CE_MAX = MSI_ASSIGN_CE_MAX,
- .D_PCIE_INTR_ENABLE_ADDRESS = PCIE_INTR_ENABLE_ADDRESS,
- .D_PCIE_INTR_CLR_ADDRESS = PCIE_INTR_CLR_ADDRESS,
- .D_PCIE_INTR_FIRMWARE_MASK = PCIE_INTR_FIRMWARE_MASK,
- .D_PCIE_INTR_CE_MASK_ALL = PCIE_INTR_CE_MASK_ALL,
- .D_CORE_CTRL_CPU_INTR_MASK = CORE_CTRL_CPU_INTR_MASK,
- .D_CE_WRAPPER_BASE_ADDRESS = CE_WRAPPER_BASE_ADDRESS,
-};
-
-struct targetdef *ar9888_get_target_tbl(void)
-{
- return &ar9888_target_def;
-}
-
-static struct hostdef ar9888_host_def = {
- .D_INT_STATUS_ENABLE_ERROR_LSB = INT_STATUS_ENABLE_ERROR_LSB,
- .D_INT_STATUS_ENABLE_ERROR_MASK = INT_STATUS_ENABLE_ERROR_MASK,
- .D_INT_STATUS_ENABLE_CPU_LSB = INT_STATUS_ENABLE_CPU_LSB,
- .D_INT_STATUS_ENABLE_CPU_MASK = INT_STATUS_ENABLE_CPU_MASK,
- .D_INT_STATUS_ENABLE_COUNTER_LSB = INT_STATUS_ENABLE_COUNTER_LSB,
- .D_INT_STATUS_ENABLE_COUNTER_MASK = INT_STATUS_ENABLE_COUNTER_MASK,
- .D_INT_STATUS_ENABLE_MBOX_DATA_LSB = INT_STATUS_ENABLE_MBOX_DATA_LSB,
- .D_INT_STATUS_ENABLE_MBOX_DATA_MASK = INT_STATUS_ENABLE_MBOX_DATA_MASK,
- .D_ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB = ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB,
- .D_ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK = ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK,
- .D_ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB = ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB,
- .D_ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK = ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK,
- .D_COUNTER_INT_STATUS_ENABLE_BIT_LSB = COUNTER_INT_STATUS_ENABLE_BIT_LSB,
- .D_COUNTER_INT_STATUS_ENABLE_BIT_MASK = COUNTER_INT_STATUS_ENABLE_BIT_MASK,
- .D_INT_STATUS_ENABLE_ADDRESS = INT_STATUS_ENABLE_ADDRESS,
- .D_CPU_INT_STATUS_ENABLE_BIT_LSB = CPU_INT_STATUS_ENABLE_BIT_LSB,
- .D_CPU_INT_STATUS_ENABLE_BIT_MASK = CPU_INT_STATUS_ENABLE_BIT_MASK,
- .D_HOST_INT_STATUS_ADDRESS = HOST_INT_STATUS_ADDRESS,
- .D_CPU_INT_STATUS_ADDRESS = CPU_INT_STATUS_ADDRESS,
- .D_ERROR_INT_STATUS_ADDRESS = ERROR_INT_STATUS_ADDRESS,
- .D_ERROR_INT_STATUS_WAKEUP_MASK = ERROR_INT_STATUS_WAKEUP_MASK,
- .D_ERROR_INT_STATUS_WAKEUP_LSB = ERROR_INT_STATUS_WAKEUP_LSB,
- .D_ERROR_INT_STATUS_RX_UNDERFLOW_MASK = ERROR_INT_STATUS_RX_UNDERFLOW_MASK,
- .D_ERROR_INT_STATUS_RX_UNDERFLOW_LSB = ERROR_INT_STATUS_RX_UNDERFLOW_LSB,
- .D_ERROR_INT_STATUS_TX_OVERFLOW_MASK = ERROR_INT_STATUS_TX_OVERFLOW_MASK,
- .D_ERROR_INT_STATUS_TX_OVERFLOW_LSB = ERROR_INT_STATUS_TX_OVERFLOW_LSB,
- .D_COUNT_DEC_ADDRESS = COUNT_DEC_ADDRESS,
- .D_HOST_INT_STATUS_CPU_MASK = HOST_INT_STATUS_CPU_MASK,
- .D_HOST_INT_STATUS_CPU_LSB = HOST_INT_STATUS_CPU_LSB,
- .D_HOST_INT_STATUS_ERROR_MASK = HOST_INT_STATUS_ERROR_MASK,
- .D_HOST_INT_STATUS_ERROR_LSB = HOST_INT_STATUS_ERROR_LSB,
- .D_HOST_INT_STATUS_COUNTER_MASK = HOST_INT_STATUS_COUNTER_MASK,
- .D_HOST_INT_STATUS_COUNTER_LSB = HOST_INT_STATUS_COUNTER_LSB,
- .D_RX_LOOKAHEAD_VALID_ADDRESS = RX_LOOKAHEAD_VALID_ADDRESS,
- .D_WINDOW_DATA_ADDRESS = WINDOW_DATA_ADDRESS,
- .D_WINDOW_READ_ADDR_ADDRESS = WINDOW_READ_ADDR_ADDRESS,
- .D_WINDOW_WRITE_ADDR_ADDRESS = WINDOW_WRITE_ADDR_ADDRESS,
- .D_SOC_GLOBAL_RESET_ADDRESS = SOC_GLOBAL_RESET_ADDRESS,
- .D_RTC_STATE_ADDRESS = RTC_STATE_ADDRESS,
- .D_RTC_STATE_COLD_RESET_MASK = RTC_STATE_COLD_RESET_MASK,
- .D_PCIE_LOCAL_BASE_ADDRESS = PCIE_LOCAL_BASE_ADDRESS,
- .D_PCIE_SOC_WAKE_RESET = PCIE_SOC_WAKE_RESET,
- .D_PCIE_SOC_WAKE_ADDRESS = PCIE_SOC_WAKE_ADDRESS,
- .D_PCIE_SOC_WAKE_V_MASK = PCIE_SOC_WAKE_V_MASK,
- .D_RTC_STATE_V_MASK = RTC_STATE_V_MASK,
- .D_RTC_STATE_V_LSB = RTC_STATE_V_LSB,
- .D_FW_IND_EVENT_PENDING = FW_IND_EVENT_PENDING,
- .D_FW_IND_INITIALIZED = FW_IND_INITIALIZED,
- .D_RTC_STATE_V_ON = RTC_STATE_V_ON,
-};
-
-struct hostdef *ar9888_get_host_tbl(void)
-{
- return &ar9888_host_def;
-}
diff --git a/drivers/net/wireless/ath/ath10k/ar9888_regtable.h b/drivers/net/wireless/ath/ath10k/ar9888_regtable.h
deleted file mode 100644
index 9ccafec..0000000
--- a/drivers/net/wireless/ath/ath10k/ar9888_regtable.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (c) 2005-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2013 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
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef _AR9888_REGTABLE_H_
-#define _AR9888_REGTABLE_H_
-
-#include "regtable.h"
-
-struct targetdef *ar9888_get_target_tbl(void);
-struct hostdef *ar9888_get_host_tbl(void);
-
-#endif /* _AR9888_REGTABLE_H_ */
diff --git a/drivers/net/wireless/ath/ath10k/ar9888def.h b/drivers/net/wireless/ath/ath10k/ar9888def.h
index 4df8d0d..85e9265 100644
--- a/drivers/net/wireless/ath/ath10k/ar9888def.h
+++ b/drivers/net/wireless/ath/ath10k/ar9888def.h
@@ -231,4 +231,7 @@
#define MY_TARGET_BOARD_DATA_SZ AR9888_BOARD_DATA_SZ
#define MY_TARGET_BOARD_EXT_DATA_SZ AR9888_BOARD_EXT_DATA_SZ
+#define RTC_STATE_V_GET(x) \
+ (((x) & RTC_STATE_V_MASK) >> RTC_STATE_V_LSB)
+
#endif /* __ATH10K_AR9888DEF_H__ */
diff --git a/drivers/net/wireless/ath/ath10k/ce.c b/drivers/net/wireless/ath/ath10k/ce.c
index 4c29857..d5351a3 100644
--- a/drivers/net/wireless/ath/ath10k/ce.c
+++ b/drivers/net/wireless/ath/ath10k/ce.c
@@ -19,7 +19,6 @@
#include "pci.h"
#include "ce.h"
#include "debug.h"
-#include "regtable.h"
/*
* Support for Copy Engine hardware, which is mainly used for
diff --git a/drivers/net/wireless/ath/ath10k/ce.h b/drivers/net/wireless/ath/ath10k/ce.h
index 8beb606..084b997 100644
--- a/drivers/net/wireless/ath/ath10k/ce.h
+++ b/drivers/net/wireless/ath/ath10k/ce.h
@@ -474,8 +474,8 @@ struct ce_attr {
#define CE_BASE_ADDRESS(ar, ce_id) \
- (CE0_BASE_ADDRESS_T((ar)) + \
- ((CE1_BASE_ADDRESS_T((ar))-CE0_BASE_ADDRESS_T((ar)))*(ce_id)))
+ (CE0_BASE_ADDRESS + \
+ (CE1_BASE_ADDRESS - CE0_BASE_ADDRESS)*(ce_id))
#define CE_SRC_RING_WRITE_IDX_SET(ar, targid, ce_ctrl_addr, n) \
TARGET_WRITE((ar), (targid), (ce_ctrl_addr) + SR_WR_INDEX_ADDRESS, (n))
@@ -609,7 +609,7 @@ struct ce_attr {
#define CE_INTERRUPT_SUMMARY(ar, targid) \
CE_WRAPPER_INTERRUPT_SUMMARY_HOST_MSI_GET( \
- TARGET_READ((targid), CE_WRAPPER_BASE_ADDRESS_T((ar)) + \
+ TARGET_READ((targid), CE_WRAPPER_BASE_ADDRESS + \
CE_WRAPPER_INTERRUPT_SUMMARY_ADDRESS))
#endif /* _CE_H_ */
diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
index 4e19264..ccba50b 100644
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -26,7 +26,6 @@
#include "htc.h"
#include "hw.h"
#include "targaddrs.h"
-#include "regtable.h"
#include "wmi.h"
#include "../ath.h"
#include "../regd.h"
diff --git a/drivers/net/wireless/ath/ath10k/pci.c b/drivers/net/wireless/ath/ath10k/pci.c
index 278fa65..b59c3e8 100644
--- a/drivers/net/wireless/ath/ath10k/pci.c
+++ b/drivers/net/wireless/ath/ath10k/pci.c
@@ -22,7 +22,6 @@
#include "core.h"
#include "debug.h"
-#include "regtable.h"
#include "targaddrs.h"
#include "bmi.h"
@@ -121,7 +120,7 @@ static int ath10k_pci_diag_read_mem(struct ath10k *ar, u32 address, u8 *data,
* register read fn but preserve the multi word read capability of
* this fn
*/
- if (address < DRAM_BASE_ADDRESS_T(ar)) {
+ if (address < DRAM_BASE_ADDRESS) {
if ((address & 0x3) || ((dma_addr_t)data & 0x3))
return -EIO;
@@ -250,7 +249,7 @@ done:
static int ath10k_pci_diag_read_access(struct ath10k *ar, u32 address, u32 *data)
{
/* Assume range doesn't cross this boundary */
- if (address >= DRAM_BASE_ADDRESS_T(ar))
+ if (address >= DRAM_BASE_ADDRESS)
return ath10k_pci_diag_read_mem(ar, address, (u8 *)data,
sizeof(u32));
else {
@@ -404,7 +403,7 @@ static int ath10k_pci_diag_write_access(struct ath10k *ar, u32 address,
u32 data)
{
/* Assume range doesn't cross this boundary */
- if (address >= DRAM_BASE_ADDRESS_T(ar)) {
+ if (address >= DRAM_BASE_ADDRESS) {
u32 data_buf = data;
return ath10k_pci_diag_write_mem(ar, address, (u8 *) &data_buf,
sizeof(u32));
@@ -426,9 +425,9 @@ static bool ath10k_pci_target_is_awake(struct ath10k *ar)
{
void __iomem *mem = ath10k_pci_priv(ar)->mem;
u32 val;
- val = ioread32(mem + PCIE_LOCAL_BASE_ADDRESS_T(ar) +
- RTC_STATE_ADDRESS_T(ar));
- return (RTC_STATE_V_GET(ar, val) == RTC_STATE_V_ON_T(ar));
+ val = ioread32(mem + PCIE_LOCAL_BASE_ADDRESS +
+ RTC_STATE_ADDRESS);
+ return (RTC_STATE_V_GET(val) == RTC_STATE_V_ON);
}
static void ath10k_pci_wait_for_target_to_awake(struct ath10k *ar)
@@ -455,8 +454,8 @@ void ath10k_pci_wake(struct ath10k *ar)
if (atomic_read(&ar_pci->keep_awake_count) == 0) {
/* Force AWAKE */
- iowrite32(PCIE_SOC_WAKE_V_MASK_T(ar),
- pci_addr + PCIE_LOCAL_BASE_ADDRESS_T(ar) + PCIE_SOC_WAKE_ADDRESS_T(ar));
+ iowrite32(PCIE_SOC_WAKE_V_MASK,
+ pci_addr + PCIE_LOCAL_BASE_ADDRESS + PCIE_SOC_WAKE_ADDRESS);
}
atomic_inc(&ar_pci->keep_awake_count);
@@ -494,8 +493,8 @@ void ath10k_pci_sleep(struct ath10k *ar)
if (atomic_dec_and_test(&ar_pci->keep_awake_count)) {
/* Allow sleep */
ar_pci->verified_awake = false;
- iowrite32(PCIE_SOC_WAKE_RESET_T(ar),
- pci_addr + PCIE_LOCAL_BASE_ADDRESS_T(ar) + PCIE_SOC_WAKE_ADDRESS_T(ar));
+ iowrite32(PCIE_SOC_WAKE_RESET,
+ pci_addr + PCIE_LOCAL_BASE_ADDRESS + PCIE_SOC_WAKE_ADDRESS);
}
}
@@ -841,7 +840,7 @@ static void ath10k_pci_stop_ce(struct ath10k *ar)
/* Cancel the pending tasklet */
tasklet_kill(&ar_pci->intr_tq);
- for (i = 0; i < CE_COUNT_T(ar); i++)
+ for (i = 0; i < CE_COUNT; i++)
tasklet_kill(&ar_pci->pipe_info[i].intr);
/* Mark pending completions as aborted, so that upper layers free up
@@ -1465,8 +1464,8 @@ static int ath10k_pci_wake_target_cpu(struct ath10k *ar)
int ret;
u32 core_ctrl;
- ret = ath10k_pci_diag_read_access(ar, SOC_CORE_BASE_ADDRESS_T(ar) |
- CORE_CTRL_ADDRESS_T(ar),
+ ret = ath10k_pci_diag_read_access(ar, SOC_CORE_BASE_ADDRESS |
+ CORE_CTRL_ADDRESS,
&core_ctrl);
if (ret) {
ath10k_warn("Unable to read core ctrl\n");
@@ -1474,10 +1473,10 @@ static int ath10k_pci_wake_target_cpu(struct ath10k *ar)
}
/* A_INUM_FIRMWARE interrupt to Target CPU */
- core_ctrl |= CORE_CTRL_CPU_INTR_MASK_T(ar);
+ core_ctrl |= CORE_CTRL_CPU_INTR_MASK;
- ret = ath10k_pci_diag_write_access(ar, SOC_CORE_BASE_ADDRESS_T(ar) |
- CORE_CTRL_ADDRESS_T(ar),
+ ret = ath10k_pci_diag_write_access(ar, SOC_CORE_BASE_ADDRESS |
+ CORE_CTRL_ADDRESS,
core_ctrl);
if (ret)
ath10k_warn("Unable to set interrupt mask\n");
@@ -1681,7 +1680,7 @@ static int ath10k_pci_probe_device(struct ath10k *ar)
int ret;
atomic_set(&ar_pci->keep_awake_count, 0);
- ar_pci->fw_indicator_address = FW_INDICATOR_ADDRESS_T(ar);
+ ar_pci->fw_indicator_address = FW_INDICATOR_ADDRESS;
if (ath10k_target_ps)
ath10k_dbg(ATH10K_DBG_PCI, "on-chip power save enabled\n");
@@ -1723,10 +1722,10 @@ static void ath10k_pci_fw_interrupt_handler(struct ath10k *ar)
fw_indicator_address = ar_pci->fw_indicator_address;
fw_indicator = TARGET_READ(targid, fw_indicator_address);
- if (fw_indicator & FW_IND_EVENT_PENDING_T(ar)) {
+ if (fw_indicator & FW_IND_EVENT_PENDING) {
/* ACK: clear Target-side pending event */
TARGET_WRITE(ar, targid, fw_indicator_address,
- fw_indicator & ~FW_IND_EVENT_PENDING_T(ar));
+ fw_indicator & ~FW_IND_EVENT_PENDING);
ath10k_pci_sleep(ar);
if (ar_pci->started)
@@ -1778,7 +1777,7 @@ static irqreturn_t ath10k_pci_per_engine_handler(int irq, void *arg)
{
struct ath10k *ar = arg;
struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
- int ce_id = irq - ar_pci->pdev->irq - MSI_ASSIGN_CE_INITIAL_T(ar);
+ int ce_id = irq - ar_pci->pdev->irq - MSI_ASSIGN_CE_INITIAL;
if (ce_id < 0 || ce_id > ARRAY_SIZE(ar_pci->pipe_info)) {
ath10k_warn("%s: unexpected/invalid irq %d ce_id %d\n",
@@ -1824,19 +1823,19 @@ static irqreturn_t ath10k_pci_interrupt_handler(int irq, void *arg)
* really cleared.
*/
iowrite32(0, ar_pci->mem +
- (SOC_CORE_BASE_ADDRESS_T(ar) |
- PCIE_INTR_ENABLE_ADDRESS_T(ar)));
- iowrite32(PCIE_INTR_FIRMWARE_MASK_T(ar) |
- PCIE_INTR_CE_MASK_ALL_T(ar),
- ar_pci->mem + (SOC_CORE_BASE_ADDRESS_T(ar) |
- PCIE_INTR_CLR_ADDRESS_T(ar)));
+ (SOC_CORE_BASE_ADDRESS |
+ PCIE_INTR_ENABLE_ADDRESS));
+ iowrite32(PCIE_INTR_FIRMWARE_MASK |
+ PCIE_INTR_CE_MASK_ALL,
+ ar_pci->mem + (SOC_CORE_BASE_ADDRESS |
+ PCIE_INTR_CLR_ADDRESS));
/*
* IMPORTANT: this extra read transaction is required to
* flush the posted write buffer.
*/
(void) ioread32(ar_pci->mem +
- (SOC_CORE_BASE_ADDRESS_T(ar) |
- PCIE_INTR_ENABLE_ADDRESS_T(ar)));
+ (SOC_CORE_BASE_ADDRESS |
+ PCIE_INTR_ENABLE_ADDRESS));
}
tasklet_schedule(&ar_pci->intr_tq);
@@ -1854,17 +1853,17 @@ static void ath10k_pci_tasklet(unsigned long data)
if (ar_pci->num_msi_intrs == 0) {
/* Enable Legacy PCI line interrupts */
- iowrite32(PCIE_INTR_FIRMWARE_MASK_T(ar) |
- PCIE_INTR_CE_MASK_ALL_T(ar),
- ar_pci->mem + (SOC_CORE_BASE_ADDRESS_T(ar) |
- PCIE_INTR_ENABLE_ADDRESS_T(ar)));
+ iowrite32(PCIE_INTR_FIRMWARE_MASK |
+ PCIE_INTR_CE_MASK_ALL,
+ ar_pci->mem + (SOC_CORE_BASE_ADDRESS |
+ PCIE_INTR_ENABLE_ADDRESS));
/*
* IMPORTANT: this extra read transaction is required to
* flush the posted write buffer
*/
(void) ioread32(ar_pci->mem +
- (SOC_CORE_BASE_ADDRESS_T(ar) |
- PCIE_INTR_ENABLE_ADDRESS_T(ar)));
+ (SOC_CORE_BASE_ADDRESS |
+ PCIE_INTR_ENABLE_ADDRESS));
}
}
@@ -1889,29 +1888,29 @@ static int ath10k_pci_reset_target(struct ath10k *ar)
int wait_limit = 300; /* 3 sec */
while (wait_limit-- &&
- !(ioread32(ar_pci->mem + FW_INDICATOR_ADDRESS_T(ar)) &
- FW_IND_INITIALIZED_T(ar))) {
+ !(ioread32(ar_pci->mem + FW_INDICATOR_ADDRESS) &
+ FW_IND_INITIALIZED)) {
if (ar_pci->num_msi_intrs == 0)
/* Fix potential race by repeating CORE_BASE writes */
- iowrite32(PCIE_INTR_FIRMWARE_MASK_T(ar) |
- PCIE_INTR_CE_MASK_ALL_T(ar),
- ar_pci->mem + (SOC_CORE_BASE_ADDRESS_T(ar) |
- PCIE_INTR_ENABLE_ADDRESS_T(ar)));
+ iowrite32(PCIE_INTR_FIRMWARE_MASK |
+ PCIE_INTR_CE_MASK_ALL,
+ ar_pci->mem + (SOC_CORE_BASE_ADDRESS |
+ PCIE_INTR_ENABLE_ADDRESS));
mdelay(10);
}
if (wait_limit < 0) {
ath10k_err("Target stalled\n");
- iowrite32(PCIE_SOC_WAKE_RESET_T(ar),
- ar_pci->mem + PCIE_LOCAL_BASE_ADDRESS_T(ar) +
- PCIE_SOC_WAKE_ADDRESS_T(ar));
+ iowrite32(PCIE_SOC_WAKE_RESET,
+ ar_pci->mem + PCIE_LOCAL_BASE_ADDRESS +
+ PCIE_SOC_WAKE_ADDRESS);
return -EIO;
}
- iowrite32(PCIE_SOC_WAKE_RESET_T(ar),
- ar_pci->mem + PCIE_LOCAL_BASE_ADDRESS_T(ar) +
- PCIE_SOC_WAKE_ADDRESS_T(ar));
+ iowrite32(PCIE_SOC_WAKE_RESET,
+ ar_pci->mem + PCIE_LOCAL_BASE_ADDRESS +
+ PCIE_SOC_WAKE_ADDRESS);
return 0;
}
@@ -1920,14 +1919,14 @@ static int ath10k_pci_configure(struct ath10k *ar)
{
struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
int ret = 0;
- int num_msi_desired = MSI_NUM_REQUEST_T(ar);
+ int num_msi_desired = MSI_NUM_REQUEST;
int i;
tasklet_init(&ar_pci->intr_tq, ath10k_pci_tasklet, (unsigned long) ar);
tasklet_init(&ar_pci->msi_fw_err, ath10k_msi_err_tasklet,
(unsigned long) ar);
- for (i = 0; i < CE_COUNT_T(ar); i++) {
+ for (i = 0; i < CE_COUNT; i++) {
ar_pci->pipe_info[i].ar_pci = ar_pci;
tasklet_init(&ar_pci->pipe_info[i].intr,
ath10k_pci_ce_tasklet,
@@ -1958,7 +1957,7 @@ static int ath10k_pci_configure(struct ath10k *ar)
if (ret == 0) {
ar_pci->num_msi_intrs = num_msi_desired;
ret = request_irq(ar_pci->pdev->irq +
- MSI_ASSIGN_FW_T(ar),
+ MSI_ASSIGN_FW,
ath10k_pci_msi_fw_handler,
IRQF_SHARED,
"ath10k_pci",
@@ -1968,8 +1967,8 @@ static int ath10k_pci_configure(struct ath10k *ar)
goto err_intr;
}
- for (i = MSI_ASSIGN_CE_INITIAL_T(ar);
- i <= MSI_ASSIGN_CE_MAX_T(ar); i++) {
+ for (i = MSI_ASSIGN_CE_INITIAL;
+ i <= MSI_ASSIGN_CE_MAX; i++) {
ret = request_irq(ar_pci->pdev->irq + i,
ath10k_pci_per_engine_handler,
IRQF_SHARED,
@@ -2037,9 +2036,9 @@ static int ath10k_pci_configure(struct ath10k *ar)
* Make sure to wake the Target before enabling Legacy
* Interrupt.
*/
- iowrite32(PCIE_SOC_WAKE_V_MASK_T(ar),
- ar_pci->mem + PCIE_LOCAL_BASE_ADDRESS_T(ar) +
- PCIE_SOC_WAKE_ADDRESS_T(ar));
+ iowrite32(PCIE_SOC_WAKE_V_MASK,
+ ar_pci->mem + PCIE_LOCAL_BASE_ADDRESS +
+ PCIE_SOC_WAKE_ADDRESS);
ath10k_pci_wait_for_target_to_awake(ar);
@@ -2051,25 +2050,25 @@ static int ath10k_pci_configure(struct ath10k *ar)
* For now, fix the race by repeating the write in below
* synchronization checking.
*/
- iowrite32(PCIE_INTR_FIRMWARE_MASK_T(ar) |
- PCIE_INTR_CE_MASK_ALL_T(ar),
- ar_pci->mem + (SOC_CORE_BASE_ADDRESS_T(ar) |
- PCIE_INTR_ENABLE_ADDRESS_T(ar)));
- iowrite32(PCIE_SOC_WAKE_RESET_T(ar),
- ar_pci->mem + PCIE_LOCAL_BASE_ADDRESS_T(ar) +
- PCIE_SOC_WAKE_ADDRESS_T(ar));
+ iowrite32(PCIE_INTR_FIRMWARE_MASK |
+ PCIE_INTR_CE_MASK_ALL,
+ ar_pci->mem + (SOC_CORE_BASE_ADDRESS |
+ PCIE_INTR_ENABLE_ADDRESS));
+ iowrite32(PCIE_SOC_WAKE_RESET,
+ ar_pci->mem + PCIE_LOCAL_BASE_ADDRESS +
+ PCIE_SOC_WAKE_ADDRESS);
}
ar_pci->num_msi_intrs = num_msi_desired;
- ar_pci->ce_count = CE_COUNT_T(ar);
+ ar_pci->ce_count = CE_COUNT;
/*
* Synchronization point: Wait for Target to finish initialization
* before we proceed.
*/
- iowrite32(PCIE_SOC_WAKE_V_MASK_T(ar),
- ar_pci->mem + PCIE_LOCAL_BASE_ADDRESS_T(ar) +
- PCIE_SOC_WAKE_ADDRESS_T(ar));
+ iowrite32(PCIE_SOC_WAKE_V_MASK,
+ ar_pci->mem + PCIE_LOCAL_BASE_ADDRESS +
+ PCIE_SOC_WAKE_ADDRESS);
ath10k_pci_wait_for_target_to_awake(ar);
@@ -2110,14 +2109,14 @@ static void ath10k_pci_device_reset(struct ath10k_pci *ar_pci)
int i;
u32 val;
- if (!SOC_GLOBAL_RESET_ADDRESS_T(ar))
+ if (!SOC_GLOBAL_RESET_ADDRESS)
return;
if (!mem)
return;
- A_PCIE_LOCAL_REG_WRITE(mem, PCIE_SOC_WAKE_ADDRESS_T(ar),
- PCIE_SOC_WAKE_V_MASK_T(ar));
+ A_PCIE_LOCAL_REG_WRITE(mem, PCIE_SOC_WAKE_ADDRESS,
+ PCIE_SOC_WAKE_V_MASK);
for (i = 0; i < ATH_PCI_RESET_WAIT_MAX; i++) {
if (ath10k_pci_target_is_awake(ar))
break;
@@ -2125,30 +2124,30 @@ static void ath10k_pci_device_reset(struct ath10k_pci *ar_pci)
}
/* Put Target, including PCIe, into RESET. */
- val = A_PCIE_LOCAL_REG_READ(mem, SOC_GLOBAL_RESET_ADDRESS_T(ar));
+ val = A_PCIE_LOCAL_REG_READ(mem, SOC_GLOBAL_RESET_ADDRESS);
val |= 1;
- A_PCIE_LOCAL_REG_WRITE(mem, SOC_GLOBAL_RESET_ADDRESS_T(ar), val);
+ A_PCIE_LOCAL_REG_WRITE(mem, SOC_GLOBAL_RESET_ADDRESS, val);
for (i = 0; i < ATH_PCI_RESET_WAIT_MAX; i++) {
- if (A_PCIE_LOCAL_REG_READ(mem, RTC_STATE_ADDRESS_T(ar)) &
- RTC_STATE_COLD_RESET_MASK_T(ar))
+ if (A_PCIE_LOCAL_REG_READ(mem, RTC_STATE_ADDRESS) &
+ RTC_STATE_COLD_RESET_MASK)
break;
msleep(1);
}
/* Pull Target, including PCIe, out of RESET. */
val &= ~1;
- A_PCIE_LOCAL_REG_WRITE(mem, SOC_GLOBAL_RESET_ADDRESS_T(ar), val);
+ A_PCIE_LOCAL_REG_WRITE(mem, SOC_GLOBAL_RESET_ADDRESS, val);
for (i = 0; i < ATH_PCI_RESET_WAIT_MAX; i++) {
- if (!(A_PCIE_LOCAL_REG_READ(mem, RTC_STATE_ADDRESS_T(ar)) &
- RTC_STATE_COLD_RESET_MASK_T(ar)))
+ if (!(A_PCIE_LOCAL_REG_READ(mem, RTC_STATE_ADDRESS) &
+ RTC_STATE_COLD_RESET_MASK))
break;
msleep(1);
}
- A_PCIE_LOCAL_REG_WRITE(mem, PCIE_SOC_WAKE_ADDRESS_T(ar),
- PCIE_SOC_WAKE_RESET_T(ar));
+ A_PCIE_LOCAL_REG_WRITE(mem, PCIE_SOC_WAKE_ADDRESS,
+ PCIE_SOC_WAKE_RESET);
}
static void ath10k_pci_dump_features(struct ath10k_pci *ar_pci)
@@ -2295,14 +2294,6 @@ retry:
ar_pci->cacheline_sz = dma_get_cache_alignment();
/*
- * Attach Target register table. This is needed early on --
- * even before BMI -- since PCI and HIF initialization (and BMI init)
- * directly access Target registers (e.g. CE registers).
- */
- ath10k_register_host_reg_table(ar, hif_type);
- ath10k_register_target_reg_table(ar, target_type);
-
- /*
* Verify that the Target was started cleanly.
*
* The case where this is most likely is with an AUX-powered
@@ -2313,17 +2304,17 @@ retry:
* We try to catch that here in order to reset the Target and
* retry the probe.
*/
- iowrite32(PCIE_SOC_WAKE_V_MASK_T(ar),
- mem + PCIE_LOCAL_BASE_ADDRESS_T(ar) +
- PCIE_SOC_WAKE_ADDRESS_T(ar));
+ iowrite32(PCIE_SOC_WAKE_V_MASK,
+ mem + PCIE_LOCAL_BASE_ADDRESS +
+ PCIE_SOC_WAKE_ADDRESS);
ath10k_pci_wait_for_target_to_awake(ar);
- fw_indicator = ioread32(mem + FW_INDICATOR_ADDRESS_T(ar));
- iowrite32(PCIE_SOC_WAKE_RESET_T(ar),
- mem + PCIE_LOCAL_BASE_ADDRESS_T(ar) +
- PCIE_SOC_WAKE_ADDRESS_T(ar));
+ fw_indicator = ioread32(mem + FW_INDICATOR_ADDRESS);
+ iowrite32(PCIE_SOC_WAKE_RESET,
+ mem + PCIE_LOCAL_BASE_ADDRESS +
+ PCIE_SOC_WAKE_ADDRESS);
- if (fw_indicator & FW_IND_INITIALIZED_T(ar)) {
+ if (fw_indicator & FW_IND_INITIALIZED) {
probe_again++;
ath10k_err("target is in an unknown state. "
"resetting (attempt %d).\n", probe_again);
diff --git a/drivers/net/wireless/ath/ath10k/pci.h b/drivers/net/wireless/ath/ath10k/pci.h
index a3b5e88..8c77d90 100644
--- a/drivers/net/wireless/ath/ath10k/pci.h
+++ b/drivers/net/wireless/ath/ath10k/pci.h
@@ -20,6 +20,7 @@
#include <linux/interrupt.h>
+#include "ar9888def.h"
#include "ce.h"
/*
@@ -229,11 +230,11 @@ static inline struct ath10k_pci *ath10k_pci_priv(struct ath10k *ar)
}
#define A_PCIE_LOCAL_REG_READ(mem, addr) \
- ioread32((mem) + PCIE_LOCAL_BASE_ADDRESS_T(ar) + (u32)(addr))
+ ioread32((mem) + PCIE_LOCAL_BASE_ADDRESS + (u32)(addr))
#define A_PCIE_LOCAL_REG_WRITE(mem, addr, val) \
iowrite32((val), \
- ((mem) + PCIE_LOCAL_BASE_ADDRESS_T(ar) + (u32)(addr)))
+ ((mem) + PCIE_LOCAL_BASE_ADDRESS + (u32)(addr)))
#define ATH_PCI_RESET_WAIT_MAX 10 /* Ms */
#define PCIE_WAKE_TIMEOUT 5000 /* 5Ms */
@@ -251,8 +252,8 @@ static inline struct ath10k_pci *ath10k_pci_priv(struct ath10k *ar)
* for this device; but that's not guaranteed.
*/
#define TARG_CPU_SPACE_TO_CE_SPACE(ar, pci_addr, addr) \
- (((ioread32((pci_addr)+(SOC_CORE_BASE_ADDRESS_T((ar))| \
- CORE_CTRL_ADDRESS_T((ar)))) & 0x7ff) << 21) | \
+ (((ioread32((pci_addr)+(SOC_CORE_BASE_ADDRESS| \
+ CORE_CTRL_ADDRESS)) & 0x7ff) << 21) | \
0x100000 | ((addr) & 0xfffff))
/* Wait up to this many Ms for a Diagnostic Access CE operation to complete */
diff --git a/drivers/net/wireless/ath/ath10k/regtable.c b/drivers/net/wireless/ath/ath10k/regtable.c
deleted file mode 100644
index e5c985d..0000000
--- a/drivers/net/wireless/ath/ath10k/regtable.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2005-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2013 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
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "hif.h"
-#include "core.h"
-
-#include "ar9888_regtable.h"
-
-void ath10k_register_target_reg_table(struct ath10k *ar, u32 target_type)
-{
- switch (target_type) {
- case TARGET_TYPE_AR9888:
- ar->targetdef = ar9888_get_target_tbl();
- break;
- default:
- break;
- }
-}
-
-void ath10k_register_host_reg_table(struct ath10k *ar, u32 hif_type)
-{
- switch (hif_type) {
- case HIF_TYPE_AR9888:
- ar->hostdef = ar9888_get_host_tbl();
- break;
- default:
- break;
- }
-}
diff --git a/drivers/net/wireless/ath/ath10k/regtable.h b/drivers/net/wireless/ath/ath10k/regtable.h
deleted file mode 100644
index 4a7b728..0000000
--- a/drivers/net/wireless/ath/ath10k/regtable.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Copyright (c) 2005-2011 Atheros Communications Inc.
- * Copyright (c) 2011-2013 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
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef __REGTABLE_H__
-#define __REGTABLE_H__
-
-#include <linux/types.h>
-
-/* TARGET REGISTERS TABLE */
-struct targetdef {
- u32 D_RTC_SOC_BASE_ADDRESS;
- u32 D_RTC_WMAC_BASE_ADDRESS;
- u32 D_SYSTEM_SLEEP_OFFSET;
- u32 D_WLAN_SYSTEM_SLEEP_OFFSET;
- u32 D_WLAN_SYSTEM_SLEEP_DISABLE_LSB;
- u32 D_WLAN_SYSTEM_SLEEP_DISABLE_MASK;
- u32 D_CLOCK_CONTROL_OFFSET;
- u32 D_CLOCK_CONTROL_SI0_CLK_MASK;
- u32 D_RESET_CONTROL_OFFSET;
- u32 D_RESET_CONTROL_MBOX_RST_MASK;
- u32 D_RESET_CONTROL_SI0_RST_MASK;
- u32 D_WLAN_RESET_CONTROL_OFFSET;
- u32 D_WLAN_RESET_CONTROL_COLD_RST_MASK;
- u32 D_WLAN_RESET_CONTROL_WARM_RST_MASK;
- u32 D_GPIO_BASE_ADDRESS;
- u32 D_GPIO_PIN0_OFFSET;
- u32 D_GPIO_PIN1_OFFSET;
- u32 D_GPIO_PIN0_CONFIG_MASK;
- u32 D_GPIO_PIN1_CONFIG_MASK;
- u32 D_SI_CONFIG_BIDIR_OD_DATA_LSB;
- u32 D_SI_CONFIG_BIDIR_OD_DATA_MASK;
- u32 D_SI_CONFIG_I2C_LSB;
- u32 D_SI_CONFIG_I2C_MASK;
- u32 D_SI_CONFIG_POS_SAMPLE_LSB;
- u32 D_SI_CONFIG_POS_SAMPLE_MASK;
- u32 D_SI_CONFIG_INACTIVE_CLK_LSB;
- u32 D_SI_CONFIG_INACTIVE_CLK_MASK;
- u32 D_SI_CONFIG_INACTIVE_DATA_LSB;
- u32 D_SI_CONFIG_INACTIVE_DATA_MASK;
- u32 D_SI_CONFIG_DIVIDER_LSB;
- u32 D_SI_CONFIG_DIVIDER_MASK;
- u32 D_SI_BASE_ADDRESS;
- u32 D_SI_CONFIG_OFFSET;
- u32 D_SI_TX_DATA0_OFFSET;
- u32 D_SI_TX_DATA1_OFFSET;
- u32 D_SI_RX_DATA0_OFFSET;
- u32 D_SI_RX_DATA1_OFFSET;
- u32 D_SI_CS_OFFSET;
- u32 D_SI_CS_DONE_ERR_MASK;
- u32 D_SI_CS_DONE_INT_MASK;
- u32 D_SI_CS_START_LSB;
- u32 D_SI_CS_START_MASK;
- u32 D_SI_CS_RX_CNT_LSB;
- u32 D_SI_CS_RX_CNT_MASK;
- u32 D_SI_CS_TX_CNT_LSB;
- u32 D_SI_CS_TX_CNT_MASK;
- u32 D_BOARD_DATA_SZ;
- u32 D_BOARD_EXT_DATA_SZ;
- u32 D_MBOX_BASE_ADDRESS;
- u32 D_LOCAL_SCRATCH_OFFSET;
- u32 D_CPU_CLOCK_OFFSET;
- u32 D_LPO_CAL_OFFSET;
- u32 D_GPIO_PIN10_OFFSET;
- u32 D_GPIO_PIN11_OFFSET;
- u32 D_GPIO_PIN12_OFFSET;
- u32 D_GPIO_PIN13_OFFSET;
- u32 D_CLOCK_GPIO_OFFSET;
- u32 D_CPU_CLOCK_STANDARD_LSB;
- u32 D_CPU_CLOCK_STANDARD_MASK;
- u32 D_LPO_CAL_ENABLE_LSB;
- u32 D_LPO_CAL_ENABLE_MASK;
- u32 D_CLOCK_GPIO_BT_CLK_OUT_EN_LSB;
- u32 D_CLOCK_GPIO_BT_CLK_OUT_EN_MASK;
- u32 D_ANALOG_INTF_BASE_ADDRESS;
- u32 D_WLAN_MAC_BASE_ADDRESS;
- u32 D_CE0_BASE_ADDRESS;
- u32 D_CE1_BASE_ADDRESS;
- u32 D_FW_INDICATOR_ADDRESS;
- u32 D_DRAM_BASE_ADDRESS;
- u32 D_SOC_CORE_BASE_ADDRESS;
- u32 D_CORE_CTRL_ADDRESS;
- u32 D_CE_COUNT;
- u32 D_MSI_NUM_REQUEST;
- u32 D_MSI_ASSIGN_FW;
- u32 D_MSI_ASSIGN_CE_INITIAL;
- u32 D_MSI_ASSIGN_CE_MAX;
- u32 D_PCIE_INTR_ENABLE_ADDRESS;
- u32 D_PCIE_INTR_CLR_ADDRESS;
- u32 D_PCIE_INTR_FIRMWARE_MASK;
- u32 D_PCIE_INTR_CE_MASK_ALL;
- u32 D_CORE_CTRL_CPU_INTR_MASK;
- u32 D_CE_WRAPPER_BASE_ADDRESS;
-};
-
-
-/* target */
-/* helper macros to fetch registers via ar->targdef */
-#define CE0_BASE_ADDRESS_T(ar) ((ar)->targetdef->D_CE0_BASE_ADDRESS)
-#define CE1_BASE_ADDRESS_T(ar) ((ar)->targetdef->D_CE1_BASE_ADDRESS)
-#define FW_INDICATOR_ADDRESS_T(ar) ((ar)->targetdef->D_FW_INDICATOR_ADDRESS)
-#define DRAM_BASE_ADDRESS_T(ar) ((ar)->targetdef->D_DRAM_BASE_ADDRESS)
-#define SOC_CORE_BASE_ADDRESS_T(ar) ((ar)->targetdef->D_SOC_CORE_BASE_ADDRESS)
-#define CORE_CTRL_ADDRESS_T(ar) ((ar)->targetdef->D_CORE_CTRL_ADDRESS)
-#define CE_COUNT_T(ar) ((ar)->targetdef->D_CE_COUNT)
-#define PCIE_INTR_ENABLE_ADDRESS_T(ar) \
- ((ar)->targetdef->D_PCIE_INTR_ENABLE_ADDRESS)
-#define PCIE_INTR_CLR_ADDRESS_T(ar) ((ar)->targetdef->D_PCIE_INTR_CLR_ADDRESS)
-#define PCIE_INTR_FIRMWARE_MASK_T(ar) \
- ((ar)->targetdef->D_PCIE_INTR_FIRMWARE_MASK)
-#define PCIE_INTR_CE_MASK_ALL_T(ar) ((ar)->targetdef->D_PCIE_INTR_CE_MASK_ALL)
-#define CORE_CTRL_CPU_INTR_MASK_T(ar) \
- ((ar)->targetdef->D_CORE_CTRL_CPU_INTR_MASK)
-#define CE_WRAPPER_BASE_ADDRESS_T(ar) \
- ((ar)->targetdef->D_CE_WRAPPER_BASE_ADDRESS)
-#define MSI_NUM_REQUEST_T(ar) ((ar)->targetdef->D_MSI_NUM_REQUEST)
-#define MSI_ASSIGN_FW_T(ar) ((ar)->targetdef->D_MSI_ASSIGN_FW)
-#define MSI_ASSIGN_CE_INITIAL_T(ar) ((ar)->targetdef->D_MSI_ASSIGN_CE_INITIAL)
-#define MSI_ASSIGN_CE_MAX_T(ar) ((ar)->targetdef->D_MSI_ASSIGN_CE_MAX)
-
-/* HOST REGISTERS TABLE */
-struct hostdef {
- u32 D_INT_STATUS_ENABLE_ERROR_LSB;
- u32 D_INT_STATUS_ENABLE_ERROR_MASK;
- u32 D_INT_STATUS_ENABLE_CPU_LSB;
- u32 D_INT_STATUS_ENABLE_CPU_MASK;
- u32 D_INT_STATUS_ENABLE_COUNTER_LSB;
- u32 D_INT_STATUS_ENABLE_COUNTER_MASK;
- u32 D_INT_STATUS_ENABLE_MBOX_DATA_LSB;
- u32 D_INT_STATUS_ENABLE_MBOX_DATA_MASK;
- u32 D_ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB;
- u32 D_ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK;
- u32 D_ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB;
- u32 D_ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK;
- u32 D_COUNTER_INT_STATUS_ENABLE_BIT_LSB;
- u32 D_COUNTER_INT_STATUS_ENABLE_BIT_MASK;
- u32 D_INT_STATUS_ENABLE_ADDRESS;
- u32 D_CPU_INT_STATUS_ENABLE_BIT_LSB;
- u32 D_CPU_INT_STATUS_ENABLE_BIT_MASK;
- u32 D_HOST_INT_STATUS_ADDRESS;
- u32 D_CPU_INT_STATUS_ADDRESS;
- u32 D_ERROR_INT_STATUS_ADDRESS;
- u32 D_ERROR_INT_STATUS_WAKEUP_MASK;
- u32 D_ERROR_INT_STATUS_WAKEUP_LSB;
- u32 D_ERROR_INT_STATUS_RX_UNDERFLOW_MASK;
- u32 D_ERROR_INT_STATUS_RX_UNDERFLOW_LSB;
- u32 D_ERROR_INT_STATUS_TX_OVERFLOW_MASK;
- u32 D_ERROR_INT_STATUS_TX_OVERFLOW_LSB;
- u32 D_COUNT_DEC_ADDRESS;
- u32 D_HOST_INT_STATUS_CPU_MASK;
- u32 D_HOST_INT_STATUS_CPU_LSB;
- u32 D_HOST_INT_STATUS_ERROR_MASK;
- u32 D_HOST_INT_STATUS_ERROR_LSB;
- u32 D_HOST_INT_STATUS_COUNTER_MASK;
- u32 D_HOST_INT_STATUS_COUNTER_LSB;
- u32 D_RX_LOOKAHEAD_VALID_ADDRESS;
- u32 D_WINDOW_DATA_ADDRESS;
- u32 D_WINDOW_READ_ADDR_ADDRESS;
- u32 D_WINDOW_WRITE_ADDR_ADDRESS;
- u32 D_SOC_GLOBAL_RESET_ADDRESS;
- u32 D_RTC_STATE_ADDRESS;
- u32 D_RTC_STATE_COLD_RESET_MASK;
- u32 D_PCIE_LOCAL_BASE_ADDRESS;
- u32 D_PCIE_SOC_WAKE_RESET;
- u32 D_PCIE_SOC_WAKE_ADDRESS;
- u32 D_PCIE_SOC_WAKE_V_MASK;
- u32 D_RTC_STATE_V_MASK;
- u32 D_RTC_STATE_V_LSB;
- u32 D_FW_IND_EVENT_PENDING;
- u32 D_FW_IND_INITIALIZED;
- u32 D_RTC_STATE_V_ON;
-};
-
-/* host */
-#define SOC_GLOBAL_RESET_ADDRESS_T(ar) \
- ((ar)->hostdef->D_SOC_GLOBAL_RESET_ADDRESS)
-#define RTC_STATE_ADDRESS_T(ar) ((ar)->hostdef->D_RTC_STATE_ADDRESS)
-#define RTC_STATE_COLD_RESET_MASK_T(ar) \
- ((ar)->hostdef->D_RTC_STATE_COLD_RESET_MASK)
-#define PCIE_LOCAL_BASE_ADDRESS_T(ar) \
- ((ar)->hostdef->D_PCIE_LOCAL_BASE_ADDRESS)
-#define PCIE_SOC_WAKE_RESET_T(ar) ((ar)->hostdef->D_PCIE_SOC_WAKE_RESET)
-#define PCIE_SOC_WAKE_ADDRESS_T(ar) ((ar)->hostdef->D_PCIE_SOC_WAKE_ADDRESS)
-#define PCIE_SOC_WAKE_V_MASK_T(ar) ((ar)->hostdef->D_PCIE_SOC_WAKE_V_MASK)
-#define RTC_STATE_V_MASK_T(ar) ((ar)->hostdef->D_RTC_STATE_V_MASK)
-#define RTC_STATE_V_LSB_T(ar) ((ar)->hostdef->D_RTC_STATE_V_LSB)
-#define FW_IND_EVENT_PENDING_T(ar) ((ar)->hostdef->D_FW_IND_EVENT_PENDING)
-#define FW_IND_INITIALIZED_T(ar) ((ar)->hostdef->D_FW_IND_INITIALIZED)
-#define RTC_STATE_V_ON_T(ar) ((ar)->hostdef->D_RTC_STATE_V_ON)
-#define RTC_STATE_V_GET(ar, x) \
- (((x) & RTC_STATE_V_MASK_T(ar)) >> RTC_STATE_V_LSB_T(ar))
-
-#endif /* __REGTABLE_H__ */
--
1.7.9.5
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [ath9k-devel] [RFC] ath10k: kill regtable
2013-04-22 10:02 [ath9k-devel] [RFC] ath10k: kill regtable Janusz Dziedzic
@ 2013-04-23 4:51 ` Kalle Valo
0 siblings, 0 replies; 2+ messages in thread
From: Kalle Valo @ 2013-04-23 4:51 UTC (permalink / raw)
To: ath9k-devel
Janusz Dziedzic <janusz.dziedzic@tieto.com> writes:
> Remove register table abstraction layer.
> Use direct defines for ar988x.
>
> Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Thanks, I applied this even if you sent it as RFC. I hope that's ok.
But the commit log doesn't answer the question "Why?". I know why, but
rest of the community doesn't. I added a comment explaining that.
--
Kalle Valo
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-04-23 4:51 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-22 10:02 [ath9k-devel] [RFC] ath10k: kill regtable Janusz Dziedzic
2013-04-23 4:51 ` Kalle Valo
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.