600II-CD und AVA-1505

Marc Roland (roland@uni-wuppertal.de)
Tue, 24 Jun 1997 04:44:11 +0200

Hello David,

three weeks ago I decided to buy a Paragon 600 II CD, because
Mustek is the most mentioned scanner-vendor in the Linux-community, I
think.
I read most of the sane-devel-mailing-list. So I experienced that the
scsi
card that came with the scanner is >a worthless piece of junk<.
That is why I went again to a shop and bought an Adaptec AVA-1505 and a
HD50-Terminator for my scanner. But there are still problems...
After an >modprobe scsi_hostadapter< the following warnings appear
in /var/log/warn:

kernel: aha152x: BIOS test: passed, detected 1 controller(s)
kernel: aha152x0: vital data: PORTBASE=0x140, IRQ=11, SCSI ID=7,
reconnect=disabled, parity=enabled, synchronous=disabled, delay=100,
extended translation=disabled
kernel: aha152x: trying software interrupt, ok.
kernel: scsi0 : Adaptec 152x SCSI driver; $Revision: 1.18 $
kernel: scsi : 1 host.
kernel: aha152x: entering queue() (484c)
kernel:
kernel: aha152x: leaving queue() (484c)
kernel: aha152x: entering intr() (484c)
kernel:
kernel: aha152x: leaving (selecting) intr() (484c)
kernel: aha152x: entering intr() (4866)
kernel:
kernel: aha152x: leaving (SELTO) intr() (4866)
kernel: aha152x: entering queue() (4866)
kernel:
kernel: aha152x: leaving queue() (4866)
kernel: aha152x: entering intr() (4866)
kernel:
kernel: aha152x: leaving (selecting) intr() (4866)
kernel: aha152x: entering intr() (4881)
kernel:
kernel: aha152x: leaving (SELTO) intr() (4881)
kernel: aha152x: entering queue() (4881)
kernel:
kernel: aha152x: leaving queue() (4881)
kernel: aha152x: entering intr() (4881)
kernel:
kernel: aha152x: leaving (selecting) intr() (4881)
kernel: aha152x: entering intr() (489b)
kernel:
kernel: aha152x: leaving (SELTO) intr() (489b)
kernel: aha152x: entering queue() (489c)
kernel:
kernel: aha152x: leaving queue() (489c)
kernel: aha152x: entering intr() (489c)
kernel:
kernel: aha152x: leaving (selecting) intr() (489c)
kernel: aha152x: entering intr() (48b6)
kernel:
kernel: aha152x: leaving (SELTO) intr() (48b6)
kernel: aha152x: entering queue() (48b7)
kernel:
kernel: aha152x: leaving queue() (48b7)
kernel: aha152x: entering intr() (48b7)
kernel:
kernel: aha152x: leaving (selecting) intr() (48b7)
kernel: aha152x: entering intr() (48d1)
kernel:
kernel: aha152x: leaving (SELTO) intr() (48d1)
kernel: aha152x: entering queue() (48d2)
kernel:
kernel: aha152x: leaving queue() (48d2)
kernel: aha152x: entering intr() (48d2)
kernel:
kernel: aha152x: leaving (selecting) intr() (48d2)
kernel: aha152x: entering intr() (48ec)
kernel:
kernel: aha152x: leaving (SELTO) intr() (48ec)
kernel: aha152x: entering queue() (48ec)
kernel:
kernel: aha152x: leaving queue() (48ec)
kernel: aha152x: entering intr() (48ec)
kernel:
kernel: aha152x: leaving (selecting) intr() (48ec)
kernel: aha152x: entering intr() (48ec)
kernel:
kernel: aha152x: leaving (SELDO) intr() (48ec)

The scanner has id 6 ... and now it seems that here begins a loop:
cmd-timeout -> aborting -> abort-timeout -> resetting ...

kernel: scsi : aborting command due to timeout : pid 6, scsi0, channel
0, id 6,
lun 0 0x00 00 00 00 00 00
kernel: aha152x: abort(), SCpnt=0x00226018, QUEUE STATUS:
kernel: issue_SC:
kernel: current_SC:
kernel: 0x00226018: target=6; lun=0; cmnd=(0x00 00 00 00 00 00 );
kernel: residual=256; buffers=0; phase |; in other(DATA OUT);
next=0x00000000
kernel: disconnected_SC:
kernel:
kernel: on bus: SCSISEQ (); SCSISIG (MESSAGE OUT); INTSTAT (lo);
SSTAT (SELDO PHASECHG ); SSTAT (); SXFRCTL0 (CH1 );
SIGNAL (ATNI BSYI ); SELID (00), SSTAT2 (SEMPTY ); SFCNT (0);
SCSICNT (0), OFFCNT(0), SSTAT4 (); DMACNTRL0 (16BIT PIO READ INTEN );
DMASTAT (DFIFOEMP )
kernel: enabled interrupts (ENBUSFREE ENREQINIT )

