aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>2018-03-15 13:24:20 -0400
committerKalle Valo <kvalo@codeaurora.org>2018-03-27 05:10:02 -0400
commitdb2ad7c25a9a01aaa53f8a74ff8ce6f35e61179f (patch)
tree4e404f112508bcd48f315185cfac777180698ad0
parentb1c2d0f2507bf56d9f4dbd46dc4b99240fbd187c (diff)
mt76: use mt76_poll_msec routine in mt76pci_load_firmware()
Use mt76_poll_msec() in mt76pci_load_firmware to check if the firmware has been started instead of explicitly poll MCU running register Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt76x2_mcu.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_mcu.c b/drivers/net/wireless/mediatek/mt76/mt76x2_mcu.c
index 15820b11f9db..dfd36d736b06 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2_mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2_mcu.c
@@ -187,7 +187,7 @@ mt76pci_load_firmware(struct mt76x2_dev *dev)
187{ 187{
188 const struct firmware *fw; 188 const struct firmware *fw;
189 const struct mt76x2_fw_header *hdr; 189 const struct mt76x2_fw_header *hdr;
190 int i, len, ret; 190 int len, ret;
191 __le32 *cur; 191 __le32 *cur;
192 u32 offset, val; 192 u32 offset, val;
193 193
@@ -240,16 +240,7 @@ mt76pci_load_firmware(struct mt76x2_dev *dev)
240 240
241 /* trigger firmware */ 241 /* trigger firmware */
242 mt76_wr(dev, MT_MCU_INT_LEVEL, 2); 242 mt76_wr(dev, MT_MCU_INT_LEVEL, 2);
243 for (i = 200; i > 0; i--) { 243 if (!mt76_poll_msec(dev, MT_MCU_COM_REG0, 1, 1, 200)) {
244 val = mt76_rr(dev, MT_MCU_COM_REG0);
245
246 if (val & 1)
247 break;
248
249 msleep(10);
250 }
251
252 if (!i) {
253 dev_err(dev->mt76.dev, "Firmware failed to start\n"); 244 dev_err(dev->mt76.dev, "Firmware failed to start\n");
254 release_firmware(fw); 245 release_firmware(fw);
255 return -ETIMEDOUT; 246 return -ETIMEDOUT;