Lines Matching refs:dev
14 static ssize_t mt7925_thermal_temp_show(struct device *dev, in mt7925_thermal_temp_show() argument
20 struct mt792x_phy *phy = dev_get_drvdata(dev); in mt7925_thermal_temp_show()
21 struct mt792x_dev *mdev = phy->dev; in mt7925_thermal_temp_show()
54 name = devm_kasprintf(&wiphy->dev, GFP_KERNEL, "mt7925_%s", in mt7925_thermal_init()
59 hwmon = devm_hwmon_device_register_with_groups(&wiphy->dev, name, phy, in mt7925_thermal_init()
65 void mt7925_regd_be_ctrl(struct mt792x_dev *dev, u8 *alpha2) in mt7925_regd_be_ctrl() argument
67 struct mt792x_phy *phy = &dev->phy; in mt7925_regd_be_ctrl()
70 bool old = dev->has_eht, new = true; in mt7925_regd_be_ctrl()
71 u32 mtcl_conf = mt792x_acpi_get_mtcl_conf(&dev->phy, alpha2); in mt7925_regd_be_ctrl()
106 dev->has_eht = new; in mt7925_regd_be_ctrl()
111 mt7925_regd_channel_update(struct wiphy *wiphy, struct mt792x_dev *dev) in mt7925_regd_channel_update() argument
114 (!(dev->phy.clc_chan_conf & BIT(idx)) && (cfreq) >= (sfreq) && (cfreq) <= (efreq)) in mt7925_regd_channel_update()
118 struct mt76_dev *mdev = &dev->mt76; in mt7925_regd_channel_update()
120 u32 mtcl_conf = mt792x_acpi_get_mtcl_conf(&dev->phy, mdev->alpha2); in mt7925_regd_channel_update()
125 dev->phy.clc_chan_conf &= ~MT7925_UNII_59G_IS_VALID; in mt7925_regd_channel_update()
127 dev->phy.clc_chan_conf &= ~MT7925_UNII_6G_IS_VALID; in mt7925_regd_channel_update()
158 void mt7925_regd_update(struct mt792x_dev *dev) in mt7925_regd_update() argument
160 struct mt76_dev *mdev = &dev->mt76; in mt7925_regd_update()
164 if (!dev->regd_change) in mt7925_regd_update()
167 mt7925_mcu_set_clc(dev, mdev->alpha2, dev->country_ie_env); in mt7925_regd_update()
168 mt7925_regd_channel_update(wiphy, dev); in mt7925_regd_update()
171 dev->regd_change = false; in mt7925_regd_update()
180 struct mt792x_dev *dev = mt792x_hw_dev(hw); in mt7925_regd_notifier() local
181 struct mt76_dev *mdev = &dev->mt76; in mt7925_regd_notifier()
182 struct mt76_connac_pm *pm = &dev->pm; in mt7925_regd_notifier()
191 dev->country_ie_env == req->country_ie_env) in mt7925_regd_notifier()
196 dev->country_ie_env = req->country_ie_env; in mt7925_regd_notifier()
197 dev->regd_change = true; in mt7925_regd_notifier()
202 dev->regd_in_progress = true; in mt7925_regd_notifier()
203 mt792x_mutex_acquire(dev); in mt7925_regd_notifier()
204 mt7925_regd_update(dev); in mt7925_regd_notifier()
205 mt792x_mutex_release(dev); in mt7925_regd_notifier()
206 dev->regd_in_progress = false; in mt7925_regd_notifier()
207 wake_up(&dev->wait); in mt7925_regd_notifier()
210 static void mt7925_mac_init_basic_rates(struct mt792x_dev *dev) in mt7925_mac_init_basic_rates() argument
220 mt7925_mac_set_fixed_rate_table(dev, idx, rate); in mt7925_mac_init_basic_rates()
224 int mt7925_mac_init(struct mt792x_dev *dev) in mt7925_mac_init() argument
228 mt76_rmw_field(dev, MT_MDP_DCR1, MT_MDP_DCR1_MAX_RX_LEN, 1536); in mt7925_mac_init()
230 mt76_set(dev, MT_MDP_DCR0, MT_MDP_DCR0_DAMSDU_EN); in mt7925_mac_init()
233 mt7925_mac_wtbl_update(dev, i, in mt7925_mac_init()
236 mt792x_mac_init_band(dev, i); in mt7925_mac_init()
238 mt7925_mac_init_basic_rates(dev); in mt7925_mac_init()
240 memzero_explicit(&dev->mt76.alpha2, sizeof(dev->mt76.alpha2)); in mt7925_mac_init()
246 static int __mt7925_init_hardware(struct mt792x_dev *dev) in __mt7925_init_hardware() argument
250 ret = mt792x_mcu_init(dev); in __mt7925_init_hardware()
254 mt76_eeprom_override(&dev->mphy); in __mt7925_init_hardware()
256 ret = mt7925_mcu_set_eeprom(dev); in __mt7925_init_hardware()
260 ret = mt7925_mac_init(dev); in __mt7925_init_hardware()
268 static int mt7925_init_hardware(struct mt792x_dev *dev) in mt7925_init_hardware() argument
272 set_bit(MT76_STATE_INITIALIZED, &dev->mphy.state); in mt7925_init_hardware()
275 ret = __mt7925_init_hardware(dev); in mt7925_init_hardware()
279 mt792x_init_reset(dev); in mt7925_init_hardware()
283 dev_err(dev->mt76.dev, "hardware init failed\n"); in mt7925_init_hardware()
292 struct mt792x_dev *dev = container_of(work, struct mt792x_dev, in mt7925_init_work() local
296 ret = mt7925_init_hardware(dev); in mt7925_init_work()
300 mt76_set_stream_caps(&dev->mphy, true); in mt7925_init_work()
301 mt7925_set_stream_he_eht_caps(&dev->phy); in mt7925_init_work()
302 mt792x_config_mac_addr_list(dev); in mt7925_init_work()
304 ret = mt7925_init_mlo_caps(&dev->phy); in mt7925_init_work()
306 dev_err(dev->mt76.dev, "MLO init failed\n"); in mt7925_init_work()
310 ret = mt76_register_device(&dev->mt76, true, mt76_rates, in mt7925_init_work()
313 dev_err(dev->mt76.dev, "register device failed\n"); in mt7925_init_work()
318 ret = mt7925_init_debugfs(dev); in mt7925_init_work()
320 dev_err(dev->mt76.dev, "register debugfs failed\n"); in mt7925_init_work()
326 ret = mt7925_thermal_init(&dev->phy); in mt7925_init_work()
328 dev_err(dev->mt76.dev, "thermal init failed\n"); in mt7925_init_work()
333 ret = mt7925_mcu_set_thermal_protect(dev); in mt7925_init_work()
335 dev_err(dev->mt76.dev, "thermal protection enable failed\n"); in mt7925_init_work()
340 dev->hw_init_done = true; in mt7925_init_work()
342 mt7925_mcu_set_deep_sleep(dev, dev->pm.ds_enable); in mt7925_init_work()
345 int mt7925_register_device(struct mt792x_dev *dev) in mt7925_register_device() argument
347 struct ieee80211_hw *hw = mt76_hw(dev); in mt7925_register_device()
350 dev->phy.dev = dev; in mt7925_register_device()
351 dev->phy.mt76 = &dev->mt76.phy; in mt7925_register_device()
352 dev->mt76.phy.priv = &dev->phy; in mt7925_register_device()
353 dev->mt76.tx_worker.fn = mt792x_tx_worker; in mt7925_register_device()
355 INIT_DELAYED_WORK(&dev->pm.ps_work, mt792x_pm_power_save_work); in mt7925_register_device()
356 INIT_DELAYED_WORK(&dev->mlo_pm_work, mt7925_mlo_pm_work); in mt7925_register_device()
357 INIT_WORK(&dev->pm.wake_work, mt792x_pm_wake_work); in mt7925_register_device()
358 spin_lock_init(&dev->pm.wake.lock); in mt7925_register_device()
359 mutex_init(&dev->pm.mutex); in mt7925_register_device()
360 init_waitqueue_head(&dev->pm.wait); in mt7925_register_device()
361 init_waitqueue_head(&dev->wait); in mt7925_register_device()
362 spin_lock_init(&dev->pm.txq_lock); in mt7925_register_device()
363 INIT_DELAYED_WORK(&dev->mphy.mac_work, mt792x_mac_work); in mt7925_register_device()
364 INIT_DELAYED_WORK(&dev->phy.scan_work, mt7925_scan_work); in mt7925_register_device()
365 INIT_DELAYED_WORK(&dev->coredump.work, mt7925_coredump_work); in mt7925_register_device()
367 INIT_WORK(&dev->ipv6_ns_work, mt7925_set_ipv6_ns_work); in mt7925_register_device()
368 skb_queue_head_init(&dev->ipv6_ns_list); in mt7925_register_device()
370 skb_queue_head_init(&dev->phy.scan_event_list); in mt7925_register_device()
371 skb_queue_head_init(&dev->coredump.msg_list); in mt7925_register_device()
373 INIT_WORK(&dev->reset_work, mt7925_mac_reset_work); in mt7925_register_device()
374 INIT_WORK(&dev->init_work, mt7925_init_work); in mt7925_register_device()
376 INIT_WORK(&dev->phy.roc_work, mt7925_roc_work); in mt7925_register_device()
377 timer_setup(&dev->phy.roc_timer, mt792x_roc_timer, 0); in mt7925_register_device()
378 init_waitqueue_head(&dev->phy.roc_wait); in mt7925_register_device()
380 dev->pm.idle_timeout = MT792x_PM_TIMEOUT; in mt7925_register_device()
381 dev->pm.stats.last_wake_event = jiffies; in mt7925_register_device()
382 dev->pm.stats.last_doze_event = jiffies; in mt7925_register_device()
383 if (!mt76_is_usb(&dev->mt76)) { in mt7925_register_device()
384 dev->pm.enable_user = true; in mt7925_register_device()
385 dev->pm.enable = true; in mt7925_register_device()
386 dev->pm.ds_enable_user = true; in mt7925_register_device()
387 dev->pm.ds_enable = true; in mt7925_register_device()
390 if (!mt76_is_mmio(&dev->mt76)) in mt7925_register_device()
393 mt792x_init_acpi_sar(dev); in mt7925_register_device()
395 ret = mt792x_init_wcid(dev); in mt7925_register_device()
404 dev->mphy.sband_2g.sband.ht_cap.cap |= in mt7925_register_device()
407 dev->mphy.sband_2g.sband.ht_cap.ampdu_density = in mt7925_register_device()
409 dev->mphy.sband_5g.sband.ht_cap.cap |= in mt7925_register_device()
412 dev->mphy.sband_2g.sband.ht_cap.ampdu_density = in mt7925_register_device()
414 dev->mphy.sband_5g.sband.vht_cap.cap |= in mt7925_register_device()
420 dev->mphy.sband_5g.sband.vht_cap.cap |= in mt7925_register_device()
424 dev->mphy.hw->wiphy->available_antennas_rx = dev->mphy.chainmask; in mt7925_register_device()
425 dev->mphy.hw->wiphy->available_antennas_tx = dev->mphy.chainmask; in mt7925_register_device()
427 queue_work(system_wq, &dev->init_work); in mt7925_register_device()