| /* |
| * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> |
| * Copyright (C) 2015 Jakub Kicinski <kubakici@wp.pl> |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 |
| * as published by the Free Software Foundation |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| */ |
| |
| #include "mt76x0.h" |
| |
| int mt76x0_wait_asic_ready(struct mt76x0_dev *dev) |
| { |
| int i = 100; |
| u32 val; |
| |
| do { |
| if (test_bit(MT76_REMOVED, &dev->mt76.state)) |
| return -EIO; |
| |
| val = mt76_rr(dev, MT_MAC_CSR0); |
| if (val && ~val) |
| return 0; |
| |
| udelay(10); |
| } while (i--); |
| |
| return -EIO; |
| } |