mt76: move mt7615_txp_ptr in mt76_connac module
Since mt7615_txp_ptr is shared between mt7615 and mt7921 move it in mt76_connac module. Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
5c0bed88c1
commit
4cb4da17fe
8 changed files with 39 additions and 61 deletions
|
|
@ -887,7 +887,7 @@ mt7615_txp_skb_unmap_fw(struct mt76_dev *dev, struct mt76_connac_fw_txp *txp)
|
|||
}
|
||||
|
||||
static void
|
||||
mt7615_txp_skb_unmap_hw(struct mt76_dev *dev, struct mt7615_hw_txp *txp)
|
||||
mt7615_txp_skb_unmap_hw(struct mt76_dev *dev, struct mt76_connac_hw_txp *txp)
|
||||
{
|
||||
u32 last_mask;
|
||||
int i;
|
||||
|
|
@ -895,7 +895,7 @@ mt7615_txp_skb_unmap_hw(struct mt76_dev *dev, struct mt7615_hw_txp *txp)
|
|||
last_mask = is_mt7663(dev) ? MT_TXD_LEN_LAST : MT_TXD_LEN_MSDU_LAST;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(txp->ptr); i++) {
|
||||
struct mt7615_txp_ptr *ptr = &txp->ptr[i];
|
||||
struct mt76_connac_txp_ptr *ptr = &txp->ptr[i];
|
||||
bool last;
|
||||
u16 len;
|
||||
|
||||
|
|
@ -920,7 +920,7 @@ mt7615_txp_skb_unmap_hw(struct mt76_dev *dev, struct mt7615_hw_txp *txp)
|
|||
void mt7615_txp_skb_unmap(struct mt76_dev *dev,
|
||||
struct mt76_txwi_cache *t)
|
||||
{
|
||||
struct mt7615_txp_common *txp;
|
||||
struct mt76_connac_txp_common *txp;
|
||||
|
||||
txp = mt76_connac_txwi_to_txp(dev, t);
|
||||
if (is_mt7615(dev))
|
||||
|
|
|
|||
|
|
@ -244,9 +244,6 @@ enum tx_phy_bandwidth {
|
|||
#define MT_TX_RATE_MODE GENMASK(8, 6)
|
||||
#define MT_TX_RATE_IDX GENMASK(5, 0)
|
||||
|
||||
#define MT_HW_TXP_MAX_MSDU_NUM 4
|
||||
#define MT_HW_TXP_MAX_BUF_NUM 4
|
||||
|
||||
#define MT_MSDU_ID_VALID BIT(15)
|
||||
|
||||
#define MT_TXD_LEN_MASK GENMASK(11, 0)
|
||||
|
|
@ -255,25 +252,6 @@ enum tx_phy_bandwidth {
|
|||
/* mt7663 */
|
||||
#define MT_TXD_LEN_LAST BIT(15)
|
||||
|
||||
struct mt7615_txp_ptr {
|
||||
__le32 buf0;
|
||||
__le16 len0;
|
||||
__le16 len1;
|
||||
__le32 buf1;
|
||||
} __packed __aligned(4);
|
||||
|
||||
struct mt7615_hw_txp {
|
||||
__le16 msdu_id[MT_HW_TXP_MAX_MSDU_NUM];
|
||||
struct mt7615_txp_ptr ptr[MT_HW_TXP_MAX_BUF_NUM / 2];
|
||||
} __packed __aligned(4);
|
||||
|
||||
struct mt7615_txp_common {
|
||||
union {
|
||||
struct mt76_connac_fw_txp fw;
|
||||
struct mt7615_hw_txp hw;
|
||||
};
|
||||
};
|
||||
|
||||
struct mt7615_tx_free {
|
||||
__le16 rx_byte_cnt;
|
||||
__le16 ctrl;
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ int mt7615_mmio_probe(struct device *pdev, void __iomem *mem_base,
|
|||
{
|
||||
static const struct mt76_driver_ops drv_ops = {
|
||||
/* txwi_size = txd size + txp size */
|
||||
.txwi_size = MT_TXD_SIZE + sizeof(struct mt7615_txp_common),
|
||||
.txwi_size = MT_TXD_SIZE + sizeof(struct mt76_connac_txp_common),
|
||||
.drv_flags = MT_DRV_TXWI_NO_FREE | MT_DRV_HW_MGMT_TXQ,
|
||||
.survey_flags = SURVEY_INFO_TIME_TX |
|
||||
SURVEY_INFO_TIME_RX |
|
||||
|
|
|
|||
|
|
@ -23,9 +23,9 @@ void mt7615_tx_complete_skb(struct mt76_dev *mdev, struct mt76_queue_entry *e)
|
|||
|
||||
/* error path */
|
||||
if (e->skb == DMA_DUMMY_DATA) {
|
||||
struct mt76_connac_txp_common *txp;
|
||||
struct mt76_txwi_cache *t;
|
||||
struct mt7615_dev *dev;
|
||||
struct mt7615_txp_common *txp;
|
||||
u16 token;
|
||||
|
||||
dev = container_of(mdev, struct mt7615_dev, mt76);
|
||||
|
|
@ -49,8 +49,8 @@ static void
|
|||
mt7615_write_hw_txp(struct mt7615_dev *dev, struct mt76_tx_info *tx_info,
|
||||
void *txp_ptr, u32 id)
|
||||
{
|
||||
struct mt7615_hw_txp *txp = txp_ptr;
|
||||
struct mt7615_txp_ptr *ptr = &txp->ptr[0];
|
||||
struct mt76_connac_hw_txp *txp = txp_ptr;
|
||||
struct mt76_connac_txp_ptr *ptr = &txp->ptr[0];
|
||||
int i, nbuf = tx_info->nbuf - 1;
|
||||
u32 last_mask;
|
||||
|
||||
|
|
@ -168,7 +168,7 @@ int mt7615_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
|
|||
pid, key, false);
|
||||
|
||||
txp = txwi + MT_TXD_SIZE;
|
||||
memset(txp, 0, sizeof(struct mt7615_txp_common));
|
||||
memset(txp, 0, sizeof(struct mt76_connac_txp_common));
|
||||
if (is_mt7615(&dev->mt76))
|
||||
mt7615_write_fw_txp(dev, tx_info, txp, id);
|
||||
else
|
||||
|
|
|
|||
|
|
@ -114,6 +114,28 @@ struct mt76_connac_fw_txp {
|
|||
__le16 len[MT_TXP_MAX_BUF_NUM];
|
||||
} __packed __aligned(4);
|
||||
|
||||
#define MT_HW_TXP_MAX_MSDU_NUM 4
|
||||
#define MT_HW_TXP_MAX_BUF_NUM 4
|
||||
|
||||
struct mt76_connac_txp_ptr {
|
||||
__le32 buf0;
|
||||
__le16 len0;
|
||||
__le16 len1;
|
||||
__le32 buf1;
|
||||
} __packed __aligned(4);
|
||||
|
||||
struct mt76_connac_hw_txp {
|
||||
__le16 msdu_id[MT_HW_TXP_MAX_MSDU_NUM];
|
||||
struct mt76_connac_txp_ptr ptr[MT_HW_TXP_MAX_BUF_NUM / 2];
|
||||
} __packed __aligned(4);
|
||||
|
||||
struct mt76_connac_txp_common {
|
||||
union {
|
||||
struct mt76_connac_fw_txp fw;
|
||||
struct mt76_connac_hw_txp hw;
|
||||
};
|
||||
};
|
||||
|
||||
extern const struct wiphy_wowlan_support mt76_connac_wowlan_support;
|
||||
|
||||
static inline bool is_mt7922(struct mt76_dev *dev)
|
||||
|
|
|
|||
|
|
@ -60,9 +60,6 @@ struct mt7921_tx_free {
|
|||
/* will support this field in further revision */
|
||||
#define MT_TX_FREE_RATE GENMASK(13, 0)
|
||||
|
||||
#define MT_HW_TXP_MAX_MSDU_NUM 4
|
||||
#define MT_HW_TXP_MAX_BUF_NUM 4
|
||||
|
||||
#define MT_MSDU_ID_VALID BIT(15)
|
||||
|
||||
#define MT_TXD_LEN_MASK GENMASK(11, 0)
|
||||
|
|
@ -70,24 +67,6 @@ struct mt7921_tx_free {
|
|||
#define MT_TXD_LEN_AMSDU_LAST BIT(15)
|
||||
#define MT_TXD_LEN_LAST BIT(15)
|
||||
|
||||
struct mt7921_txp_ptr {
|
||||
__le32 buf0;
|
||||
__le16 len0;
|
||||
__le16 len1;
|
||||
__le32 buf1;
|
||||
} __packed __aligned(4);
|
||||
|
||||
struct mt7921_hw_txp {
|
||||
__le16 msdu_id[MT_HW_TXP_MAX_MSDU_NUM];
|
||||
struct mt7921_txp_ptr ptr[MT_HW_TXP_MAX_BUF_NUM / 2];
|
||||
} __packed __aligned(4);
|
||||
|
||||
struct mt7921_txp_common {
|
||||
union {
|
||||
struct mt7921_hw_txp hw;
|
||||
};
|
||||
};
|
||||
|
||||
#define MT_WTBL_TXRX_CAP_RATE_OFFSET 7
|
||||
#define MT_WTBL_TXRX_RATE_G2_HE 24
|
||||
#define MT_WTBL_TXRX_RATE_G2 12
|
||||
|
|
|
|||
|
|
@ -230,7 +230,7 @@ static int mt7921_pci_probe(struct pci_dev *pdev,
|
|||
{
|
||||
static const struct mt76_driver_ops drv_ops = {
|
||||
/* txwi_size = txd size + txp size */
|
||||
.txwi_size = MT_TXD_SIZE + sizeof(struct mt7921_txp_common),
|
||||
.txwi_size = MT_TXD_SIZE + sizeof(struct mt76_connac_hw_txp),
|
||||
.drv_flags = MT_DRV_TXWI_NO_FREE | MT_DRV_HW_MGMT_TXQ,
|
||||
.survey_flags = SURVEY_INFO_TIME_TX |
|
||||
SURVEY_INFO_TIME_RX |
|
||||
|
|
@ -247,7 +247,6 @@ static int mt7921_pci_probe(struct pci_dev *pdev,
|
|||
.sta_remove = mt7921_mac_sta_remove,
|
||||
.update_survey = mt7921_update_channel,
|
||||
};
|
||||
|
||||
static const struct mt7921_hif_ops mt7921_pcie_ops = {
|
||||
.init_reset = mt7921e_init_reset,
|
||||
.reset = mt7921e_mac_reset,
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@ static void
|
|||
mt7921_write_hw_txp(struct mt7921_dev *dev, struct mt76_tx_info *tx_info,
|
||||
void *txp_ptr, u32 id)
|
||||
{
|
||||
struct mt7921_hw_txp *txp = txp_ptr;
|
||||
struct mt7921_txp_ptr *ptr = &txp->ptr[0];
|
||||
struct mt76_connac_hw_txp *txp = txp_ptr;
|
||||
struct mt76_connac_txp_ptr *ptr = &txp->ptr[0];
|
||||
int i, nbuf = tx_info->nbuf - 1;
|
||||
|
||||
tx_info->buf[0].len = MT_TXD_SIZE + sizeof(*txp);
|
||||
|
|
@ -44,8 +44,8 @@ int mt7921e_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
|
|||
struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76);
|
||||
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(tx_info->skb);
|
||||
struct ieee80211_key_conf *key = info->control.hw_key;
|
||||
struct mt76_connac_hw_txp *txp;
|
||||
struct mt76_txwi_cache *t;
|
||||
struct mt7921_txp_common *txp;
|
||||
int id, pid;
|
||||
u8 *txwi = (u8 *)txwi_ptr;
|
||||
|
||||
|
|
@ -75,8 +75,8 @@ int mt7921e_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
|
|||
mt76_connac2_mac_write_txwi(mdev, txwi_ptr, tx_info->skb, wcid, key,
|
||||
pid, 0);
|
||||
|
||||
txp = (struct mt7921_txp_common *)(txwi + MT_TXD_SIZE);
|
||||
memset(txp, 0, sizeof(struct mt7921_txp_common));
|
||||
txp = (struct mt76_connac_hw_txp *)(txwi + MT_TXD_SIZE);
|
||||
memset(txp, 0, sizeof(struct mt76_connac_hw_txp));
|
||||
mt7921_write_hw_txp(dev, tx_info, txp, id);
|
||||
|
||||
tx_info->skb = DMA_DUMMY_DATA;
|
||||
|
|
@ -87,13 +87,13 @@ int mt7921e_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
|
|||
static void
|
||||
mt7921_txp_skb_unmap(struct mt76_dev *dev, struct mt76_txwi_cache *t)
|
||||
{
|
||||
struct mt7921_txp_common *txp;
|
||||
struct mt76_connac_txp_common *txp;
|
||||
int i;
|
||||
|
||||
txp = mt76_connac_txwi_to_txp(dev, t);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(txp->hw.ptr); i++) {
|
||||
struct mt7921_txp_ptr *ptr = &txp->hw.ptr[i];
|
||||
struct mt76_connac_txp_ptr *ptr = &txp->hw.ptr[i];
|
||||
bool last;
|
||||
u16 len;
|
||||
|
||||
|
|
@ -271,8 +271,8 @@ void mt7921e_tx_complete_skb(struct mt76_dev *mdev, struct mt76_queue_entry *e)
|
|||
|
||||
/* error path */
|
||||
if (e->skb == DMA_DUMMY_DATA) {
|
||||
struct mt76_connac_txp_common *txp;
|
||||
struct mt76_txwi_cache *t;
|
||||
struct mt7921_txp_common *txp;
|
||||
u16 token;
|
||||
|
||||
txp = mt76_connac_txwi_to_txp(mdev, e->txwi);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue