Skip to contentSkip to conversation

patch for PLIP and slow, interrupt-less computers

PATCH W. Michael Petullo 2 participants 2 messages Apr 14, 2001

lore
Share & tools
lore
#0 lore raw

I have written a quick patch for the PLIP driver contained in the 2.4.3 version of the Linux kernel. This patch allows one to use PLIP with computers which have an interrupt-less parallel port and a slow processor. The stock PLIP driver constantly times out on my 80486-based laptop. This patch adds the ability to specify two key values, trigger_wait and nibble_wait, when loading the PLIP driver.

Using this patch and adding the following entry to the modules.conf file on the computers on either side of my PLIP link makes the connection work nicely:

# Because my laptop is so slow.
options plip trigger_wait=50000 nibble_wait=300000

Here is the patch:

================================================================================

tmp/linux/drivers/net/plip.c renamed from plip.c +6 -4
@@ -137,10 +137,10 @@
 #define PLIP_DELAY_UNIT		   1
 
 /* Connection time out = PLIP_TRIGGER_WAIT * PLIP_DELAY_UNIT usec */
-#define PLIP_TRIGGER_WAIT	 500
+static unsigned long trigger_wait = 500;
 
 /* Nibble time out = PLIP_NIBBLE_WAIT * PLIP_DELAY_UNIT usec */
-#define PLIP_NIBBLE_WAIT        3000
+static unsigned long nibble_wait = 3000;
 
 /* Bottom halves */
 static void plip_kick_bh(struct net_device *dev);
@@ -345,8 +345,8 @@
 	nl->port_owner = 0;
 
 	/* Initialize constants */
-	nl->trigger	= PLIP_TRIGGER_WAIT;
-	nl->nibble	= PLIP_NIBBLE_WAIT;
+	nl->trigger	= trigger_wait;
+	nl->nibble	= nibble_wait;
 
 	/* Initialize task queue structures */
 	INIT_LIST_HEAD(&nl->immediate.list);
@@ -1297,6 +1297,8 @@
 
 MODULE_PARM(parport, "1-" __MODULE_STRING(PLIP_MAX) "i");
 MODULE_PARM(timid, "1i");
+MODULE_PARM(trigger_wait, "i");
+MODULE_PARM(nibble_wait, "i");
 
 static struct net_device *dev_plip[PLIP_MAX] = { NULL, };
 

================================================================================

Signature · 3 lines
W. Michael Petullo

:wq
#1 lore raw

"W. Michael Petullo" <[email protected]> writes:

|> Here is the patch:
|> 
|> ================================================================================
|> 
|> --- plip.c	Tue Feb 13 16:15:05 2001
|> +++ /tmp/linux/drivers/net/plip.c	Thu Apr 12 16:07:07 2001
|> @@ -137,10 +137,10 @@
|>  #define PLIP_DELAY_UNIT		   1
|>  
|>  /* Connection time out = PLIP_TRIGGER_WAIT * PLIP_DELAY_UNIT usec */
|> -#define PLIP_TRIGGER_WAIT	 500
|> +static unsigned long trigger_wait = 500;
           ^^^^^^^^^^^^^
|>  
|>  /* Nibble time out = PLIP_NIBBLE_WAIT * PLIP_DELAY_UNIT usec */
|> -#define PLIP_NIBBLE_WAIT        3000
|> +static unsigned long nibble_wait = 3000;
           ^^^^^^^^^^^^^
|> @@ -1297,6 +1297,8 @@
|>  
|>  MODULE_PARM(parport, "1-" __MODULE_STRING(PLIP_MAX) "i");
|>  MODULE_PARM(timid, "1i");
|> +MODULE_PARM(trigger_wait, "i");
|> +MODULE_PARM(nibble_wait, "i");
                             ^^^

The types don't match.

Andreas.

Signature · 5 lines
Andreas Schwab                                  "And now for something
SuSE Labs                                        completely different."
[email protected]
SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5