lkml.org 
[lkml]   [2000]   [Mar]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: 2.2.15pre14
Date
From

Yeah, fair enough, I meant to copy Leonard on this, but was in a hurry to get out
the door on Friday evening. Leonard was the one that suggested adding the delays
to the macros, and that has fixed the problem for me. Since I only have a CDRW
on my SCSI card, I haven't really been concerned that adding those delays hurts
performance. If I had hard drives out there, I might be more concerned with that.
I have been meaning to try the change that I suggested below for a few weeks now,
but I haven't gotten around to it. I didn't really want to bother Leonard until
I knew if the change would help.

Anyway, here is my reasoning as to why the change might make a difference:

Right now, hp_int gets assigned (RDW_HARPOON((ioport+hp_intstat)) & default_intena)
each time through the while loop. Looking through the code, it appears to me
that default_intena can have the following bits set:

RESET, RSEL, PROG_HLT, TIMEOUT, BUS_FREE, XFER_CNT_0, SCAM_SEL, IUNKWN,
ICMD_COMP, ITICKLE, IDO_STRT, and ITAR_DISC (the last five are grouped
as AUTO_INT)

That leaves the following bits that will be masked off by the bitwise and:

PARITY, FIFO, SEL, and PHASE

So hp_int will never have these bits set inside the while loop. Now, the
very first if inside the while loop is:

if (hp_int & (FIFO | TIMEOUT | RESET | SCAM_SEL) || bm_status) {

Which depends upon FIFO, which can't be set. This looks as if it is
an error condition, so it may not be possible for this to cause problems,
but I wanted to try it anyway.

I don't see any of the other bits being used inside the while loop.

Anyway, I will try to give it a try in the next few days to see if
this fixes my problem. If anyone sees a flaw in my logic, or can
say definitively that this will, or will not help, let me know.

Bill Lash
welash@xnet.com


>
> > I am actually not concerned about what it complained about (the use of the
> > | instead of || but the strange parenthesis in RDW_HARPOON((ioport+hp_intstat))
> >
> > I am beginning to think that this should be (hp_int = RDW_HARPOON(ioport+hp_intstat))
> >
> > I keep meaning to try this, but haven't gotten around to it yet.
>
> thanks for your input here. as it only happened once, I think it would be of
> no use to change the stuff. however, it might be a good idea to have the BT
> code maker (lnz@dandelion.com IIRC) take a look at your suggestion, or not ?
>
> to me it happened after I presumably toggled the off/on switch too fast.
> maybe the JAZ didn't reset OK.
>
> Roeland
>
> --
> Grobbebol's Home | Don't give in to spammers. -o)
> http://www.xs4all.nl/~bengel | Use your real e-mail address /\
> Linux 2.2.14 SMP 2x466MHz / 256 MB | on Usenet. _\_v
>


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:57    [W:0.037 / U:0.764 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site