Lines Matching refs:dev

14 u32 mt792xu_rr(struct mt76_dev *dev, u32 addr)  in mt792xu_rr()  argument
18 mutex_lock(&dev->usb.usb_ctrl_mtx); in mt792xu_rr()
19 ret = ___mt76u_rr(dev, MT_VEND_READ_EXT, in mt792xu_rr()
21 mutex_unlock(&dev->usb.usb_ctrl_mtx); in mt792xu_rr()
27 void mt792xu_wr(struct mt76_dev *dev, u32 addr, u32 val) in mt792xu_wr() argument
29 mutex_lock(&dev->usb.usb_ctrl_mtx); in mt792xu_wr()
30 ___mt76u_wr(dev, MT_VEND_WRITE_EXT, in mt792xu_wr()
32 mutex_unlock(&dev->usb.usb_ctrl_mtx); in mt792xu_wr()
36 u32 mt792xu_rmw(struct mt76_dev *dev, u32 addr, u32 mask, u32 val) in mt792xu_rmw() argument
38 mutex_lock(&dev->usb.usb_ctrl_mtx); in mt792xu_rmw()
39 val |= ___mt76u_rr(dev, MT_VEND_READ_EXT, in mt792xu_rmw()
41 ___mt76u_wr(dev, MT_VEND_WRITE_EXT, in mt792xu_rmw()
43 mutex_unlock(&dev->usb.usb_ctrl_mtx); in mt792xu_rmw()
49 void mt792xu_copy(struct mt76_dev *dev, u32 offset, const void *data, int len) in mt792xu_copy() argument
51 struct mt76_usb *usb = &dev->usb; in mt792xu_copy()
61 ret = __mt76u_vendor_request(dev, MT_VEND_WRITE_EXT, in mt792xu_copy()
74 int mt792xu_mcu_power_on(struct mt792x_dev *dev) in mt792xu_mcu_power_on() argument
78 ret = mt76u_vendor_request(&dev->mt76, MT_VEND_POWER_ON, in mt792xu_mcu_power_on()
84 if (!mt76_poll_msec(dev, MT_CONN_ON_MISC, MT_TOP_MISC2_FW_PWR_ON, in mt792xu_mcu_power_on()
86 dev_err(dev->mt76.dev, "Timeout for power on\n"); in mt792xu_mcu_power_on()
94 static void mt792xu_cleanup(struct mt792x_dev *dev) in mt792xu_cleanup() argument
96 clear_bit(MT76_STATE_INITIALIZED, &dev->mphy.state); in mt792xu_cleanup()
97 mt792xu_wfsys_reset(dev); in mt792xu_cleanup()
98 skb_queue_purge(&dev->mt76.mcu.res_q); in mt792xu_cleanup()
99 mt76u_queues_deinit(&dev->mt76); in mt792xu_cleanup()
102 static u32 mt792xu_uhw_rr(struct mt76_dev *dev, u32 addr) in mt792xu_uhw_rr() argument
106 mutex_lock(&dev->usb.usb_ctrl_mtx); in mt792xu_uhw_rr()
107 ret = ___mt76u_rr(dev, MT_VEND_DEV_MODE, in mt792xu_uhw_rr()
109 mutex_unlock(&dev->usb.usb_ctrl_mtx); in mt792xu_uhw_rr()
114 static void mt792xu_uhw_wr(struct mt76_dev *dev, u32 addr, u32 val) in mt792xu_uhw_wr() argument
116 mutex_lock(&dev->usb.usb_ctrl_mtx); in mt792xu_uhw_wr()
117 ___mt76u_wr(dev, MT_VEND_WRITE, in mt792xu_uhw_wr()
119 mutex_unlock(&dev->usb.usb_ctrl_mtx); in mt792xu_uhw_wr()
122 static void mt792xu_dma_prefetch(struct mt792x_dev *dev) in mt792xu_dma_prefetch() argument
124 mt76_rmw(dev, MT_UWFDMA0_TX_RING_EXT_CTRL(0), in mt792xu_dma_prefetch()
126 mt76_rmw(dev, MT_UWFDMA0_TX_RING_EXT_CTRL(0), in mt792xu_dma_prefetch()
129 mt76_rmw(dev, MT_UWFDMA0_TX_RING_EXT_CTRL(1), in mt792xu_dma_prefetch()
131 mt76_rmw(dev, MT_UWFDMA0_TX_RING_EXT_CTRL(1), in mt792xu_dma_prefetch()
134 mt76_rmw(dev, MT_UWFDMA0_TX_RING_EXT_CTRL(2), in mt792xu_dma_prefetch()
136 mt76_rmw(dev, MT_UWFDMA0_TX_RING_EXT_CTRL(2), in mt792xu_dma_prefetch()
139 mt76_rmw(dev, MT_UWFDMA0_TX_RING_EXT_CTRL(3), in mt792xu_dma_prefetch()
141 mt76_rmw(dev, MT_UWFDMA0_TX_RING_EXT_CTRL(3), in mt792xu_dma_prefetch()
144 mt76_rmw(dev, MT_UWFDMA0_TX_RING_EXT_CTRL(4), in mt792xu_dma_prefetch()
146 mt76_rmw(dev, MT_UWFDMA0_TX_RING_EXT_CTRL(4), in mt792xu_dma_prefetch()
149 mt76_rmw(dev, MT_UWFDMA0_TX_RING_EXT_CTRL(16), in mt792xu_dma_prefetch()
151 mt76_rmw(dev, MT_UWFDMA0_TX_RING_EXT_CTRL(16), in mt792xu_dma_prefetch()
154 mt76_rmw(dev, MT_UWFDMA0_TX_RING_EXT_CTRL(17), in mt792xu_dma_prefetch()
156 mt76_rmw(dev, MT_UWFDMA0_TX_RING_EXT_CTRL(17), in mt792xu_dma_prefetch()
160 static void mt792xu_wfdma_init(struct mt792x_dev *dev) in mt792xu_wfdma_init() argument
162 mt792xu_dma_prefetch(dev); in mt792xu_wfdma_init()
164 mt76_clear(dev, MT_UWFDMA0_GLO_CFG, MT_WFDMA0_GLO_CFG_OMIT_RX_INFO); in mt792xu_wfdma_init()
165 mt76_set(dev, MT_UWFDMA0_GLO_CFG, in mt792xu_wfdma_init()
173 mt76_clear(dev, MT_UWFDMA0_GLO_CFG_EXT0, in mt792xu_wfdma_init()
175 mt76_set(dev, MT_DMASHDL_SW_CONTROL, MT_DMASHDL_DMASHDL_BYPASS); in mt792xu_wfdma_init()
177 mt76_set(dev, MT_WFDMA_DUMMY_CR, MT_WFDMA_NEED_REINIT); in mt792xu_wfdma_init()
180 static int mt792xu_dma_rx_evt_ep4(struct mt792x_dev *dev) in mt792xu_dma_rx_evt_ep4() argument
182 if (!mt76_poll(dev, MT_UWFDMA0_GLO_CFG, in mt792xu_dma_rx_evt_ep4()
186 mt76_clear(dev, MT_UWFDMA0_GLO_CFG, MT_WFDMA0_GLO_CFG_RX_DMA_EN); in mt792xu_dma_rx_evt_ep4()
187 mt76_set(dev, MT_WFDMA_HOST_CONFIG, in mt792xu_dma_rx_evt_ep4()
189 mt76_set(dev, MT_UWFDMA0_GLO_CFG, MT_WFDMA0_GLO_CFG_RX_DMA_EN); in mt792xu_dma_rx_evt_ep4()
194 static void mt792xu_epctl_rst_opt(struct mt792x_dev *dev, bool reset) in mt792xu_epctl_rst_opt() argument
203 val = mt792xu_uhw_rr(&dev->mt76, MT_SSUSB_EPCTL_CSR_EP_RST_OPT); in mt792xu_epctl_rst_opt()
208 mt792xu_uhw_wr(&dev->mt76, MT_SSUSB_EPCTL_CSR_EP_RST_OPT, val); in mt792xu_epctl_rst_opt()
211 int mt792xu_dma_init(struct mt792x_dev *dev, bool resume) in mt792xu_dma_init() argument
215 mt792xu_wfdma_init(dev); in mt792xu_dma_init()
217 mt76_clear(dev, MT_UDMA_WLCFG_0, MT_WL_RX_FLUSH); in mt792xu_dma_init()
219 mt76_set(dev, MT_UDMA_WLCFG_0, in mt792xu_dma_init()
222 mt76_clear(dev, MT_UDMA_WLCFG_0, in mt792xu_dma_init()
224 mt76_clear(dev, MT_UDMA_WLCFG_1, MT_WL_RX_AGG_PKT_LMT); in mt792xu_dma_init()
229 err = mt792xu_dma_rx_evt_ep4(dev); in mt792xu_dma_init()
233 mt792xu_epctl_rst_opt(dev, false); in mt792xu_dma_init()
239 int mt792xu_wfsys_reset(struct mt792x_dev *dev) in mt792xu_wfsys_reset() argument
244 mt792xu_epctl_rst_opt(dev, false); in mt792xu_wfsys_reset()
246 val = mt792xu_uhw_rr(&dev->mt76, MT_CBTOP_RGU_WF_SUBSYS_RST); in mt792xu_wfsys_reset()
248 mt792xu_uhw_wr(&dev->mt76, MT_CBTOP_RGU_WF_SUBSYS_RST, val); in mt792xu_wfsys_reset()
252 val = mt792xu_uhw_rr(&dev->mt76, MT_CBTOP_RGU_WF_SUBSYS_RST); in mt792xu_wfsys_reset()
254 mt792xu_uhw_wr(&dev->mt76, MT_CBTOP_RGU_WF_SUBSYS_RST, val); in mt792xu_wfsys_reset()
256 mt792xu_uhw_wr(&dev->mt76, MT_UDMA_CONN_INFRA_STATUS_SEL, 0); in mt792xu_wfsys_reset()
258 val = mt792xu_uhw_rr(&dev->mt76, MT_UDMA_CONN_INFRA_STATUS); in mt792xu_wfsys_reset()
272 int mt792xu_init_reset(struct mt792x_dev *dev) in mt792xu_init_reset() argument
274 set_bit(MT76_RESET, &dev->mphy.state); in mt792xu_init_reset()
276 wake_up(&dev->mt76.mcu.wait); in mt792xu_init_reset()
277 skb_queue_purge(&dev->mt76.mcu.res_q); in mt792xu_init_reset()
279 mt76u_stop_rx(&dev->mt76); in mt792xu_init_reset()
280 mt76u_stop_tx(&dev->mt76); in mt792xu_init_reset()
282 mt792xu_wfsys_reset(dev); in mt792xu_init_reset()
284 clear_bit(MT76_RESET, &dev->mphy.state); in mt792xu_init_reset()
286 return mt76u_resume_rx(&dev->mt76); in mt792xu_init_reset()
292 struct mt792x_dev *dev = usb_get_intfdata(usb_intf); in mt792xu_disconnect() local
294 cancel_work_sync(&dev->init_work); in mt792xu_disconnect()
295 if (!test_bit(MT76_STATE_INITIALIZED, &dev->mphy.state)) in mt792xu_disconnect()
298 mt76_unregister_device(&dev->mt76); in mt792xu_disconnect()
299 mt792xu_cleanup(dev); in mt792xu_disconnect()
304 mt76_free_device(&dev->mt76); in mt792xu_disconnect()