Lines Matching refs:dev

10 static void mt76x02_set_beacon_offsets(struct mt76x02_dev *dev)  in mt76x02_set_beacon_offsets()  argument
16 for (i = 0; i < dev->beacon_ops->nslots; i++) { in mt76x02_set_beacon_offsets()
17 val = i * dev->beacon_ops->slot_size; in mt76x02_set_beacon_offsets()
22 mt76_wr(dev, MT_BCN_OFFSET(i), regs[i]); in mt76x02_set_beacon_offsets()
26 mt76x02_write_beacon(struct mt76x02_dev *dev, int offset, struct sk_buff *skb) in mt76x02_write_beacon() argument
28 int beacon_len = dev->beacon_ops->slot_size; in mt76x02_write_beacon()
36 if (mt76_is_usb(&dev->mt76)) { in mt76x02_write_beacon()
40 mt76x02_mac_write_txwi(dev, txwi, skb, NULL, NULL, skb->len); in mt76x02_write_beacon()
45 mt76x02_mac_write_txwi(dev, &txwi, skb, NULL, NULL, skb->len); in mt76x02_write_beacon()
46 mt76_wr_copy(dev, offset, &txwi, sizeof(txwi)); in mt76x02_write_beacon()
50 mt76_wr_copy(dev, offset, skb->data, skb->len); in mt76x02_write_beacon()
54 void mt76x02_mac_set_beacon(struct mt76x02_dev *dev, in mt76x02_mac_set_beacon() argument
57 int bcn_len = dev->beacon_ops->slot_size; in mt76x02_mac_set_beacon()
58 int bcn_addr = MT_BEACON_BASE + (bcn_len * dev->beacon_data_count); in mt76x02_mac_set_beacon()
60 if (!mt76x02_write_beacon(dev, bcn_addr, skb)) { in mt76x02_mac_set_beacon()
61 if (!dev->beacon_data_count) in mt76x02_mac_set_beacon()
62 dev->beacon_hang_check++; in mt76x02_mac_set_beacon()
63 dev->beacon_data_count++; in mt76x02_mac_set_beacon()
69 void mt76x02_mac_set_beacon_enable(struct mt76x02_dev *dev, in mt76x02_mac_set_beacon_enable() argument
73 u8 old_mask = dev->mt76.beacon_mask; in mt76x02_mac_set_beacon_enable()
75 mt76x02_pre_tbtt_enable(dev, false); in mt76x02_mac_set_beacon_enable()
77 if (!dev->mt76.beacon_mask) in mt76x02_mac_set_beacon_enable()
78 dev->tbtt_count = 0; in mt76x02_mac_set_beacon_enable()
80 dev->beacon_hang_check = 0; in mt76x02_mac_set_beacon_enable()
82 dev->mt76.beacon_mask |= BIT(mvif->idx); in mt76x02_mac_set_beacon_enable()
84 dev->mt76.beacon_mask &= ~BIT(mvif->idx); in mt76x02_mac_set_beacon_enable()
87 if (!!old_mask == !!dev->mt76.beacon_mask) in mt76x02_mac_set_beacon_enable()
90 if (dev->mt76.beacon_mask) in mt76x02_mac_set_beacon_enable()
91 mt76_set(dev, MT_BEACON_TIME_CFG, in mt76x02_mac_set_beacon_enable()
96 mt76_clear(dev, MT_BEACON_TIME_CFG, in mt76x02_mac_set_beacon_enable()
100 mt76x02_beacon_enable(dev, !!dev->mt76.beacon_mask); in mt76x02_mac_set_beacon_enable()
103 mt76x02_pre_tbtt_enable(dev, true); in mt76x02_mac_set_beacon_enable()
107 mt76x02_resync_beacon_timer(struct mt76x02_dev *dev) in mt76x02_resync_beacon_timer() argument
109 u32 timer_val = dev->mt76.beacon_int << 4; in mt76x02_resync_beacon_timer()
111 dev->tbtt_count++; in mt76x02_resync_beacon_timer()
117 if (dev->tbtt_count < 63) in mt76x02_resync_beacon_timer()
125 if (dev->tbtt_count == 63) in mt76x02_resync_beacon_timer()
128 mt76_rmw_field(dev, MT_BEACON_TIME_CFG, in mt76x02_resync_beacon_timer()
131 if (dev->tbtt_count >= 64) in mt76x02_resync_beacon_timer()
132 dev->tbtt_count = 0; in mt76x02_resync_beacon_timer()
139 struct mt76x02_dev *dev = (struct mt76x02_dev *)priv; in mt76x02_update_beacon_iter() local
143 if (!(dev->mt76.beacon_mask & BIT(mvif->idx))) in mt76x02_update_beacon_iter()
146 skb = ieee80211_beacon_get(mt76_hw(dev), vif, 0); in mt76x02_update_beacon_iter()
150 mt76x02_mac_set_beacon(dev, skb); in mt76x02_update_beacon_iter()
158 struct mt76x02_dev *dev = data->dev; in mt76x02_add_buffered_bc() local
163 if (!(dev->mt76.beacon_mask & BIT(mvif->idx))) in mt76x02_add_buffered_bc()
166 skb = ieee80211_get_buffered_bc(mt76_hw(dev), vif); in mt76x02_add_buffered_bc()
179 mt76x02_enqueue_buffered_bc(struct mt76x02_dev *dev, in mt76x02_enqueue_buffered_bc() argument
185 data->dev = dev; in mt76x02_enqueue_buffered_bc()
190 ieee80211_iterate_active_interfaces_atomic(mt76_hw(dev), in mt76x02_enqueue_buffered_bc()
207 void mt76x02_init_beacon_config(struct mt76x02_dev *dev) in mt76x02_init_beacon_config() argument
209 mt76_clear(dev, MT_BEACON_TIME_CFG, (MT_BEACON_TIME_CFG_TIMER_EN | in mt76x02_init_beacon_config()
212 mt76_set(dev, MT_BEACON_TIME_CFG, MT_BEACON_TIME_CFG_SYNC_MODE); in mt76x02_init_beacon_config()
213 mt76_wr(dev, MT_BCN_BYPASS_MASK, 0xffff); in mt76x02_init_beacon_config()
214 mt76x02_set_beacon_offsets(dev); in mt76x02_init_beacon_config()