[5221] in linux-scsi channel archive

home help back first fref pref prev next nref lref last post

DC390/AM53C974 SCSI driver 2.0c1

daemon@ATHENA.MIT.EDU (Kurt Garloff)
Fri Nov 27 17:39:47 1998

Date: 	Fri, 27 Nov 1998 22:31:25 +0100
From: Kurt Garloff <garloff@kg1.ping.de>
To: Andreas Haumer <andreas@xss.co.at>,
        Attila Bilgic <bilgic@hft.e-technik.uni-dortmund.de>,
        Bert Hutzler <hutzler@Fh-Worms.DE>,
        Christian Dietsch <root@christian.wupper.de>,
        Dieter Schlueter <Dieter.Schlueter@bild.dd.shuttle.de>,
        =?ISO-8859-1?Q?Engstr=F6m=2C_Fredrik?= <chimay@myself.com>,
        Jacek Czerwinski <klik@rubikon.net.pl>,
        Linux SCSI list <linux-scsi@vger.rutgers.edu>,
        Philip Giang <philip@tekram.com.tw>,
        Georges Giralt <georges.giralt@alcatel.fr>, georges.giralt@hol.fr,
        Robert Fendt <fendt@student.physik.uni-dortmund.de>,
        Stefan Becker <Stefan.Becker@post.rwth-aachen.de>,
        Frank Bess <Frank_Bess@crow.bmc.com>,
        "M. Kleinsorge" <Martin.Kleinsorge@post.rwth-aachen.de>
Mail-Followup-To: Andreas Haumer <andreas@xss.co.at>,
	Attila Bilgic <bilgic@hft.e-technik.uni-dortmund.de>,
	Bert Hutzler <hutzler@Fh-Worms.DE>,
	Christian Dietsch <root@christian.wupper.de>,
	Dieter Schlueter <Dieter.Schlueter@bild.dd.shuttle.de>,
	=?ISO-8859-1?Q?Engstr=F6m=2C_Fredrik?= <chimay@myself.com>,
	Jacek Czerwinski <klik@rubikon.net.pl>,
	Linux SCSI list <linux-scsi@vger.rutgers.edu>,
	Philip Giang <philip@tekram.com.tw>,
	Georges Giralt <georges.giralt@alcatel.fr>, georges.giralt@hol.fr,
	Robert Fendt <fendt@student.physik.uni-dortmund.de>,
	Stefan Becker <Stefan.Becker@post.rwth-aachen.de>,
	Frank Bess <Frank_Bess@crow.bmc.com>,
	"M. Kleinsorge" <Martin.Kleinsorge@post.rwth-aachen.de>

Hi DC390/AM53C974-users,

while working on fixing a bug with someones IBM OEM  Model: 0662S12 harddisk, 
which was caused by the HD trying to initiate Sync transfers with an offset
of 30, which the AM53C974 chip isn't able to do (15 is the maximum), I
completely reworked the handling of incoming messages. (I call it the
SDTR-30 problem.)

Now, it's much cleaner, as I use a switch {case} statement instead of
previous if() else if() ... parsing. Also some things are moved into
functions to make the code more readable (read: less error prone).

Differences to previous behaviour:
* Full message is read at once, even if it has more than one byte length
  (without needing another IRQ to read the next bytes). This should result
  in slightly better performance when using TaggedQueuing which uses 2-byte
  messages.
* SDTR with more than 15 bytes offfset is rejected. Every other unknown or
  unsupported message is also rejected, including SAVE_POINTERS and
  RESTORE_POINTERS, which the 2.0c version silently accepted.

The code looks very correct now and does work in my box and it's also likely
to solve the SDTR-30 problem. I cannot test thouroughly at the moment, as I
had to change my SCSI setup and currently the only device connected to my
AM53C974 is a SCSI ZIP, which does not know anything about Sync transfers or
TaggedQueueing.
I will change this soon, but in the meantime, I'd like to ask you to test it.
The usual care applies: Have a backup of your partition table to prevent the
worst in case of failure.

You can find the driver, version 2.0c1, on it's usual place:
ftp://student.physik.uni-dortmund.de/pub/linux/kernel/dc390/

Thanks,
-- 
Kurt Garloff <K.Garloff@ping.de>  (Dortmund, FRG)
PGP key on http://student.physik.uni-dortmund.de/homepages/garloff

 "Contrary to popular belief, Unix is user-friendly.
  It just happens to be selective about who it makes friends with."
  							-- Dave Parnas

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

home help back first fref pref prev next nref lref last post