mt76: introduce mt76_mmio_read_copy routine
Add mt76_mmio_read_copy routine and the related function pointer in mt76_bus_ops data structure. mt76_mmio_read_copy will be used to add BIP_CMAC_128 cipher hw support to mt7615 driver Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
27b8a900b2
commit
35e4ebeaac
|
@ -40,12 +40,18 @@ static u32 mt76_mmio_rmw(struct mt76_dev *dev, u32 offset, u32 mask, u32 val)
|
|||
return val;
|
||||
}
|
||||
|
||||
static void mt76_mmio_copy(struct mt76_dev *dev, u32 offset, const void *data,
|
||||
int len)
|
||||
static void mt76_mmio_write_copy(struct mt76_dev *dev, u32 offset,
|
||||
const void *data, int len)
|
||||
{
|
||||
__iowrite32_copy(dev->mmio.regs + offset, data, DIV_ROUND_UP(len, 4));
|
||||
}
|
||||
|
||||
static void mt76_mmio_read_copy(struct mt76_dev *dev, u32 offset,
|
||||
void *data, int len)
|
||||
{
|
||||
__ioread32_copy(data, dev->mmio.regs + offset, DIV_ROUND_UP(len, 4));
|
||||
}
|
||||
|
||||
static int mt76_mmio_wr_rp(struct mt76_dev *dev, u32 base,
|
||||
const struct mt76_reg_pair *data, int len)
|
||||
{
|
||||
|
@ -89,7 +95,8 @@ void mt76_mmio_init(struct mt76_dev *dev, void __iomem *regs)
|
|||
.rr = mt76_mmio_rr,
|
||||
.rmw = mt76_mmio_rmw,
|
||||
.wr = mt76_mmio_wr,
|
||||
.copy = mt76_mmio_copy,
|
||||
.write_copy = mt76_mmio_write_copy,
|
||||
.read_copy = mt76_mmio_read_copy,
|
||||
.wr_rp = mt76_mmio_wr_rp,
|
||||
.rd_rp = mt76_mmio_rd_rp,
|
||||
.type = MT76_BUS_MMIO,
|
||||
|
|
|
@ -49,8 +49,10 @@ struct mt76_bus_ops {
|
|||
u32 (*rr)(struct mt76_dev *dev, u32 offset);
|
||||
void (*wr)(struct mt76_dev *dev, u32 offset, u32 val);
|
||||
u32 (*rmw)(struct mt76_dev *dev, u32 offset, u32 mask, u32 val);
|
||||
void (*copy)(struct mt76_dev *dev, u32 offset, const void *data,
|
||||
int len);
|
||||
void (*write_copy)(struct mt76_dev *dev, u32 offset, const void *data,
|
||||
int len);
|
||||
void (*read_copy)(struct mt76_dev *dev, u32 offset, void *data,
|
||||
int len);
|
||||
int (*wr_rp)(struct mt76_dev *dev, u32 base,
|
||||
const struct mt76_reg_pair *rp, int len);
|
||||
int (*rd_rp)(struct mt76_dev *dev, u32 base,
|
||||
|
@ -541,7 +543,8 @@ struct mt76_rx_status {
|
|||
#define __mt76_rr(dev, ...) (dev)->bus->rr((dev), __VA_ARGS__)
|
||||
#define __mt76_wr(dev, ...) (dev)->bus->wr((dev), __VA_ARGS__)
|
||||
#define __mt76_rmw(dev, ...) (dev)->bus->rmw((dev), __VA_ARGS__)
|
||||
#define __mt76_wr_copy(dev, ...) (dev)->bus->copy((dev), __VA_ARGS__)
|
||||
#define __mt76_wr_copy(dev, ...) (dev)->bus->write_copy((dev), __VA_ARGS__)
|
||||
#define __mt76_rr_copy(dev, ...) (dev)->bus->read_copy((dev), __VA_ARGS__)
|
||||
|
||||
#define __mt76_set(dev, offset, val) __mt76_rmw(dev, offset, 0, val)
|
||||
#define __mt76_clear(dev, offset, val) __mt76_rmw(dev, offset, val, 0)
|
||||
|
@ -549,7 +552,8 @@ struct mt76_rx_status {
|
|||
#define mt76_rr(dev, ...) (dev)->mt76.bus->rr(&((dev)->mt76), __VA_ARGS__)
|
||||
#define mt76_wr(dev, ...) (dev)->mt76.bus->wr(&((dev)->mt76), __VA_ARGS__)
|
||||
#define mt76_rmw(dev, ...) (dev)->mt76.bus->rmw(&((dev)->mt76), __VA_ARGS__)
|
||||
#define mt76_wr_copy(dev, ...) (dev)->mt76.bus->copy(&((dev)->mt76), __VA_ARGS__)
|
||||
#define mt76_wr_copy(dev, ...) (dev)->mt76.bus->write_copy(&((dev)->mt76), __VA_ARGS__)
|
||||
#define mt76_rr_copy(dev, ...) (dev)->mt76.bus->read_copy(&((dev)->mt76), __VA_ARGS__)
|
||||
#define mt76_wr_rp(dev, ...) (dev)->mt76.bus->wr_rp(&((dev)->mt76), __VA_ARGS__)
|
||||
#define mt76_rd_rp(dev, ...) (dev)->mt76.bus->rd_rp(&((dev)->mt76), __VA_ARGS__)
|
||||
|
||||
|
|
|
@ -957,7 +957,7 @@ int mt76u_init(struct mt76_dev *dev,
|
|||
.rr = mt76u_rr,
|
||||
.wr = mt76u_wr,
|
||||
.rmw = mt76u_rmw,
|
||||
.copy = mt76u_copy,
|
||||
.write_copy = mt76u_copy,
|
||||
.wr_rp = mt76u_wr_rp,
|
||||
.rd_rp = mt76u_rd_rp,
|
||||
.type = MT76_BUS_USB,
|
||||
|
|
Loading…
Reference in New Issue