From 009aab8f44f9c599ff7a049ec726842f1251d649 Mon Sep 17 00:00:00 2001 From: Holger Schurig Date: Thu, 5 Jun 2008 13:08:35 +0200 Subject: [PATCH] --- yaml --- r: 102922 b: refs/heads/master c: 4c55523e600ee762c2b00b1ade4c5a82b57d07aa h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/libertas/if_cs.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index bfe13a1ffd6a..d2d9fa2ecd42 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5314325692239a977a58fc796b4f4fb783643012 +refs/heads/master: 4c55523e600ee762c2b00b1ade4c5a82b57d07aa diff --git a/trunk/drivers/net/wireless/libertas/if_cs.c b/trunk/drivers/net/wireless/libertas/if_cs.c index 6870276259e9..9d6ca7fe9539 100644 --- a/trunk/drivers/net/wireless/libertas/if_cs.c +++ b/trunk/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 #define IF_CS_SCRATCH_BOOT_OK 0x00 #define IF_CS_SCRATCH_HELPER_OK 0x5a +/* + * Used to detect ancient chips: + */ +#define IF_CS_PRODUCT_ID 0x0000001C +#define IF_CS_CF8385_B1_REV 0x12 + /********************************************************************/ /* I/O and interrupt handling */ @@ -861,6 +867,12 @@ static int if_cs_probe(struct pcmcia_device *p_dev) p_dev->irq.AssignedIRQ, p_dev->io.BasePort1, p_dev->io.BasePort1 + p_dev->io.NumPorts1 - 1); + /* Check if we have a current silicon */ + if (if_cs_read8(card, IF_CS_PRODUCT_ID) < IF_CS_CF8385_B1_REV) { + lbs_pr_err("old chips like 8385 rev B1 aren't supported\n"); + ret = -ENODEV; + goto out2; + } /* Load the firmware early, before calling into libertas.ko */ ret = if_cs_prog_helper(card);