Re: [ath9k-devel] [PATCH] ath10k: move QCA9880_1.0 PCI-specific hacks to pci sub-module

2013-04-22 Thread Kalle Valo
Bartosz Markowski bartosz.markow...@tieto.com writes:

 Signed-off-by: Bartosz Markowski bartosz.markow...@tieto.com

Thanks, applied.

-- 
Kalle Valo
___
ath9k-devel mailing list
ath9k-devel@lists.ath9k.org
https://lists.ath9k.org/mailman/listinfo/ath9k-devel


[ath9k-devel] [PATCH] ath10k: move QCA9880_1.0 PCI-specific hacks to pci sub-module

2013-04-19 Thread Bartosz Markowski
Signed-off-by: Bartosz Markowski bartosz.markow...@tieto.com
---
 drivers/net/wireless/ath/ath10k/core.h |3 ---
 drivers/net/wireless/ath/ath10k/pci.c  |4 ++--
 drivers/net/wireless/ath/ath10k/pci.h  |   16 +++-
 3 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/core.h 
b/drivers/net/wireless/ath/ath10k/core.h
index f47b2a0..954a33d 100644
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -327,9 +327,6 @@ struct ath10k {
struct mutex vdev_mtx;
struct completion vdev_setup_done;
 
-   bool hw_v1_workaround;
-   spinlock_t hw_v1_workaround_lock;
-
struct workqueue_struct *workqueue;
 
/* prevents concurrent FW reconfiguration */
diff --git a/drivers/net/wireless/ath/ath10k/pci.c 
b/drivers/net/wireless/ath/ath10k/pci.c
index e4024ef..48a13b0 100644
--- a/drivers/net/wireless/ath/ath10k/pci.c
+++ b/drivers/net/wireless/ath/ath10k/pci.c
@@ -,8 +,8 @@ retry:
 
/* Enable AR9888 V1 HW workarounds */
if (pci_dev-device == AR9888_1_0_DEVICE_ID) {
-   ar-hw_v1_workaround = true;
-   spin_lock_init(ar-hw_v1_workaround_lock);
+   ar_pci-hw_v1_workaround = true;
+   spin_lock_init(ar_pci-hw_v1_workaround_lock);
}
 
ar_pci-ar = ar;
diff --git a/drivers/net/wireless/ath/ath10k/pci.h 
b/drivers/net/wireless/ath/ath10k/pci.h
index 9b497a7..d468c31 100644
--- a/drivers/net/wireless/ath/ath10k/pci.h
+++ b/drivers/net/wireless/ath/ath10k/pci.h
@@ -218,6 +218,9 @@ struct ath10k_pci {
 
/* Map CE id to ce_state */
struct ce_state *ce_id_to_state[CE_COUNT_MAX];
+
+   bool hw_v1_workaround;
+   spinlock_t hw_v1_workaround_lock;
 };
 
 static inline struct ath10k_pci *ath10k_pci_priv(struct ath10k *ar)
@@ -259,17 +262,19 @@ static inline void pci_write32_v1_workaround(struct 
ath10k *ar,
 void __iomem *addr,
 u32 offset, u32 value)
 {
-   if (ar-hw_v1_workaround) {
+   struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
+
+   if (ar_pci-hw_v1_workaround) {
unsigned long irq_flags;
 
-   spin_lock_irqsave(ar-hw_v1_workaround_lock, irq_flags);
+   spin_lock_irqsave(ar_pci-hw_v1_workaround_lock, irq_flags);
 
ioread32(addr+offset+4); /* 3rd read prior to write */
ioread32(addr+offset+4); /* 2nd read prior to write */
ioread32(addr+offset+4); /* 1st read prior to write */
iowrite32(value, addr+offset);
 
-   spin_unlock_irqrestore(ar-hw_v1_workaround_lock, irq_flags);
+   spin_unlock_irqrestore(ar_pci-hw_v1_workaround_lock, 
irq_flags);
} else
iowrite32(value, addr+offset);
 }
@@ -315,10 +320,11 @@ static inline void WAR_CE_SRC_RING_WRITE_IDX_SET(struct 
ath10k *ar,
 u32 ctrl_addr,
 unsigned int write_index)
 {
+   struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
void __iomem *indicator_addr;
-   void __iomem *targid = ath10k_pci_priv(ar)-mem;
+   void __iomem *targid = ar_pci-mem;
 
-   if (!ar-hw_v1_workaround) {
+   if (!ar_pci-hw_v1_workaround) {
CE_SRC_RING_WRITE_IDX_SET(ar, targid, ctrl_addr, write_index);
return;
}
-- 
1.7.10

___
ath9k-devel mailing list
ath9k-devel@lists.ath9k.org
https://lists.ath9k.org/mailman/listinfo/ath9k-devel