Subject: Re: [PATCH 1/2] 8139too: Make PIO/MMIO a modparam

From: Dave Jones <[email-masked]>
Date: Tue, 15 Jul 2008 18:36:26 -0400

On Tue, Jul 15, 2008 at 06:18:30PM -0400, Jeff Garzik wrote:
 
 > > Make PIO/MMIO a runtime thing via a module parameter.
 > > This is needed to support devices that only work with PIO
 > > without penalising devices that work fine with MMIO in
 > > distro kernels.
 > > 
 > > Signed-off-by: Dave Jones <[email-masked]>
 > 
 > Looks great overall.
 > 
 > Minor nits:
 > 
 > * need module param text description

oops. will fix.
 
 > * [optional] if code not too ugly, change mod param description based on 
 > CONFIG_8139TOO_PIO to indicate the currently compiled default

Not sure of a non-icky way to do this other than ifdefs.
The best I could come up with is.

#ifdef CONFIG_8139TOO_PIO
MODULE_PARM_DESC(use_io, "PIO/MMIO switch.  0=MMIO 1=PIO default=PIO"); 
#else
MODULE_PARM_DESC(use_io, "PIO/MMIO switch.  0=MMIO 1=PIO default=MMIO"); 
#endif

palatable?

 > * [optional] would prefer CONFIG_8139TOO_PIO be handled at compile time, 
 > by changing the initialized value

This bit should be taken care of in rtl8139_init_module() at the bottom..

+       /* enable PIO instead of MMIO, if CONFIG_8139TOO_PIO is selected */
+#ifdef CONFIG_8139TOO_PIO
+       use_io = 1;
+#endif

 > * [extra project] would be highly useful for MMIO to fall back to PIO, 
 > and vice versa, should any resource be unavailable.  Sometimes, mainly 
 > with MMIO and broken/weird BIOSen, only the PIO PCI BARs will be filled 
 > in with useful info.

Sounds do-able. I'll add it to my rainy-day project list.

	Dave

-- 
http://www.codemonkey.org.uk