mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
mt76x0: remove mt76x0_burst_write_regs()
We don't need to use custom burst write regs via MCU, we can use generic mt76_wr_copy() for the same purpose. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
fd0c6e189d
commit
331419b2ce
@ -249,7 +249,7 @@ static void mt76x0_init_mac_registers(struct mt76x0_dev *dev)
|
|||||||
static int mt76x0_init_wcid_mem(struct mt76x0_dev *dev)
|
static int mt76x0_init_wcid_mem(struct mt76x0_dev *dev)
|
||||||
{
|
{
|
||||||
u32 *vals;
|
u32 *vals;
|
||||||
int i, ret;
|
int i;
|
||||||
|
|
||||||
vals = kmalloc(sizeof(*vals) * MT76_N_WCIDS * 2, GFP_KERNEL);
|
vals = kmalloc(sizeof(*vals) * MT76_N_WCIDS * 2, GFP_KERNEL);
|
||||||
if (!vals)
|
if (!vals)
|
||||||
@ -260,25 +260,22 @@ static int mt76x0_init_wcid_mem(struct mt76x0_dev *dev)
|
|||||||
vals[i * 2 + 1] = 0x00ffffff;
|
vals[i * 2 + 1] = 0x00ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = mt76x0_burst_write_regs(dev, MT_WCID_ADDR_BASE,
|
mt76_wr_copy(dev, MT_WCID_ADDR_BASE, vals, MT76_N_WCIDS * 2);
|
||||||
vals, MT76_N_WCIDS * 2);
|
|
||||||
kfree(vals);
|
kfree(vals);
|
||||||
|
return 0;
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mt76x0_init_key_mem(struct mt76x0_dev *dev)
|
static void mt76x0_init_key_mem(struct mt76x0_dev *dev)
|
||||||
{
|
{
|
||||||
u32 vals[4] = {};
|
u32 vals[4] = {};
|
||||||
|
|
||||||
return mt76x0_burst_write_regs(dev, MT_SKEY_MODE_BASE_0,
|
mt76_wr_copy(dev, MT_SKEY_MODE_BASE_0, vals, ARRAY_SIZE(vals));
|
||||||
vals, ARRAY_SIZE(vals));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mt76x0_init_wcid_attr_mem(struct mt76x0_dev *dev)
|
static int mt76x0_init_wcid_attr_mem(struct mt76x0_dev *dev)
|
||||||
{
|
{
|
||||||
u32 *vals;
|
u32 *vals;
|
||||||
int i, ret;
|
int i;
|
||||||
|
|
||||||
vals = kmalloc(sizeof(*vals) * MT76_N_WCIDS * 2, GFP_KERNEL);
|
vals = kmalloc(sizeof(*vals) * MT76_N_WCIDS * 2, GFP_KERNEL);
|
||||||
if (!vals)
|
if (!vals)
|
||||||
@ -287,11 +284,9 @@ static int mt76x0_init_wcid_attr_mem(struct mt76x0_dev *dev)
|
|||||||
for (i = 0; i < MT76_N_WCIDS * 2; i++)
|
for (i = 0; i < MT76_N_WCIDS * 2; i++)
|
||||||
vals[i] = 1;
|
vals[i] = 1;
|
||||||
|
|
||||||
ret = mt76x0_burst_write_regs(dev, MT_WCID_ATTR_BASE,
|
mt76_wr_copy(dev, MT_WCID_ATTR_BASE, vals, MT76_N_WCIDS * 2);
|
||||||
vals, MT76_N_WCIDS * 2);
|
|
||||||
kfree(vals);
|
kfree(vals);
|
||||||
|
return 0;
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mt76x0_reset_counters(struct mt76x0_dev *dev)
|
static void mt76x0_reset_counters(struct mt76x0_dev *dev)
|
||||||
@ -443,9 +438,7 @@ int mt76x0_init_hardware(struct mt76x0_dev *dev)
|
|||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
ret = mt76x0_init_key_mem(dev);
|
mt76x0_init_key_mem(dev);
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
ret = mt76x0_init_wcid_attr_mem(dev);
|
ret = mt76x0_init_wcid_attr_mem(dev);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -77,35 +77,6 @@ mt76x0_mcu_calibrate(struct mt76x0_dev *dev, enum mcu_calibrate cal, u32 val)
|
|||||||
return mt76_mcu_send_msg(dev, skb, CMD_CALIBRATION_OP, true);
|
return mt76_mcu_send_msg(dev, skb, CMD_CALIBRATION_OP, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
int mt76x0_burst_write_regs(struct mt76x0_dev *dev, u32 offset,
|
|
||||||
const u32 *data, int n)
|
|
||||||
{
|
|
||||||
const int max_regs_per_cmd = MT_INBAND_PACKET_MAX_LEN / 4 - 1;
|
|
||||||
struct sk_buff *skb;
|
|
||||||
int cnt, i, ret;
|
|
||||||
|
|
||||||
if (!n)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
cnt = min(max_regs_per_cmd, n);
|
|
||||||
|
|
||||||
skb = alloc_skb(cnt * 4 + MT_DMA_HDR_LEN + 4, GFP_KERNEL);
|
|
||||||
if (!skb)
|
|
||||||
return -ENOMEM;
|
|
||||||
skb_reserve(skb, MT_DMA_HDR_LEN);
|
|
||||||
|
|
||||||
skb_put_le32(skb, MT_MCU_MEMMAP_WLAN + offset);
|
|
||||||
for (i = 0; i < cnt; i++)
|
|
||||||
skb_put_le32(skb, data[i]);
|
|
||||||
|
|
||||||
ret = mt76_mcu_send_msg(dev, skb, CMD_BURST_WRITE, cnt == n);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
return mt76x0_burst_write_regs(dev, offset + cnt * 4,
|
|
||||||
data + cnt, n - cnt);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct mt76_fw_header {
|
struct mt76_fw_header {
|
||||||
__le32 ilm_len;
|
__le32 ilm_len;
|
||||||
__le32 dlm_len;
|
__le32 dlm_len;
|
||||||
|
@ -126,9 +126,6 @@ void mt76x0_init_debugfs(struct mt76x0_dev *dev);
|
|||||||
#define mt76_rmw_field(_dev, _reg, _field, _val) \
|
#define mt76_rmw_field(_dev, _reg, _field, _val) \
|
||||||
mt76_rmw(_dev, _reg, _field, FIELD_PREP(_field, _val))
|
mt76_rmw(_dev, _reg, _field, FIELD_PREP(_field, _val))
|
||||||
|
|
||||||
int mt76x0_burst_write_regs(struct mt76x0_dev *dev, u32 offset,
|
|
||||||
const u32 *data, int n);
|
|
||||||
|
|
||||||
/* Init */
|
/* Init */
|
||||||
struct mt76x0_dev *
|
struct mt76x0_dev *
|
||||||
mt76x0_alloc_device(struct device *pdev, const struct mt76_driver_ops *drv_ops);
|
mt76x0_alloc_device(struct device *pdev, const struct mt76_driver_ops *drv_ops);
|
||||||
|
Loading…
Reference in New Issue
Block a user