Re: [patch 2.6.13 2/2] 3c59x: add option for using memory-mappedPCI I/O resources

From: Andrew Morton
Date: Tue Sep 06 2005 - 18:16:30 EST


"John W. Linville" <linville@xxxxxxxxxxxxx> wrote:
>
> On Tue, Sep 06, 2005 at 03:15:46PM -0700, Andrew Morton wrote:
> > "John W. Linville" <linville@xxxxxxxxxxxxx> wrote:
> > >
> > > I fully intend to have have a flag in the private data set based on
> > > the PCI ID when I accumulate some data on which devices support this
> > > and which don't. So far I've only got a short list... Do you think
> > > such a flag should be based on which ones work, or which ones break?
> >
> > The ones which are known to work.
> >
> > Bear in mind that this is an old, messy and relatively stable driver which
> > handles a huge number of different NICs. Caution is the rule here.
>
> I definitely agree. That is another part of why I defaulted to "use_mmio=0".
>
> I'll post PCI ID based patches as I determine supported cards.
>

What I'd suggest you do is to look at enabling the feature for, say,
IS_CYCLONE and IS_TORNADO NICs. Do that as a separate -mm patch, make sure
that an explicit `use_mmio=0' will still turn it off.

So in the style of that driver, something like:

static int use_mmio[MAX_UNITS] = { [ 0 .. MAX_UNITS-1 ] = -1, };

Then:

if (module parm given)
use_mmio[unit] = 1 or 0

...

/* Determine the default if the user didn't override us */
if (use_mmio[unit] == -1 && (IS_CYCLONE || IS_TORNADO))
use_mmio[unit] = 1;

priv->use_mmio = use_mmio[unit]; (maybe)

....

if (priv->use_mmio == 1)
do mmio stuff


There's a bit to be done here, so I'll drop your initial set of patches.

btw, Donald Becker's 3c59x.c has done mmio for ages. Suggest you take a
look in there. http://www.scyld.com/vortex.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/