Search Linux Wireless

[PATCH] libertas: fixes for slow hardware

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This fixes issues where either the CF module is slow (and needs 
more time while downloading the firmware) or where the host 
computer is slow, so that some card interrupts arrive while
the system was still downloading the firmware.

Signed-off-by: Vitaly V. Bursov <vitalyvb@xxxxxxx>
Signed-off-by: Holger Schurig <hs4233@xxxxxxxxxxxxxxxxxxxx>

-- 

Index: libertas-2.6/drivers/net/wireless/libertas/if_cs.c
===================================================================
--- libertas-2.6.orig/drivers/net/wireless/libertas/if_cs.c	
2007-10-01 14:05:53.000000000 +0200
+++ libertas-2.6/drivers/net/wireless/libertas/if_cs.c	2007-10-01 
14:06:43.000000000 +0200
@@ -148,11 +148,11 @@ static int if_cs_poll_while_fw_download(
 {
 	int i;
 
-	for (i = 0; i < 500; i++) {
+	for (i = 0; i < 1000; i++) {
 		u8 val = if_cs_read8(card, addr);
 		if (val == reg)
 			return i;
-		udelay(100);
+		udelay(500);
 	}
 	return -ETIME;
 }
@@ -405,6 +405,7 @@ static struct sk_buff *if_cs_receive_dat
 	skb = dev_alloc_skb(MRVDRV_ETH_RX_PACKET_BUFFER_SIZE + 2);
 	if (!skb)
 		goto out;
+	skb->dev = priv->dev;
 	skb_put(skb, len);
 	skb_reserve(skb, 2);/* 16 byte align */
 	data = skb->data;
@@ -878,6 +879,9 @@ static int if_cs_probe(struct pcmcia_dev
 		goto out3;
 	}
 
+	/* Clear any interrupt cause that happend while sending
+	 * firmware/initializing card */
+	if_cs_write16(card, IF_CS_C_INT_CAUSE, IF_CS_C_IC_MASK);
 	if_cs_enable_ints(card);
 
 	/* And finally bring the card up */
-
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux