Re: [Fwd: 3940UW Driver Locks the Machine]

Doug Ledford (dledford@dialnet.net)
Sun, 15 Feb 1998 11:33:08 -0600


Robert L Harris wrote:
> > That would be me, but you're too late :) I've already fixed certain
> > problems with the Jaz drives in my latest patch, and even gone a step
> > further in my "about to be released" patch. More on that in the
> > announcement for my next patch.
>
> Know which kernel this will be applicable in?

This patch will be against 2.0.33.

> If you need/want a guinea pig (sp?) let me know... I've got a 3940UW,
> a number of seagate and Quantum Drives, a CD-R (Yamaha), 4mm Tape
> and Jaz in my machine.

Actually, I do need a guinea pig at the moment, but more specifically I need
one that uses the driver as a module. What they use it for isn't important,
just that they use it as a module so I can verify that the new module setup
parsing code works properly.

> Mine reports J^77 I believe. Is it possible to get a firmware upgrade?
> So I need to turn off command tag queing all together?

That sounds like one of the broken Jaz drives according to the email that
was forwarded to me from an Iomega tach support person. In any case, to
answer the question about what to do. There are two things you can do,
either turn off tagged queueing entirely, or go into the aic7xxx.c file and
uncomment the section on AIC7XXX_TAGGED_QUEUEING_BY_DEVICE and set up the
parameters according to what your system needs.

Now, in the next version of my patch, this won't be a problem that requires
source code editing because one of the new items is that the driver will now
parse a tagged queue by device type entry during the setup routine and have
that override the default entries. That's what I need a module tester for
:) The insmod code can't set variables that aren't either int or char*, and
my tagged queue by device array isn't either. Plus, it would be a pain in
the ass to specify all of the comma entries you would have to use to get to
the entries for a second device. So, the attempt is to allow a static char*
= NULL that insmod can then modify to point to a string passed in on the
insmod command line. Then, if we detect that the pointer isn't NULL, that
means insmod has set it to that string, and we run the string through our
normal setup routine like we would at boot time. That way you can do
something like:

insmod aic7xxx aic7xxx="verbose,irq_trigger:1,tag_info:{{8,8},{8,8}}"

and the driver will parse it exactly as it would if it weren't a module with
the only exception being the use of the surrounding quotes when doing this
via insmod instead of a boot string to a compiled in driver. However, you
do need the quotes to avoid things like possible attempts at {} expansion by
a shell.

-- 

Doug Ledford <dledford@dialnet.net> Opinions expressed are my own, but they should be everybody's.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu