Commit bb31a80e authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau

mt76: add headroom and tailroom to mt76_mcu_ops data structure

Introduce headroom and tailroom to mt76_mcu_ops data structure in order
to unify the routine used for mcu message allocation. This is a
preliminary patch to add mt7663u support
Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 34cdf1a6
...@@ -6,10 +6,11 @@ ...@@ -6,10 +6,11 @@
#include "mt76.h" #include "mt76.h"
struct sk_buff * struct sk_buff *
mt76_mcu_msg_alloc(const void *data, int head_len, mt76_mcu_msg_alloc(struct mt76_dev *dev, const void *data,
int data_len, int tail_len) int data_len)
{ {
int length = head_len + data_len + tail_len; const struct mt76_mcu_ops *ops = dev->mcu_ops;
int length = ops->headroom + data_len + ops->tailroom;
struct sk_buff *skb; struct sk_buff *skb;
skb = alloc_skb(length, GFP_KERNEL); skb = alloc_skb(length, GFP_KERNEL);
...@@ -17,7 +18,7 @@ mt76_mcu_msg_alloc(const void *data, int head_len, ...@@ -17,7 +18,7 @@ mt76_mcu_msg_alloc(const void *data, int head_len,
return NULL; return NULL;
memset(skb->head, 0, length); memset(skb->head, 0, length);
skb_reserve(skb, head_len); skb_reserve(skb, ops->headroom);
if (data && data_len) if (data && data_len)
skb_put_data(skb, data, data_len); skb_put_data(skb, data, data_len);
......
...@@ -137,6 +137,9 @@ struct mt76_sw_queue { ...@@ -137,6 +137,9 @@ struct mt76_sw_queue {
}; };
struct mt76_mcu_ops { struct mt76_mcu_ops {
u32 headroom;
u32 tailroom;
int (*mcu_send_msg)(struct mt76_dev *dev, int cmd, const void *data, int (*mcu_send_msg)(struct mt76_dev *dev, int cmd, const void *data,
int len, bool wait_resp); int len, bool wait_resp);
int (*mcu_skb_send_msg)(struct mt76_dev *dev, struct sk_buff *skb, int (*mcu_skb_send_msg)(struct mt76_dev *dev, struct sk_buff *skb,
...@@ -914,8 +917,8 @@ int mt76u_resume_rx(struct mt76_dev *dev); ...@@ -914,8 +917,8 @@ int mt76u_resume_rx(struct mt76_dev *dev);
void mt76u_queues_deinit(struct mt76_dev *dev); void mt76u_queues_deinit(struct mt76_dev *dev);
struct sk_buff * struct sk_buff *
mt76_mcu_msg_alloc(const void *data, int head_len, mt76_mcu_msg_alloc(struct mt76_dev *dev, const void *data,
int data_len, int tail_len); int data_len);
void mt76_mcu_rx_event(struct mt76_dev *dev, struct sk_buff *skb); void mt76_mcu_rx_event(struct mt76_dev *dev, struct sk_buff *skb);
struct sk_buff *mt76_mcu_get_response(struct mt76_dev *dev, struct sk_buff *mt76_mcu_get_response(struct mt76_dev *dev,
unsigned long expires); unsigned long expires);
......
...@@ -62,7 +62,7 @@ mt7603_mcu_msg_send(struct mt76_dev *mdev, int cmd, const void *data, ...@@ -62,7 +62,7 @@ mt7603_mcu_msg_send(struct mt76_dev *mdev, int cmd, const void *data,
struct sk_buff *skb; struct sk_buff *skb;
int ret, seq; int ret, seq;
skb = mt7603_mcu_msg_alloc(data, len); skb = mt76_mcu_msg_alloc(mdev, data, len);
if (!skb) if (!skb)
return -ENOMEM; return -ENOMEM;
...@@ -265,6 +265,7 @@ static int mt7603_load_firmware(struct mt7603_dev *dev) ...@@ -265,6 +265,7 @@ static int mt7603_load_firmware(struct mt7603_dev *dev)
int mt7603_mcu_init(struct mt7603_dev *dev) int mt7603_mcu_init(struct mt7603_dev *dev)
{ {
static const struct mt76_mcu_ops mt7603_mcu_ops = { static const struct mt76_mcu_ops mt7603_mcu_ops = {
.headroom = sizeof(struct mt7603_mcu_txd),
.mcu_send_msg = mt7603_mcu_msg_send, .mcu_send_msg = mt7603_mcu_msg_send,
.mcu_restart = mt7603_mcu_restart, .mcu_restart = mt7603_mcu_restart,
}; };
......
...@@ -100,11 +100,4 @@ enum { ...@@ -100,11 +100,4 @@ enum {
MCU_EXT_EVENT_BCN_UPDATE = 0x31, MCU_EXT_EVENT_BCN_UPDATE = 0x31,
}; };
static inline struct sk_buff *
mt7603_mcu_msg_alloc(const void *data, int len)
{
return mt76_mcu_msg_alloc(data, sizeof(struct mt7603_mcu_txd),
len, 0);
}
#endif #endif
...@@ -244,7 +244,7 @@ mt7615_mcu_msg_send(struct mt76_dev *mdev, int cmd, const void *data, ...@@ -244,7 +244,7 @@ mt7615_mcu_msg_send(struct mt76_dev *mdev, int cmd, const void *data,
{ {
struct sk_buff *skb; struct sk_buff *skb;
skb = mt7615_mcu_msg_alloc(data, len); skb = mt76_mcu_msg_alloc(mdev, data, len);
if (!skb) if (!skb)
return -ENOMEM; return -ENOMEM;
...@@ -552,7 +552,8 @@ mt7615_mcu_ctrl_pm_state(struct mt7615_dev *dev, int band, int state) ...@@ -552,7 +552,8 @@ mt7615_mcu_ctrl_pm_state(struct mt7615_dev *dev, int band, int state)
} }
static struct sk_buff * static struct sk_buff *
mt7615_mcu_alloc_sta_req(struct mt7615_vif *mvif, struct mt7615_sta *msta) mt7615_mcu_alloc_sta_req(struct mt7615_dev *dev, struct mt7615_vif *mvif,
struct mt7615_sta *msta)
{ {
struct sta_req_hdr hdr = { struct sta_req_hdr hdr = {
.bss_idx = mvif->idx, .bss_idx = mvif->idx,
...@@ -562,7 +563,7 @@ mt7615_mcu_alloc_sta_req(struct mt7615_vif *mvif, struct mt7615_sta *msta) ...@@ -562,7 +563,7 @@ mt7615_mcu_alloc_sta_req(struct mt7615_vif *mvif, struct mt7615_sta *msta)
}; };
struct sk_buff *skb; struct sk_buff *skb;
skb = mt7615_mcu_msg_alloc(NULL, MT7615_STA_UPDATE_MAX_SIZE); skb = mt76_mcu_msg_alloc(&dev->mt76, NULL, MT7615_STA_UPDATE_MAX_SIZE);
if (!skb) if (!skb)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
...@@ -572,8 +573,8 @@ mt7615_mcu_alloc_sta_req(struct mt7615_vif *mvif, struct mt7615_sta *msta) ...@@ -572,8 +573,8 @@ mt7615_mcu_alloc_sta_req(struct mt7615_vif *mvif, struct mt7615_sta *msta)
} }
static struct wtbl_req_hdr * static struct wtbl_req_hdr *
mt7615_mcu_alloc_wtbl_req(struct mt7615_sta *msta, int cmd, mt7615_mcu_alloc_wtbl_req(struct mt7615_dev *dev, struct mt7615_sta *msta,
void *sta_wtbl, struct sk_buff **skb) int cmd, void *sta_wtbl, struct sk_buff **skb)
{ {
struct tlv *sta_hdr = sta_wtbl; struct tlv *sta_hdr = sta_wtbl;
struct wtbl_req_hdr hdr = { struct wtbl_req_hdr hdr = {
...@@ -583,7 +584,8 @@ mt7615_mcu_alloc_wtbl_req(struct mt7615_sta *msta, int cmd, ...@@ -583,7 +584,8 @@ mt7615_mcu_alloc_wtbl_req(struct mt7615_sta *msta, int cmd,
struct sk_buff *nskb = *skb; struct sk_buff *nskb = *skb;
if (!nskb) { if (!nskb) {
nskb = mt7615_mcu_msg_alloc(NULL, MT7615_WTBL_UPDATE_BA_SIZE); nskb = mt76_mcu_msg_alloc(&dev->mt76, NULL,
MT7615_WTBL_UPDATE_BA_SIZE);
if (!nskb) if (!nskb)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
...@@ -974,7 +976,7 @@ mt7615_mcu_add_bss(struct mt7615_phy *phy, struct ieee80211_vif *vif, ...@@ -974,7 +976,7 @@ mt7615_mcu_add_bss(struct mt7615_phy *phy, struct ieee80211_vif *vif,
struct mt7615_dev *dev = phy->dev; struct mt7615_dev *dev = phy->dev;
struct sk_buff *skb; struct sk_buff *skb;
skb = mt7615_mcu_alloc_sta_req(mvif, NULL); skb = mt7615_mcu_alloc_sta_req(dev, mvif, NULL);
if (IS_ERR(skb)) if (IS_ERR(skb))
return PTR_ERR(skb); return PTR_ERR(skb);
...@@ -1001,7 +1003,7 @@ mt7615_mcu_wtbl_tx_ba(struct mt7615_dev *dev, ...@@ -1001,7 +1003,7 @@ mt7615_mcu_wtbl_tx_ba(struct mt7615_dev *dev,
struct sk_buff *skb = NULL; struct sk_buff *skb = NULL;
int err; int err;
wtbl_hdr = mt7615_mcu_alloc_wtbl_req(msta, WTBL_SET, NULL, &skb); wtbl_hdr = mt7615_mcu_alloc_wtbl_req(dev, msta, WTBL_SET, NULL, &skb);
if (IS_ERR(wtbl_hdr)) if (IS_ERR(wtbl_hdr))
return PTR_ERR(wtbl_hdr); return PTR_ERR(wtbl_hdr);
...@@ -1012,7 +1014,7 @@ mt7615_mcu_wtbl_tx_ba(struct mt7615_dev *dev, ...@@ -1012,7 +1014,7 @@ mt7615_mcu_wtbl_tx_ba(struct mt7615_dev *dev,
if (err < 0) if (err < 0)
return err; return err;
skb = mt7615_mcu_alloc_sta_req(mvif, msta); skb = mt7615_mcu_alloc_sta_req(dev, mvif, msta);
if (IS_ERR(skb)) if (IS_ERR(skb))
return PTR_ERR(skb); return PTR_ERR(skb);
...@@ -1033,7 +1035,7 @@ mt7615_mcu_wtbl_rx_ba(struct mt7615_dev *dev, ...@@ -1033,7 +1035,7 @@ mt7615_mcu_wtbl_rx_ba(struct mt7615_dev *dev,
struct sk_buff *skb; struct sk_buff *skb;
int err; int err;
skb = mt7615_mcu_alloc_sta_req(mvif, msta); skb = mt7615_mcu_alloc_sta_req(dev, mvif, msta);
if (IS_ERR(skb)) if (IS_ERR(skb))
return PTR_ERR(skb); return PTR_ERR(skb);
...@@ -1045,7 +1047,7 @@ mt7615_mcu_wtbl_rx_ba(struct mt7615_dev *dev, ...@@ -1045,7 +1047,7 @@ mt7615_mcu_wtbl_rx_ba(struct mt7615_dev *dev,
return err; return err;
skb = NULL; skb = NULL;
wtbl_hdr = mt7615_mcu_alloc_wtbl_req(msta, WTBL_SET, NULL, &skb); wtbl_hdr = mt7615_mcu_alloc_wtbl_req(dev, msta, WTBL_SET, NULL, &skb);
if (IS_ERR(wtbl_hdr)) if (IS_ERR(wtbl_hdr))
return PTR_ERR(wtbl_hdr); return PTR_ERR(wtbl_hdr);
...@@ -1067,7 +1069,7 @@ mt7615_mcu_wtbl_sta_add(struct mt7615_dev *dev, struct ieee80211_vif *vif, ...@@ -1067,7 +1069,7 @@ mt7615_mcu_wtbl_sta_add(struct mt7615_dev *dev, struct ieee80211_vif *vif,
msta = sta ? (struct mt7615_sta *)sta->drv_priv : &mvif->sta; msta = sta ? (struct mt7615_sta *)sta->drv_priv : &mvif->sta;
sskb = mt7615_mcu_alloc_sta_req(mvif, msta); sskb = mt7615_mcu_alloc_sta_req(dev, mvif, msta);
if (IS_ERR(sskb)) if (IS_ERR(sskb))
return PTR_ERR(sskb); return PTR_ERR(sskb);
...@@ -1075,8 +1077,8 @@ mt7615_mcu_wtbl_sta_add(struct mt7615_dev *dev, struct ieee80211_vif *vif, ...@@ -1075,8 +1077,8 @@ mt7615_mcu_wtbl_sta_add(struct mt7615_dev *dev, struct ieee80211_vif *vif,
if (enable && sta) if (enable && sta)
mt7615_mcu_sta_ht_tlv(sskb, sta); mt7615_mcu_sta_ht_tlv(sskb, sta);
wtbl_hdr = mt7615_mcu_alloc_wtbl_req(msta, WTBL_RESET_AND_SET, NULL, wtbl_hdr = mt7615_mcu_alloc_wtbl_req(dev, msta, WTBL_RESET_AND_SET,
&wskb); NULL, &wskb);
if (IS_ERR(wtbl_hdr)) if (IS_ERR(wtbl_hdr))
return PTR_ERR(wtbl_hdr); return PTR_ERR(wtbl_hdr);
...@@ -1120,7 +1122,7 @@ mt7615_mcu_sta_ba(struct mt7615_dev *dev, ...@@ -1120,7 +1122,7 @@ mt7615_mcu_sta_ba(struct mt7615_dev *dev,
struct tlv *sta_wtbl; struct tlv *sta_wtbl;
struct sk_buff *skb; struct sk_buff *skb;
skb = mt7615_mcu_alloc_sta_req(mvif, msta); skb = mt7615_mcu_alloc_sta_req(dev, mvif, msta);
if (IS_ERR(skb)) if (IS_ERR(skb))
return PTR_ERR(skb); return PTR_ERR(skb);
...@@ -1128,7 +1130,8 @@ mt7615_mcu_sta_ba(struct mt7615_dev *dev, ...@@ -1128,7 +1130,8 @@ mt7615_mcu_sta_ba(struct mt7615_dev *dev,
sta_wtbl = mt7615_mcu_add_tlv(skb, STA_REC_WTBL, sizeof(struct tlv)); sta_wtbl = mt7615_mcu_add_tlv(skb, STA_REC_WTBL, sizeof(struct tlv));
wtbl_hdr = mt7615_mcu_alloc_wtbl_req(msta, WTBL_SET, sta_wtbl, &skb); wtbl_hdr = mt7615_mcu_alloc_wtbl_req(dev, msta, WTBL_SET, sta_wtbl,
&skb);
mt7615_mcu_wtbl_ba_tlv(skb, params, enable, tx, sta_wtbl, wtbl_hdr); mt7615_mcu_wtbl_ba_tlv(skb, params, enable, tx, sta_wtbl, wtbl_hdr);
return __mt76_mcu_skb_send_msg(&dev->mt76, skb, return __mt76_mcu_skb_send_msg(&dev->mt76, skb,
...@@ -1163,7 +1166,7 @@ mt7615_mcu_add_sta_cmd(struct mt7615_dev *dev, struct ieee80211_vif *vif, ...@@ -1163,7 +1166,7 @@ mt7615_mcu_add_sta_cmd(struct mt7615_dev *dev, struct ieee80211_vif *vif,
msta = sta ? (struct mt7615_sta *)sta->drv_priv : &mvif->sta; msta = sta ? (struct mt7615_sta *)sta->drv_priv : &mvif->sta;
skb = mt7615_mcu_alloc_sta_req(mvif, msta); skb = mt7615_mcu_alloc_sta_req(dev, mvif, msta);
if (IS_ERR(skb)) if (IS_ERR(skb))
return PTR_ERR(skb); return PTR_ERR(skb);
...@@ -1173,7 +1176,7 @@ mt7615_mcu_add_sta_cmd(struct mt7615_dev *dev, struct ieee80211_vif *vif, ...@@ -1173,7 +1176,7 @@ mt7615_mcu_add_sta_cmd(struct mt7615_dev *dev, struct ieee80211_vif *vif,
sta_wtbl = mt7615_mcu_add_tlv(skb, STA_REC_WTBL, sizeof(struct tlv)); sta_wtbl = mt7615_mcu_add_tlv(skb, STA_REC_WTBL, sizeof(struct tlv));
wtbl_hdr = mt7615_mcu_alloc_wtbl_req(msta, WTBL_RESET_AND_SET, wtbl_hdr = mt7615_mcu_alloc_wtbl_req(dev, msta, WTBL_RESET_AND_SET,
sta_wtbl, &skb); sta_wtbl, &skb);
if (enable) { if (enable) {
mt7615_mcu_wtbl_generic_tlv(skb, vif, sta, sta_wtbl, wtbl_hdr); mt7615_mcu_wtbl_generic_tlv(skb, vif, sta, sta_wtbl, wtbl_hdr);
...@@ -1499,13 +1502,14 @@ mt7615_mcu_uni_tx_ba(struct mt7615_dev *dev, ...@@ -1499,13 +1502,14 @@ mt7615_mcu_uni_tx_ba(struct mt7615_dev *dev,
struct sk_buff *skb; struct sk_buff *skb;
int err; int err;
skb = mt7615_mcu_alloc_sta_req(mvif, msta); skb = mt7615_mcu_alloc_sta_req(dev, mvif, msta);
if (IS_ERR(skb)) if (IS_ERR(skb))
return PTR_ERR(skb); return PTR_ERR(skb);
sta_wtbl = mt7615_mcu_add_tlv(skb, STA_REC_WTBL, sizeof(struct tlv)); sta_wtbl = mt7615_mcu_add_tlv(skb, STA_REC_WTBL, sizeof(struct tlv));
wtbl_hdr = mt7615_mcu_alloc_wtbl_req(msta, WTBL_SET, sta_wtbl, &skb); wtbl_hdr = mt7615_mcu_alloc_wtbl_req(dev, msta, WTBL_SET, sta_wtbl,
&skb);
if (IS_ERR(wtbl_hdr)) if (IS_ERR(wtbl_hdr))
return PTR_ERR(wtbl_hdr); return PTR_ERR(wtbl_hdr);
...@@ -1517,7 +1521,7 @@ mt7615_mcu_uni_tx_ba(struct mt7615_dev *dev, ...@@ -1517,7 +1521,7 @@ mt7615_mcu_uni_tx_ba(struct mt7615_dev *dev,
if (err < 0) if (err < 0)
return err; return err;
skb = mt7615_mcu_alloc_sta_req(mvif, msta); skb = mt7615_mcu_alloc_sta_req(dev, mvif, msta);
if (IS_ERR(skb)) if (IS_ERR(skb))
return PTR_ERR(skb); return PTR_ERR(skb);
...@@ -1539,7 +1543,7 @@ mt7615_mcu_uni_rx_ba(struct mt7615_dev *dev, ...@@ -1539,7 +1543,7 @@ mt7615_mcu_uni_rx_ba(struct mt7615_dev *dev,
struct sk_buff *skb; struct sk_buff *skb;
int err; int err;
skb = mt7615_mcu_alloc_sta_req(mvif, msta); skb = mt7615_mcu_alloc_sta_req(dev, mvif, msta);
if (IS_ERR(skb)) if (IS_ERR(skb))
return PTR_ERR(skb); return PTR_ERR(skb);
...@@ -1550,13 +1554,14 @@ mt7615_mcu_uni_rx_ba(struct mt7615_dev *dev, ...@@ -1550,13 +1554,14 @@ mt7615_mcu_uni_rx_ba(struct mt7615_dev *dev,
if (err < 0 || !enable) if (err < 0 || !enable)
return err; return err;
skb = mt7615_mcu_alloc_sta_req(mvif, msta); skb = mt7615_mcu_alloc_sta_req(dev, mvif, msta);
if (IS_ERR(skb)) if (IS_ERR(skb))
return PTR_ERR(skb); return PTR_ERR(skb);
sta_wtbl = mt7615_mcu_add_tlv(skb, STA_REC_WTBL, sizeof(struct tlv)); sta_wtbl = mt7615_mcu_add_tlv(skb, STA_REC_WTBL, sizeof(struct tlv));
wtbl_hdr = mt7615_mcu_alloc_wtbl_req(msta, WTBL_SET, sta_wtbl, &skb); wtbl_hdr = mt7615_mcu_alloc_wtbl_req(dev, msta, WTBL_SET, sta_wtbl,
&skb);
if (IS_ERR(wtbl_hdr)) if (IS_ERR(wtbl_hdr))
return PTR_ERR(wtbl_hdr); return PTR_ERR(wtbl_hdr);
...@@ -2114,6 +2119,7 @@ static int mt7663_load_firmware(struct mt7615_dev *dev) ...@@ -2114,6 +2119,7 @@ static int mt7663_load_firmware(struct mt7615_dev *dev)
int mt7615_mcu_init(struct mt7615_dev *dev) int mt7615_mcu_init(struct mt7615_dev *dev)
{ {
static const struct mt76_mcu_ops mt7615_mcu_ops = { static const struct mt76_mcu_ops mt7615_mcu_ops = {
.headroom = sizeof(struct mt7615_mcu_txd),
.mcu_skb_send_msg = mt7615_mcu_send_message, .mcu_skb_send_msg = mt7615_mcu_send_message,
.mcu_send_msg = mt7615_mcu_msg_send, .mcu_send_msg = mt7615_mcu_msg_send,
.mcu_restart = mt7615_mcu_restart, .mcu_restart = mt7615_mcu_restart,
...@@ -2186,7 +2192,7 @@ int mt7615_mcu_set_eeprom(struct mt7615_dev *dev) ...@@ -2186,7 +2192,7 @@ int mt7615_mcu_set_eeprom(struct mt7615_dev *dev)
req_hdr.len = cpu_to_le16(eep_len); req_hdr.len = cpu_to_le16(eep_len);
skb = mt7615_mcu_msg_alloc(NULL, sizeof(req_hdr) + eep_len); skb = mt76_mcu_msg_alloc(&dev->mt76, NULL, sizeof(req_hdr) + eep_len);
if (!skb) if (!skb)
return -ENOMEM; return -ENOMEM;
...@@ -2601,7 +2607,7 @@ int mt7615_mcu_set_channel_domain(struct mt7615_phy *phy) ...@@ -2601,7 +2607,7 @@ int mt7615_mcu_set_channel_domain(struct mt7615_phy *phy)
if (!mt7615_firmware_offload(dev)) if (!mt7615_firmware_offload(dev))
return 0; return 0;
skb = mt7615_mcu_msg_alloc(NULL, len); skb = mt76_mcu_msg_alloc(&dev->mt76, NULL, len);
if (!skb) if (!skb)
return -ENOMEM; return -ENOMEM;
...@@ -2646,7 +2652,7 @@ int mt7615_mcu_hw_scan(struct mt7615_phy *phy, struct ieee80211_vif *vif, ...@@ -2646,7 +2652,7 @@ int mt7615_mcu_hw_scan(struct mt7615_phy *phy, struct ieee80211_vif *vif,
if (!mt7615_firmware_offload(dev)) if (!mt7615_firmware_offload(dev))
return 1; return 1;
skb = mt7615_mcu_msg_alloc(NULL, sizeof(*req)); skb = mt76_mcu_msg_alloc(&dev->mt76, NULL, sizeof(*req));
if (!skb) if (!skb)
return -ENOMEM; return -ENOMEM;
...@@ -2746,7 +2752,8 @@ int mt7615_mcu_sched_scan_req(struct mt7615_phy *phy, ...@@ -2746,7 +2752,8 @@ int mt7615_mcu_sched_scan_req(struct mt7615_phy *phy,
if (!mt7615_firmware_offload(dev)) if (!mt7615_firmware_offload(dev))
return -ENOTSUPP; return -ENOTSUPP;
skb = mt7615_mcu_msg_alloc(NULL, sizeof(*req) + sreq->ie_len); skb = mt76_mcu_msg_alloc(&dev->mt76, NULL,
sizeof(*req) + sreq->ie_len);
if (!skb) if (!skb)
return -ENOMEM; return -ENOMEM;
......
...@@ -845,11 +845,4 @@ enum { ...@@ -845,11 +845,4 @@ enum {
CH_SWITCH_SCAN_BYPASS_DPD = 9 CH_SWITCH_SCAN_BYPASS_DPD = 9
}; };
static inline struct sk_buff *
mt7615_mcu_msg_alloc(const void *data, int len)
{
return mt76_mcu_msg_alloc(data, sizeof(struct mt7615_mcu_txd),
len, 0);
}
#endif #endif
...@@ -23,7 +23,7 @@ int mt76x02_mcu_msg_send(struct mt76_dev *mdev, int cmd, const void *data, ...@@ -23,7 +23,7 @@ int mt76x02_mcu_msg_send(struct mt76_dev *mdev, int cmd, const void *data,
if (mt76_is_mmio(&dev->mt76) && dev->mcu_timeout) if (mt76_is_mmio(&dev->mt76) && dev->mcu_timeout)
return -EIO; return -EIO;
skb = mt76x02_mcu_msg_alloc(data, len); skb = mt76_mcu_msg_alloc(mdev, data, len);
if (!skb) if (!skb)
return -ENOMEM; return -ENOMEM;
......
...@@ -85,12 +85,6 @@ struct mt76x02_patch_header { ...@@ -85,12 +85,6 @@ struct mt76x02_patch_header {
u8 pad[2]; u8 pad[2];
}; };
static inline struct sk_buff *
mt76x02_mcu_msg_alloc(const void *data, int len)
{
return mt76_mcu_msg_alloc(data, 0, len, 0);
}
int mt76x02_mcu_cleanup(struct mt76x02_dev *dev); int mt76x02_mcu_cleanup(struct mt76x02_dev *dev);
int mt76x02_mcu_calibrate(struct mt76x02_dev *dev, int type, u32 param); int mt76x02_mcu_calibrate(struct mt76x02_dev *dev, int type, u32 param);
int mt76x02_mcu_msg_send(struct mt76_dev *mdev, int cmd, const void *data, int mt76x02_mcu_msg_send(struct mt76_dev *mdev, int cmd, const void *data,
......
...@@ -123,7 +123,7 @@ mt76x02u_mcu_send_msg(struct mt76_dev *dev, int cmd, const void *data, ...@@ -123,7 +123,7 @@ mt76x02u_mcu_send_msg(struct mt76_dev *dev, int cmd, const void *data,
struct sk_buff *skb; struct sk_buff *skb;
int err; int err;
skb = mt76_mcu_msg_alloc(data, MT_CMD_HDR_LEN, len, 8); skb = mt76_mcu_msg_alloc(dev, data, len);
if (!skb) if (!skb)
return -ENOMEM; return -ENOMEM;
...@@ -291,6 +291,8 @@ EXPORT_SYMBOL_GPL(mt76x02u_mcu_fw_send_data); ...@@ -291,6 +291,8 @@ EXPORT_SYMBOL_GPL(mt76x02u_mcu_fw_send_data);
void mt76x02u_init_mcu(struct mt76_dev *dev) void mt76x02u_init_mcu(struct mt76_dev *dev)
{ {
static const struct mt76_mcu_ops mt76x02u_mcu_ops = { static const struct mt76_mcu_ops mt76x02u_mcu_ops = {
.headroom = MT_CMD_HDR_LEN,
.tailroom = 8,
.mcu_send_msg = mt76x02u_mcu_send_msg, .mcu_send_msg = mt76x02u_mcu_send_msg,
.mcu_wr_rp = mt76x02u_mcu_wr_rp, .mcu_wr_rp = mt76x02u_mcu_wr_rp,
.mcu_rd_rp = mt76x02u_mcu_rd_rp, .mcu_rd_rp = mt76x02u_mcu_rd_rp,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment