Lines Matching refs:dev

15 mt76pci_load_rom_patch(struct mt76x02_dev *dev)  in mt76pci_load_rom_patch()  argument
19 bool rom_protect = !is_mt7612(dev); in mt76pci_load_rom_patch()
24 if (rom_protect && !mt76_poll(dev, MT_MCU_SEMAPHORE_03, 1, 1, 600)) { in mt76pci_load_rom_patch()
25 dev_err(dev->mt76.dev, in mt76pci_load_rom_patch()
30 if (mt76xx_rev(dev) >= MT76XX_REV_E3) { in mt76pci_load_rom_patch()
38 if (rom_protect && (mt76_rr(dev, patch_reg) & patch_mask)) { in mt76pci_load_rom_patch()
39 dev_info(dev->mt76.dev, "ROM patch already applied\n"); in mt76pci_load_rom_patch()
43 ret = request_firmware(&fw, MT7662_ROM_PATCH, dev->mt76.dev); in mt76pci_load_rom_patch()
49 dev_err(dev->mt76.dev, "Failed to load firmware\n"); in mt76pci_load_rom_patch()
54 dev_info(dev->mt76.dev, "ROM patch build: %.15s\n", hdr->build_time); in mt76pci_load_rom_patch()
56 mt76_wr(dev, MT_MCU_PCIE_REMAP_BASE4, MT_MCU_ROM_PATCH_OFFSET); in mt76pci_load_rom_patch()
60 mt76_wr_copy(dev, MT_MCU_ROM_PATCH_ADDR, cur, len); in mt76pci_load_rom_patch()
62 mt76_wr(dev, MT_MCU_PCIE_REMAP_BASE4, 0); in mt76pci_load_rom_patch()
65 mt76_wr(dev, MT_MCU_INT_LEVEL, 4); in mt76pci_load_rom_patch()
67 if (!mt76_poll_msec(dev, patch_reg, patch_mask, patch_mask, 2000)) { in mt76pci_load_rom_patch()
68 dev_err(dev->mt76.dev, "Failed to load ROM patch\n"); in mt76pci_load_rom_patch()
75 mt76_wr(dev, MT_MCU_SEMAPHORE_03, 1); in mt76pci_load_rom_patch()
81 mt76pci_load_firmware(struct mt76x02_dev *dev) in mt76pci_load_firmware() argument
89 ret = request_firmware(&fw, MT7662_FIRMWARE, dev->mt76.dev); in mt76pci_load_firmware()
106 dev_info(dev->mt76.dev, "Firmware Version: %d.%d.%02d\n", in mt76pci_load_firmware()
110 dev_info(dev->mt76.dev, "Build: %x\n", val); in mt76pci_load_firmware()
111 dev_info(dev->mt76.dev, "Build Time: %.16s\n", hdr->build_time); in mt76pci_load_firmware()
116 mt76_wr(dev, MT_MCU_PCIE_REMAP_BASE4, MT_MCU_ILM_OFFSET); in mt76pci_load_firmware()
117 mt76_wr_copy(dev, MT_MCU_ILM_ADDR, cur, len); in mt76pci_load_firmware()
122 if (mt76xx_rev(dev) >= MT76XX_REV_E3) in mt76pci_load_firmware()
127 mt76_wr(dev, MT_MCU_PCIE_REMAP_BASE4, MT_MCU_DLM_OFFSET); in mt76pci_load_firmware()
128 mt76_wr_copy(dev, offset, cur, len); in mt76pci_load_firmware()
130 mt76_wr(dev, MT_MCU_PCIE_REMAP_BASE4, 0); in mt76pci_load_firmware()
132 val = mt76x02_eeprom_get(dev, MT_EE_NIC_CONF_2); in mt76pci_load_firmware()
134 mt76_set(dev, MT_MCU_COM_REG0, BIT(30)); in mt76pci_load_firmware()
137 mt76_wr(dev, MT_MCU_INT_LEVEL, 2); in mt76pci_load_firmware()
138 if (!mt76_poll_msec(dev, MT_MCU_COM_REG0, 1, 1, 200)) { in mt76pci_load_firmware()
139 dev_err(dev->mt76.dev, "Firmware failed to start\n"); in mt76pci_load_firmware()
144 mt76x02_set_ethtool_fwver(dev, hdr); in mt76pci_load_firmware()
145 dev_info(dev->mt76.dev, "Firmware running!\n"); in mt76pci_load_firmware()
152 dev_err(dev->mt76.dev, "Invalid firmware\n"); in mt76pci_load_firmware()
160 struct mt76x02_dev *dev; in mt76pci_mcu_restart() local
163 dev = container_of(mdev, struct mt76x02_dev, mt76); in mt76pci_mcu_restart()
165 mt76x02_mcu_cleanup(dev); in mt76pci_mcu_restart()
166 mt76x2_mac_reset(dev, true); in mt76pci_mcu_restart()
168 ret = mt76pci_load_firmware(dev); in mt76pci_mcu_restart()
172 mt76_wr(dev, MT_WPDMA_RST_IDX, ~0); in mt76pci_mcu_restart()
177 int mt76x2_mcu_init(struct mt76x02_dev *dev) in mt76x2_mcu_init() argument
186 dev->mt76.mcu_ops = &mt76x2_mcu_ops; in mt76x2_mcu_init()
188 ret = mt76pci_load_rom_patch(dev); in mt76x2_mcu_init()
192 ret = mt76pci_load_firmware(dev); in mt76x2_mcu_init()
196 mt76x02_mcu_function_select(dev, Q_SELECT, 1); in mt76x2_mcu_init()