diff options
author | Holger Schurig <hs4233@mail.mn-solutions.de> | 2008-06-05 07:08:35 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-06-14 12:18:03 -0400 |
commit | 4c55523e600ee762c2b00b1ade4c5a82b57d07aa (patch) | |
tree | 186c6a2315b7381b0fbc63b4bcece82a3b57f601 /drivers | |
parent | 5314325692239a977a58fc796b4f4fb783643012 (diff) |
libertas: check for old, unsupported hardware
Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/libertas/if_cs.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c index 6870276259e9..9d6ca7fe9539 100644 --- a/drivers/net/wireless/libertas/if_cs.c +++ b/drivers/net/wireless/libertas/if_cs.c | |||
@@ -268,6 +268,12 @@ static int if_cs_poll_while_fw_download(struct if_cs_card *card, uint addr, u8 r | |||
268 | #define IF_CS_SCRATCH_BOOT_OK 0x00 | 268 | #define IF_CS_SCRATCH_BOOT_OK 0x00 |
269 | #define IF_CS_SCRATCH_HELPER_OK 0x5a | 269 | #define IF_CS_SCRATCH_HELPER_OK 0x5a |
270 | 270 | ||
271 | /* | ||
272 | * Used to detect ancient chips: | ||
273 | */ | ||
274 | #define IF_CS_PRODUCT_ID 0x0000001C | ||
275 | #define IF_CS_CF8385_B1_REV 0x12 | ||
276 | |||
271 | 277 | ||
272 | /********************************************************************/ | 278 | /********************************************************************/ |
273 | /* I/O and interrupt handling */ | 279 | /* I/O and interrupt handling */ |
@@ -861,6 +867,12 @@ static int if_cs_probe(struct pcmcia_device *p_dev) | |||
861 | p_dev->irq.AssignedIRQ, p_dev->io.BasePort1, | 867 | p_dev->irq.AssignedIRQ, p_dev->io.BasePort1, |
862 | p_dev->io.BasePort1 + p_dev->io.NumPorts1 - 1); | 868 | p_dev->io.BasePort1 + p_dev->io.NumPorts1 - 1); |
863 | 869 | ||
870 | /* Check if we have a current silicon */ | ||
871 | if (if_cs_read8(card, IF_CS_PRODUCT_ID) < IF_CS_CF8385_B1_REV) { | ||
872 | lbs_pr_err("old chips like 8385 rev B1 aren't supported\n"); | ||
873 | ret = -ENODEV; | ||
874 | goto out2; | ||
875 | } | ||
864 | 876 | ||
865 | /* Load the firmware early, before calling into libertas.ko */ | 877 | /* Load the firmware early, before calling into libertas.ko */ |
866 | ret = if_cs_prog_helper(card); | 878 | ret = if_cs_prog_helper(card); |