mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
mt76: Introduce mt76_mcu data structure
Introduce mt76_mcu data structure to contain common fields between mt76u_mcu and mt76e_mcu. Initialize mcu common fields in mt76_alloc_device(). Rely on mt76_mcu in mt76_mcu_rx_event and in mt76_mcu_get_response in order to reuse them in usb code Signed-off-by: Lorenzo Bianconi <[email protected]>
This commit is contained in:
committed by
Felix Fietkau
parent
2bbffd2cb3
commit
f408a2b756
+10
-13
@@ -83,18 +83,17 @@ static int
|
||||
__mt76x02u_mcu_send_msg(struct mt76_dev *dev, struct sk_buff *skb,
|
||||
int cmd, bool wait_resp)
|
||||
{
|
||||
struct mt76_usb *usb = &dev->usb;
|
||||
int ret;
|
||||
u8 seq = 0;
|
||||
u32 info;
|
||||
int ret;
|
||||
|
||||
if (test_bit(MT76_REMOVED, &dev->phy.state))
|
||||
return 0;
|
||||
|
||||
if (wait_resp) {
|
||||
seq = ++usb->mcu.msg_seq & 0xf;
|
||||
seq = ++dev->mcu.msg_seq & 0xf;
|
||||
if (!seq)
|
||||
seq = ++usb->mcu.msg_seq & 0xf;
|
||||
seq = ++dev->mcu.msg_seq & 0xf;
|
||||
}
|
||||
|
||||
info = FIELD_PREP(MT_MCU_MSG_CMD_SEQ, seq) |
|
||||
@@ -121,7 +120,6 @@ static int
|
||||
mt76x02u_mcu_send_msg(struct mt76_dev *dev, int cmd, const void *data,
|
||||
int len, bool wait_resp)
|
||||
{
|
||||
struct mt76_usb *usb = &dev->usb;
|
||||
struct sk_buff *skb;
|
||||
int err;
|
||||
|
||||
@@ -129,9 +127,9 @@ mt76x02u_mcu_send_msg(struct mt76_dev *dev, int cmd, const void *data,
|
||||
if (!skb)
|
||||
return -ENOMEM;
|
||||
|
||||
mutex_lock(&usb->mcu.mutex);
|
||||
mutex_lock(&dev->mcu.mutex);
|
||||
err = __mt76x02u_mcu_send_msg(dev, skb, cmd, wait_resp);
|
||||
mutex_unlock(&usb->mcu.mutex);
|
||||
mutex_unlock(&dev->mcu.mutex);
|
||||
|
||||
return err;
|
||||
}
|
||||
@@ -145,9 +143,8 @@ static int
|
||||
mt76x02u_mcu_wr_rp(struct mt76_dev *dev, u32 base,
|
||||
const struct mt76_reg_pair *data, int n)
|
||||
{
|
||||
const int CMD_RANDOM_WRITE = 12;
|
||||
const int max_vals_per_cmd = MT_INBAND_PACKET_MAX_LEN / 8;
|
||||
struct mt76_usb *usb = &dev->usb;
|
||||
const int CMD_RANDOM_WRITE = 12;
|
||||
struct sk_buff *skb;
|
||||
int cnt, i, ret;
|
||||
|
||||
@@ -166,9 +163,9 @@ mt76x02u_mcu_wr_rp(struct mt76_dev *dev, u32 base,
|
||||
skb_put_le32(skb, data[i].value);
|
||||
}
|
||||
|
||||
mutex_lock(&usb->mcu.mutex);
|
||||
mutex_lock(&dev->mcu.mutex);
|
||||
ret = __mt76x02u_mcu_send_msg(dev, skb, CMD_RANDOM_WRITE, cnt == n);
|
||||
mutex_unlock(&usb->mcu.mutex);
|
||||
mutex_unlock(&dev->mcu.mutex);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -202,7 +199,7 @@ mt76x02u_mcu_rd_rp(struct mt76_dev *dev, u32 base,
|
||||
skb_put_le32(skb, data[i].value);
|
||||
}
|
||||
|
||||
mutex_lock(&usb->mcu.mutex);
|
||||
mutex_lock(&dev->mcu.mutex);
|
||||
|
||||
usb->mcu.rp = data;
|
||||
usb->mcu.rp_len = n;
|
||||
@@ -213,7 +210,7 @@ mt76x02u_mcu_rd_rp(struct mt76_dev *dev, u32 base,
|
||||
|
||||
usb->mcu.rp = NULL;
|
||||
|
||||
mutex_unlock(&usb->mcu.mutex);
|
||||
mutex_unlock(&dev->mcu.mutex);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user