kernel: scsi : aborting command due to timeout : pid 6, scsi0, channel
0, id 6,
lun 0 0x00 00 00 00 00 00
kernel: aha152x: abort(), SCpnt=0x00226018, QUEUE STATUS:
kernel: issue_SC:
kernel: current_SC:
kernel: 0x00226018: target=6; lun=0; cmnd=(0x00 00 00 00 00 00 );
kernel: residual=256; buffers=0; phase |; in other(DATA OUT);
next=0x00000000
kernel: disconnected_SC:
kernel:
kernel: on bus: SCSISEQ (); SCSISIG (MESSAGE OUT); INTSTAT (lo);
SSTAT (SELDO PHASECHG ); SSTAT (); SXFRCTL0 (CH1 );
SIGNAL (ATNI BSYI ); SELID (00), SSTAT2 (SEMPTY ); SFCNT (0);
SCSICNT (0), OFFCNT(0), SSTAT4 (); DMACNTRL0 (16BIT PIO READ INTEN );
DMASTAT (DFIFOEMP )
kernel: enabled interrupts (ENBUSFREE ENREQINIT )

kernel: SCSI host 0 abort (pid 6) timed out - resetting
kernel: SCSI bus is being reset for host 0 channel 0.
kernel: aha152x: reset(), bus not free: SCSI RESET OUT
kernel: QUEUE STATUS:
kernel: issue_SC:
kernel: current_SC:
kernel: 0x00226018: target=6; lun=0; cmnd=(0x00 00 00 00 00 00 );
kernel: residual=256; buffers=0; phase |; in other(DATA OUT);
next=0x00000000
kernel: disconnected_SC:
kernel:
kernel: on bus: SCSISEQ (); SCSISIG (MESSAGE OUT); INTSTAT (lo);
SSTAT (SELDO ); SSTAT (); SXFRCTL0 (CH1 );
SIGNAL (BSYI ); SELID (00), SSTAT2 (SEMPTY ); SFCNT (0);
SCSICNT (0), OFFCNT(0), SSTAT4 (); DMACNTRL0 (16BIT PIO READ );
DMASTAT (DFIFOEMP )
kernel: enabled interrupts ()

There is something different after this resetting-trial.

kernel: aha152x: entering queue() (51e7)
kernel:
kernel: aha152x: leaving queue() (51e7)
kernel: commands on targets w/ soft-resets:
kernel: QUEUE STATUS:
kernel: issue_SC:
kernel: 0x00226018: target=6; lun=0; cmnd=(0x00 00 00 00 00 00 );
kernel: residual=256; buffers=0; phase |not issued|; next=0x00000000
kernel: current_SC:
kernel: none
kernel: disconnected_SC:
kernel:
kernel: waiting: SCSISEQ (); SCSISIG (MESSAGE OUT); INTSTAT (lo);
SSTAT (SELDO ); SSTAT (); SXFRCTL0 (CH1 );
SIGNAL (BSYI ); SELID (00), SSTAT2 (SEMPTY ); SFCNT (0);
SCSICNT (0), OFFCNT(0), SSTAT4 (); DMACNTRL0 (16BIT PIO READ );
DMASTAT (DFIFOEMP )
kernel: enabled interrupts ()
kernel: aha152x: entering intr() (5269)
kernel:
kernel: aha152x: leaving (selecting) intr() (5269)
kernel: aha152x: entering intr() (5269)
kernel:
kernel: aha152x: leaving (SELDO) intr() (5269)
kernel: scsi : aborting command due to timeout : pid 6, scsi0, channel
0, id 6,
lun 0 0x00 00 00 00 00 00
[...]

What is the reason for these timeouts and where in the source-code can I
fix that?
I tried in drivers/scsi/scsi.c (near line 200...)
#define SCSI_TIMEOUT (5*HZ)
#define SENSE_TIMEOUT SCSI_TIMEOUT
#define ABORT_TIMEOUT SCSI_TIMEOUT
#define RESET_TIMEOUT SCSI_TIMEOUT
#define MIN_RESET_DELAY (5*HZ)
#define MIN_RESET_PERIOD (30*HZ)
but no difference.
And what about the delay-parameter in aha152x.c ?

I think that these timeouts are also the reason why the ASPI2DOS.SYS
driver hangs. Can somebody tell my the parameters for this DOS-driver?

--Marc

--
Source code, list archive, and docs: http://www.azstarnet.com/~axplinux/sane/
To unsubscribe: mail -s unsubscribe sane-devel-request@listserv.azstarnet.com