mt76: mmio: add implementation of wr_rp and rd_rp
Introduce mmio implementation of mt76_mmio_rd_rp and mt76_mmio_wr_rp and remove mt76x2 duplicated code. mt76_mmio_{wr,rd}_rp allows to reuse mt76x0 init code adding mt76x0e support Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
a6daf796c0
commit
13fd2d2a6d
2 changed files with 28 additions and 13 deletions
|
@ -46,6 +46,30 @@ static void mt76_mmio_copy(struct mt76_dev *dev, u32 offset, const void *data,
|
|||
__iowrite32_copy(dev->mmio.regs + offset, data, len >> 2);
|
||||
}
|
||||
|
||||
static int mt76_mmio_wr_rp(struct mt76_dev *dev, u32 base,
|
||||
const struct mt76_reg_pair *data, int len)
|
||||
{
|
||||
while (len > 0) {
|
||||
mt76_mmio_wr(dev, data->reg, data->value);
|
||||
data++;
|
||||
len--;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mt76_mmio_rd_rp(struct mt76_dev *dev, u32 base,
|
||||
struct mt76_reg_pair *data, int len)
|
||||
{
|
||||
while (len > 0) {
|
||||
data->value = mt76_mmio_rr(dev, data->reg);
|
||||
data++;
|
||||
len--;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void mt76_mmio_init(struct mt76_dev *dev, void __iomem *regs)
|
||||
{
|
||||
static const struct mt76_bus_ops mt76_mmio_ops = {
|
||||
|
@ -53,6 +77,8 @@ void mt76_mmio_init(struct mt76_dev *dev, void __iomem *regs)
|
|||
.rmw = mt76_mmio_rmw,
|
||||
.wr = mt76_mmio_wr,
|
||||
.copy = mt76_mmio_copy,
|
||||
.wr_rp = mt76_mmio_wr_rp,
|
||||
.rd_rp = mt76_mmio_rd_rp,
|
||||
};
|
||||
|
||||
dev->bus = &mt76_mmio_ops;
|
||||
|
|
|
@ -62,17 +62,6 @@ out:
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(mt76x2_reset_wlan);
|
||||
|
||||
static void
|
||||
mt76x2_write_reg_pairs(struct mt76x2_dev *dev,
|
||||
const struct mt76_reg_pair *data, int len)
|
||||
{
|
||||
while (len > 0) {
|
||||
mt76_wr(dev, data->reg, data->value);
|
||||
len--;
|
||||
data++;
|
||||
}
|
||||
}
|
||||
|
||||
void mt76_write_mac_initvals(struct mt76x2_dev *dev)
|
||||
{
|
||||
#define DEFAULT_PROT_CFG_CCK \
|
||||
|
@ -164,8 +153,8 @@ void mt76_write_mac_initvals(struct mt76x2_dev *dev)
|
|||
{ MT_GF40_PROT_CFG, DEFAULT_PROT_CFG_40 },
|
||||
};
|
||||
|
||||
mt76x2_write_reg_pairs(dev, vals, ARRAY_SIZE(vals));
|
||||
mt76x2_write_reg_pairs(dev, prot_vals, ARRAY_SIZE(prot_vals));
|
||||
mt76_wr_rp(dev, 0, vals, ARRAY_SIZE(vals));
|
||||
mt76_wr_rp(dev, 0, prot_vals, ARRAY_SIZE(prot_vals));
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mt76_write_mac_initvals);
|
||||
|
||||
|
|
Loading…
Reference in a new issue