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

mt76: mt7921: update mt7921_skb_add_usb_sdio_hdr to support usb

This is a preliminary patch to add mt7921u driver support.
Tested-by: default avatarSean Wang <sean.wang@mediatek.com>
Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent eafe031f
...@@ -352,12 +352,14 @@ static inline void mt7921_mcu_tx_cleanup(struct mt7921_dev *dev) ...@@ -352,12 +352,14 @@ static inline void mt7921_mcu_tx_cleanup(struct mt7921_dev *dev)
mt76_queue_tx_cleanup(dev, dev->mt76.q_mcu[MT_MCUQ_WA], false); mt76_queue_tx_cleanup(dev, dev->mt76.q_mcu[MT_MCUQ_WA], false);
} }
static inline void mt7921_skb_add_sdio_hdr(struct sk_buff *skb, static inline void
enum mt7921_sdio_pkt_type type) mt7921_skb_add_usb_sdio_hdr(struct mt7921_dev *dev, struct sk_buff *skb,
int type)
{ {
u32 hdr; u32 hdr, len;
hdr = FIELD_PREP(MT7921_SDIO_HDR_TX_BYTES, skb->len + sizeof(hdr)) | len = mt76_is_usb(&dev->mt76) ? skb->len : skb->len + sizeof(hdr);
hdr = FIELD_PREP(MT7921_SDIO_HDR_TX_BYTES, len) |
FIELD_PREP(MT7921_SDIO_HDR_PKT_TYPE, type); FIELD_PREP(MT7921_SDIO_HDR_PKT_TYPE, type);
put_unaligned_le32(hdr, skb_push(skb, sizeof(hdr))); put_unaligned_le32(hdr, skb_push(skb, sizeof(hdr)));
......
...@@ -183,7 +183,7 @@ int mt7921s_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr, ...@@ -183,7 +183,7 @@ int mt7921s_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
pktid = mt76_tx_status_skb_add(&dev->mt76, wcid, skb); pktid = mt76_tx_status_skb_add(&dev->mt76, wcid, skb);
mt7921s_write_txwi(dev, wcid, qid, sta, key, pktid, skb); mt7921s_write_txwi(dev, wcid, qid, sta, key, pktid, skb);
mt7921_skb_add_sdio_hdr(skb, MT7921_SDIO_DATA); mt7921_skb_add_usb_sdio_hdr(dev, skb, MT7921_SDIO_DATA);
pad = round_up(skb->len, 4) - skb->len; pad = round_up(skb->len, 4) - skb->len;
err = mt76_skb_adjust_pad(skb, pad); err = mt76_skb_adjust_pad(skb, pad);
......
...@@ -36,7 +36,7 @@ mt7921s_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb, ...@@ -36,7 +36,7 @@ mt7921s_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
if (cmd == MCU_CMD(FW_SCATTER)) if (cmd == MCU_CMD(FW_SCATTER))
type = MT7921_SDIO_FWDL; type = MT7921_SDIO_FWDL;
mt7921_skb_add_sdio_hdr(skb, type); mt7921_skb_add_usb_sdio_hdr(dev, skb, type);
pad = round_up(skb->len, 4) - skb->len; pad = round_up(skb->len, 4) - skb->len;
__skb_put_zero(skb, pad); __skb_put_zero(skb, pad);
......
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