Re: [PATCH 1/2] 8139too: Make PIO/MMIO a modparam
From: Jeff Garzik <hidden>
Date: 2008-07-15 22:55:48
Dave Jones wrote:
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 [off-list ref] > > 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?
best you can do AFAIK, so yes
> * [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
Right, I was saying I prefer simply to set the initialized value appropriately, and avoid the extra code dollup during module load.
> * [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.
Thanks :) A few users out in the wild will definitely thank you. Jeff