diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2011-07-06 19:41:55 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-07-08 19:11:21 +0400 |
commit | 6ff1e5cf70abbe04b261b4ccd9696e1ab6785086 (patch) | |
tree | e3830a4dbe6b98995a25dcc7b311c112828be602 /drivers/net/wireless/b43 | |
parent | 74abacb6b5b91141eb8963faa2f22b3f1bd7c68d (diff) | |
download | linux-6ff1e5cf70abbe04b261b4ccd9696e1ab6785086.tar.xz |
b43: change selecting ucode for newer cores
Older cores had unique PHY. This is not true anymore for newer ones.
For example core rev 16 can be LP, SSLPN or N (PHY).
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/b43')
-rw-r--r-- | drivers/net/wireless/b43/main.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c index f0b9dd14ea2b..cddc5a87df7c 100644 --- a/drivers/net/wireless/b43/main.c +++ b/drivers/net/wireless/b43/main.c @@ -2160,20 +2160,28 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx) int err; /* Get microcode */ - if ((rev >= 5) && (rev <= 10)) + if ((rev >= 5) && (rev <= 10)) { filename = "ucode5"; - else if ((rev >= 11) && (rev <= 12)) + } else if ((rev >= 11) && (rev <= 12)) { filename = "ucode11"; - else if (rev == 13) + } else if (rev == 13) { filename = "ucode13"; - else if (rev == 14) + } else if (rev == 14) { filename = "ucode14"; - else if (rev == 15) + } else if (rev == 15) { filename = "ucode15"; - else if ((rev >= 16) && (rev <= 20)) - filename = "ucode16_mimo"; - else - goto err_no_ucode; + } else { + switch (dev->phy.type) { + case B43_PHYTYPE_N: + if (rev >= 16) + filename = "ucode16_mimo"; + else + goto err_no_ucode; + break; + default: + goto err_no_ucode; + } + } err = b43_do_request_fw(ctx, filename, &fw->ucode); if (err) goto err_load; |