Commit b7bfad2c authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau
Browse files

wifi: mt76: mt7921: rename mt7921_sta in mt792x_sta



This is a preliminary patch to introduce WiFi7 chipset support

Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarDeren Wu <deren.wu@mediatek.com>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 15ca8970
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -140,7 +140,7 @@ mt7921_init_wiphy(struct ieee80211_hw *hw)


	phy->slottime = 9;
	phy->slottime = 9;


	hw->sta_data_size = sizeof(struct mt7921_sta);
	hw->sta_data_size = sizeof(struct mt792x_sta);
	hw->vif_data_size = sizeof(struct mt792x_vif);
	hw->vif_data_size = sizeof(struct mt792x_vif);


	if (dev->fw_features & MT7921_FW_CAP_CNM) {
	if (dev->fw_features & MT7921_FW_CAP_CNM) {
+11 −11
Original line number Original line Diff line number Diff line
@@ -23,7 +23,7 @@ static u32 mt7921_mac_wtbl_lmac_addr(int idx, u8 offset)
static struct mt76_wcid *mt7921_rx_get_wcid(struct mt7921_dev *dev,
static struct mt76_wcid *mt7921_rx_get_wcid(struct mt7921_dev *dev,
					    u16 idx, bool unicast)
					    u16 idx, bool unicast)
{
{
	struct mt7921_sta *sta;
	struct mt792x_sta *sta;
	struct mt76_wcid *wcid;
	struct mt76_wcid *wcid;


	if (idx >= ARRAY_SIZE(dev->mt76.wcid))
	if (idx >= ARRAY_SIZE(dev->mt76.wcid))
@@ -36,7 +36,7 @@ static struct mt76_wcid *mt7921_rx_get_wcid(struct mt7921_dev *dev,
	if (!wcid->sta)
	if (!wcid->sta)
		return NULL;
		return NULL;


	sta = container_of(wcid, struct mt7921_sta, wcid);
	sta = container_of(wcid, struct mt792x_sta, wcid);
	if (!sta->vif)
	if (!sta->vif)
		return NULL;
		return NULL;


@@ -61,7 +61,7 @@ static void mt7921_mac_sta_poll(struct mt7921_dev *dev)
		[IEEE80211_AC_VO] = 6
		[IEEE80211_AC_VO] = 6
	};
	};
	struct ieee80211_sta *sta;
	struct ieee80211_sta *sta;
	struct mt7921_sta *msta;
	struct mt792x_sta *msta;
	u32 tx_time[IEEE80211_NUM_ACS], rx_time[IEEE80211_NUM_ACS];
	u32 tx_time[IEEE80211_NUM_ACS], rx_time[IEEE80211_NUM_ACS];
	LIST_HEAD(sta_poll_list);
	LIST_HEAD(sta_poll_list);
	struct rate_info *rate;
	struct rate_info *rate;
@@ -84,7 +84,7 @@ static void mt7921_mac_sta_poll(struct mt7921_dev *dev)
			break;
			break;
		}
		}
		msta = list_first_entry(&sta_poll_list,
		msta = list_first_entry(&sta_poll_list,
					struct mt7921_sta, wcid.poll_list);
					struct mt792x_sta, wcid.poll_list);
		list_del_init(&msta->wcid.poll_list);
		list_del_init(&msta->wcid.poll_list);
		spin_unlock_bh(&dev->mt76.sta_poll_lock);
		spin_unlock_bh(&dev->mt76.sta_poll_lock);


@@ -248,7 +248,7 @@ mt7921_mac_fill_rx(struct mt7921_dev *dev, struct sk_buff *skb)
	u32 rxd2 = le32_to_cpu(rxd[2]);
	u32 rxd2 = le32_to_cpu(rxd[2]);
	u32 rxd3 = le32_to_cpu(rxd[3]);
	u32 rxd3 = le32_to_cpu(rxd[3]);
	u32 rxd4 = le32_to_cpu(rxd[4]);
	u32 rxd4 = le32_to_cpu(rxd[4]);
	struct mt7921_sta *msta = NULL;
	struct mt792x_sta *msta = NULL;
	u16 seq_ctrl = 0;
	u16 seq_ctrl = 0;
	__le16 fc = 0;
	__le16 fc = 0;
	u8 mode = 0;
	u8 mode = 0;
@@ -279,7 +279,7 @@ mt7921_mac_fill_rx(struct mt7921_dev *dev, struct sk_buff *skb)
	status->wcid = mt7921_rx_get_wcid(dev, idx, unicast);
	status->wcid = mt7921_rx_get_wcid(dev, idx, unicast);


	if (status->wcid) {
	if (status->wcid) {
		msta = container_of(status->wcid, struct mt7921_sta, wcid);
		msta = container_of(status->wcid, struct mt792x_sta, wcid);
		spin_lock_bh(&dev->mt76.sta_poll_lock);
		spin_lock_bh(&dev->mt76.sta_poll_lock);
		if (list_empty(&msta->wcid.poll_list))
		if (list_empty(&msta->wcid.poll_list))
			list_add_tail(&msta->wcid.poll_list,
			list_add_tail(&msta->wcid.poll_list,
@@ -513,7 +513,7 @@ mt7921_mac_fill_rx(struct mt7921_dev *dev, struct sk_buff *skb)


void mt7921_mac_add_txs(struct mt7921_dev *dev, void *data)
void mt7921_mac_add_txs(struct mt7921_dev *dev, void *data)
{
{
	struct mt7921_sta *msta = NULL;
	struct mt792x_sta *msta = NULL;
	struct mt76_wcid *wcid;
	struct mt76_wcid *wcid;
	__le32 *txs_data = data;
	__le32 *txs_data = data;
	u16 wcidx;
	u16 wcidx;
@@ -537,7 +537,7 @@ void mt7921_mac_add_txs(struct mt7921_dev *dev, void *data)
	if (!wcid)
	if (!wcid)
		goto out;
		goto out;


	msta = container_of(wcid, struct mt7921_sta, wcid);
	msta = container_of(wcid, struct mt792x_sta, wcid);


	mt76_connac2_mac_add_txs_skb(&dev->mt76, wcid, pid, txs_data);
	mt76_connac2_mac_add_txs_skb(&dev->mt76, wcid, pid, txs_data);
	if (!wcid->sta)
	if (!wcid->sta)
@@ -582,7 +582,7 @@ static void mt7921_mac_tx_free(struct mt7921_dev *dev, void *data, int len)
		 * 1'b0: msdu_id with the same 'wcid pair' as above.
		 * 1'b0: msdu_id with the same 'wcid pair' as above.
		 */
		 */
		if (info & MT_TX_FREE_PAIR) {
		if (info & MT_TX_FREE_PAIR) {
			struct mt7921_sta *msta;
			struct mt792x_sta *msta;
			u16 idx;
			u16 idx;


			count++;
			count++;
@@ -592,7 +592,7 @@ static void mt7921_mac_tx_free(struct mt7921_dev *dev, void *data, int len)
			if (!sta)
			if (!sta)
				continue;
				continue;


			msta = container_of(wcid, struct mt7921_sta, wcid);
			msta = container_of(wcid, struct mt792x_sta, wcid);
			spin_lock_bh(&mdev->sta_poll_lock);
			spin_lock_bh(&mdev->sta_poll_lock);
			if (list_empty(&msta->wcid.poll_list))
			if (list_empty(&msta->wcid.poll_list))
				list_add_tail(&msta->wcid.poll_list,
				list_add_tail(&msta->wcid.poll_list,
@@ -1140,7 +1140,7 @@ int mt7921_usb_sdio_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
		wcid = &dev->mt76.global_wcid;
		wcid = &dev->mt76.global_wcid;


	if (sta) {
	if (sta) {
		struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv;
		struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;


		if (time_after(jiffies, msta->last_txs + HZ / 4)) {
		if (time_after(jiffies, msta->last_txs + HZ / 4)) {
			info->flags |= IEEE80211_TX_CTL_REQ_TX_STATUS;
			info->flags |= IEEE80211_TX_CTL_REQ_TX_STATUS;
+11 −11
Original line number Original line Diff line number Diff line
@@ -342,7 +342,7 @@ static void mt7921_remove_interface(struct ieee80211_hw *hw,
				    struct ieee80211_vif *vif)
				    struct ieee80211_vif *vif)
{
{
	struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;
	struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;
	struct mt7921_sta *msta = &mvif->sta;
	struct mt792x_sta *msta = &mvif->sta;
	struct mt7921_dev *dev = mt7921_hw_dev(hw);
	struct mt7921_dev *dev = mt7921_hw_dev(hw);
	struct mt7921_phy *phy = mt7921_hw_phy(hw);
	struct mt7921_phy *phy = mt7921_hw_phy(hw);
	int idx = msta->wcid.idx;
	int idx = msta->wcid.idx;
@@ -508,7 +508,7 @@ static int mt7921_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
{
{
	struct mt7921_dev *dev = mt7921_hw_dev(hw);
	struct mt7921_dev *dev = mt7921_hw_dev(hw);
	struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;
	struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;
	struct mt7921_sta *msta = sta ? (struct mt7921_sta *)sta->drv_priv :
	struct mt792x_sta *msta = sta ? (struct mt792x_sta *)sta->drv_priv :
				  &mvif->sta;
				  &mvif->sta;
	struct mt76_wcid *wcid = &msta->wcid;
	struct mt76_wcid *wcid = &msta->wcid;
	u8 *wcid_keyidx = &wcid->hw_key_idx;
	u8 *wcid_keyidx = &wcid->hw_key_idx;
@@ -756,7 +756,7 @@ int mt7921_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
		       struct ieee80211_sta *sta)
		       struct ieee80211_sta *sta)
{
{
	struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76);
	struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76);
	struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv;
	struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;
	struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;
	struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;
	int ret, idx;
	int ret, idx;


@@ -797,7 +797,7 @@ void mt7921_mac_sta_assoc(struct mt76_dev *mdev, struct ieee80211_vif *vif,
			  struct ieee80211_sta *sta)
			  struct ieee80211_sta *sta)
{
{
	struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76);
	struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76);
	struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv;
	struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;
	struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;
	struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;


	mt7921_mutex_acquire(dev);
	mt7921_mutex_acquire(dev);
@@ -822,7 +822,7 @@ void mt7921_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
			   struct ieee80211_sta *sta)
			   struct ieee80211_sta *sta)
{
{
	struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76);
	struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76);
	struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv;
	struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;


	mt76_connac_free_pending_tx_skbs(&dev->pm, &msta->wcid);
	mt76_connac_free_pending_tx_skbs(&dev->pm, &msta->wcid);
	mt76_connac_pm_wake(&dev->mphy, &dev->pm);
	mt76_connac_pm_wake(&dev->mphy, &dev->pm);
@@ -877,9 +877,9 @@ static void mt7921_tx(struct ieee80211_hw *hw,
	int qid;
	int qid;


	if (control->sta) {
	if (control->sta) {
		struct mt7921_sta *sta;
		struct mt792x_sta *sta;


		sta = (struct mt7921_sta *)control->sta->drv_priv;
		sta = (struct mt792x_sta *)control->sta->drv_priv;
		wcid = &sta->wcid;
		wcid = &sta->wcid;
	}
	}


@@ -924,7 +924,7 @@ mt7921_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
	struct mt7921_dev *dev = mt7921_hw_dev(hw);
	struct mt7921_dev *dev = mt7921_hw_dev(hw);
	struct ieee80211_sta *sta = params->sta;
	struct ieee80211_sta *sta = params->sta;
	struct ieee80211_txq *txq = sta->txq[params->tid];
	struct ieee80211_txq *txq = sta->txq[params->tid];
	struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv;
	struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;
	u16 tid = params->tid;
	u16 tid = params->tid;
	u16 ssn = params->ssn;
	u16 ssn = params->ssn;
	struct mt76_txq *mtxq;
	struct mt76_txq *mtxq;
@@ -1120,7 +1120,7 @@ mt7921_get_et_sset_count(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
static void
static void
mt7921_ethtool_worker(void *wi_data, struct ieee80211_sta *sta)
mt7921_ethtool_worker(void *wi_data, struct ieee80211_sta *sta)
{
{
	struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv;
	struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;
	struct mt76_ethtool_worker_info *wi = wi_data;
	struct mt76_ethtool_worker_info *wi = wi_data;


	if (msta->vif->mt76.idx != wi->idx)
	if (msta->vif->mt76.idx != wi->idx)
@@ -1387,7 +1387,7 @@ static void mt7921_sta_statistics(struct ieee80211_hw *hw,
				  struct ieee80211_sta *sta,
				  struct ieee80211_sta *sta,
				  struct station_info *sinfo)
				  struct station_info *sinfo)
{
{
	struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv;
	struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;
	struct rate_info *txrate = &msta->wcid.rate;
	struct rate_info *txrate = &msta->wcid.rate;


	if (!txrate->legacy && !txrate->flags)
	if (!txrate->legacy && !txrate->flags)
@@ -1500,7 +1500,7 @@ static void mt7921_sta_set_decap_offload(struct ieee80211_hw *hw,
					 struct ieee80211_sta *sta,
					 struct ieee80211_sta *sta,
					 bool enabled)
					 bool enabled)
{
{
	struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv;
	struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;
	struct mt7921_dev *dev = mt7921_hw_dev(hw);
	struct mt7921_dev *dev = mt7921_hw_dev(hw);


	mt7921_mutex_acquire(dev);
	mt7921_mutex_acquire(dev);
+4 −4
Original line number Original line Diff line number Diff line
@@ -343,7 +343,7 @@ int mt7921_mcu_uni_tx_ba(struct mt7921_dev *dev,
			 struct ieee80211_ampdu_params *params,
			 struct ieee80211_ampdu_params *params,
			 bool enable)
			 bool enable)
{
{
	struct mt7921_sta *msta = (struct mt7921_sta *)params->sta->drv_priv;
	struct mt792x_sta *msta = (struct mt792x_sta *)params->sta->drv_priv;


	if (enable && !params->amsdu)
	if (enable && !params->amsdu)
		msta->wcid.amsdu = false;
		msta->wcid.amsdu = false;
@@ -357,7 +357,7 @@ int mt7921_mcu_uni_rx_ba(struct mt7921_dev *dev,
			 struct ieee80211_ampdu_params *params,
			 struct ieee80211_ampdu_params *params,
			 bool enable)
			 bool enable)
{
{
	struct mt7921_sta *msta = (struct mt7921_sta *)params->sta->drv_priv;
	struct mt792x_sta *msta = (struct mt792x_sta *)params->sta->drv_priv;


	return mt76_connac_mcu_sta_ba(&dev->mt76, &msta->vif->mt76, params,
	return mt76_connac_mcu_sta_ba(&dev->mt76, &msta->vif->mt76, params,
				      MCU_UNI_CMD(STA_REC_UPDATE),
				      MCU_UNI_CMD(STA_REC_UPDATE),
@@ -933,9 +933,9 @@ int mt7921_mcu_sta_update(struct mt7921_dev *dev, struct ieee80211_sta *sta,
		.offload_fw = true,
		.offload_fw = true,
		.rcpi = to_rcpi(rssi),
		.rcpi = to_rcpi(rssi),
	};
	};
	struct mt7921_sta *msta;
	struct mt792x_sta *msta;


	msta = sta ? (struct mt7921_sta *)sta->drv_priv : NULL;
	msta = sta ? (struct mt792x_sta *)sta->drv_priv : NULL;
	info.wcid = msta ? &msta->wcid : &mvif->sta.wcid;
	info.wcid = msta ? &msta->wcid : &mvif->sta.wcid;
	info.newly = msta ? state != MT76_STA_INFO_STATE_ASSOC : true;
	info.newly = msta ? state != MT76_STA_INFO_STATE_ASSOC : true;


+4 −4
Original line number Original line Diff line number Diff line
@@ -128,7 +128,7 @@ struct mt7921_sdio_intr {
#define to_rcpi(rssi)			(2 * (rssi) + 220)
#define to_rcpi(rssi)			(2 * (rssi) + 220)


struct mt792x_vif;
struct mt792x_vif;
struct mt7921_sta;
struct mt792x_sta;


enum mt7921_txq_id {
enum mt7921_txq_id {
	MT7921_TXQ_BAND0,
	MT7921_TXQ_BAND0,
@@ -145,7 +145,7 @@ enum mt7921_rxq_id {


DECLARE_EWMA(avg_signal, 10, 8)
DECLARE_EWMA(avg_signal, 10, 8)


struct mt7921_sta {
struct mt792x_sta {
	struct mt76_wcid wcid; /* must be first */
	struct mt76_wcid wcid; /* must be first */


	struct mt792x_vif *vif;
	struct mt792x_vif *vif;
@@ -165,8 +165,8 @@ DECLARE_EWMA(rssi, 10, 8);
struct mt792x_vif {
struct mt792x_vif {
	struct mt76_vif mt76; /* must be first */
	struct mt76_vif mt76; /* must be first */


	struct mt7921_sta sta;
	struct mt792x_sta sta;
	struct mt7921_sta *wep_sta;
	struct mt792x_sta *wep_sta;


	struct mt7921_phy *phy;
	struct mt7921_phy *phy;


Loading