move register poll functions to core

Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
Felix Fietkau
2015-12-06 19:20:00 +01:00
parent 99273a3c8b
commit b0f76bb5d9
8 changed files with 54 additions and 46 deletions
+10
View File
@@ -51,6 +51,16 @@ struct mt76_dev {
#define mt76_hw(dev) (dev)->mt76.hw
bool __mt76_poll(struct mt76_dev *dev, u32 offset, u32 mask, u32 val,
int timeout);
#define mt76_poll(dev, ...) __mt76_poll(&((dev)->mt76), __VA_ARGS__)
bool __mt76_poll_msec(struct mt76_dev *dev, u32 offset, u32 mask, u32 val,
int timeout);
#define mt76_poll_msec(dev, ...) __mt76_poll_msec(&((dev)->mt76), __VA_ARGS__)
void mt76_mmio_init(struct mt76_dev *dev, void __iomem *regs);
#endif
-4
View File
@@ -264,10 +264,6 @@ struct mt76x2_reg_pair {
u32 value;
};
bool mt76x2_poll(struct mt76x2_dev *dev, u32 offset, u32 mask, u32 val,
int timeout);
bool mt76x2_poll_msec(struct mt76x2_dev *dev, u32 offset, u32 mask, u32 val,
int timeout);
void mt76_write_reg_pairs(struct mt76x2_dev *dev,
const struct mt76x2_reg_pair *data, int len);
-34
View File
@@ -15,40 +15,6 @@
#include "mt76x2.h"
#include "mt76x2_trace.h"
bool mt76x2_poll(struct mt76x2_dev *dev, u32 offset, u32 mask, u32 val,
int timeout)
{
u32 cur;
timeout /= 10;
do {
cur = mt76_rr(dev, offset) & mask;
if (cur == val)
return true;
udelay(10);
} while (timeout-- > 0);
return false;
}
bool mt76x2_poll_msec(struct mt76x2_dev *dev, u32 offset, u32 mask, u32 val,
int timeout)
{
u32 cur;
timeout /= 10;
do {
cur = mt76_rr(dev, offset) & mask;
if (cur == val)
return true;
msleep(10);
} while (timeout-- > 0);
return false;
}
void mt76_write_reg_pairs(struct mt76x2_dev *dev,
const struct mt76x2_reg_pair *data, int len)
{
+1 -1
View File
@@ -71,7 +71,7 @@ mt76x2_efuse_read(struct mt76x2_dev *dev, u16 addr, u8 *data)
val |= MT_EFUSE_CTRL_KICK;
mt76_wr(dev, MT_EFUSE_CTRL, val);
if (!mt76x2_poll(dev, MT_EFUSE_CTRL, MT_EFUSE_CTRL_KICK, 0, 1000))
if (!mt76_poll(dev, MT_EFUSE_CTRL, MT_EFUSE_CTRL_KICK, 0, 1000))
return -ETIMEDOUT;
udelay(2);
+2 -2
View File
@@ -38,7 +38,7 @@ mt76x2_wait_for_mac(struct mt76x2_dev *dev)
static bool
wait_for_wpdma(struct mt76x2_dev *dev)
{
return mt76x2_poll(dev, MT_WPDMA_GLO_CFG,
return mt76_poll(dev, MT_WPDMA_GLO_CFG,
MT_WPDMA_GLO_CFG_TX_DMA_BUSY |
MT_WPDMA_GLO_CFG_RX_DMA_BUSY,
0, 1000);
@@ -395,7 +395,7 @@ mt76x2_power_on(struct mt76x2_dev *dev)
MT_WLAN_MTC_CTRL_PWR_ACK |
MT_WLAN_MTC_CTRL_PWR_ACK_S;
mt76x2_poll(dev, MT_WLAN_MTC_CTRL, val, val, 1000);
mt76_poll(dev, MT_WLAN_MTC_CTRL, val, val, 1000);
mt76_clear(dev, MT_WLAN_MTC_CTRL, 0x7f << 16);
udelay(10);
+3 -3
View File
@@ -119,7 +119,7 @@ mt76pci_load_rom_patch(struct mt76x2_dev *dev)
__le32 *cur;
u32 patch_mask, patch_reg;
if (rom_protect && !mt76x2_poll(dev, MT_MCU_SEMAPHORE_03, 1, 1, 600)) {
if (rom_protect && !mt76_poll(dev, MT_MCU_SEMAPHORE_03, 1, 1, 600)) {
printk("Could not get hardware semaphore for ROM PATCH\n");
return -ETIMEDOUT;
}
@@ -161,7 +161,7 @@ mt76pci_load_rom_patch(struct mt76x2_dev *dev)
/* Trigger ROM */
mt76_wr(dev, MT_MCU_INT_LEVEL, 4);
if (!mt76x2_poll_msec(dev, patch_reg, patch_mask, patch_mask, 2000)) {
if (!mt76_poll_msec(dev, patch_reg, patch_mask, patch_mask, 2000)) {
printk("Failed to load ROM patch\n");
ret = -ETIMEDOUT;
}
@@ -369,7 +369,7 @@ int mt76x2_mcu_calibrate(struct mt76x2_dev *dev, enum mcu_calibration type,
if (ret)
return ret;
if (WARN_ON(!mt76x2_poll_msec(dev, MT_MCU_COM_REG0,
if (WARN_ON(!mt76_poll_msec(dev, MT_MCU_COM_REG0,
BIT(31), BIT(31), 100)))
return -ETIMEDOUT;
+1 -1
View File
@@ -29,7 +29,7 @@ mt76x2_phy_rf_op(struct mt76x2_dev *dev, bool idx, u16 offset, bool write)
mt76_wr(dev, MT_RF_CTRL, val);
return mt76x2_poll(dev, MT_RF_CTRL, MT_RF_CTRL_BUSY, 0, 2000);
return mt76_poll(dev, MT_RF_CTRL, MT_RF_CTRL_BUSY, 0, 2000);
}
static int __maybe_unused
+37 -1
View File
@@ -12,7 +12,7 @@
*/
#include <linux/module.h>
#include "mt76x2.h"
#include "mt76.h"
void mt76_remove_hdr_pad(struct sk_buff *skb)
{
@@ -43,4 +43,40 @@ int mt76_insert_hdr_pad(struct sk_buff *skb)
}
EXPORT_SYMBOL_GPL(mt76_insert_hdr_pad);
bool __mt76_poll(struct mt76_dev *dev, u32 offset, u32 mask, u32 val,
int timeout)
{
u32 cur;
timeout /= 10;
do {
cur = dev->bus->rr(dev, offset) & mask;
if (cur == val)
return true;
udelay(10);
} while (timeout-- > 0);
return false;
}
EXPORT_SYMBOL_GPL(__mt76_poll);
bool __mt76_poll_msec(struct mt76_dev *dev, u32 offset, u32 mask, u32 val,
int timeout)
{
u32 cur;
timeout /= 10;
do {
cur = dev->bus->rr(dev, offset) & mask;
if (cur == val)
return true;
msleep(10);
} while (timeout-- > 0);
return false;
}
EXPORT_SYMBOL_GPL(__mt76_poll_msec);
MODULE_LICENSE("GPL");