Date: Sun, 29 Sep 1996 17:06:55 +0100 From: Richard Tobin <richard@cogsci.ed.ac.uk> To: freebsd-scsi@freebsd.org Cc: richard@cogsci.ed.ac.uk Subject: Re: HP T4000s tape drive Message-ID: <1239.199609291606@pitcairn.cogsci.ed.ac.uk> In-Reply-To: J Wunsch's message of Sat, 28 Sep 1996 01:05:20 %2B0200 (MET DST)
next in thread | raw e-mail | index | archive | help
Here's my diffs for 2.1.0. Perhaps someone could adjust them for the new SCSI code; I don't want to install a new version at present. -- Richard *** scsi_tape.h.orig Tue May 30 09:13:43 1995 --- scsi_tape.h Fri Sep 13 21:56:19 1996 *************** *** 307,312 **** --- 307,314 ---- #define QIC_1320 0x12 #define DDS 0x13 #define DAT_1 0x13 + #define QIC_3095 0x45 + #endif /* NEW_SCSICONF */ #endif /*SCSI_SCSI_TAPE_H*/ *** st.c.orig Sat Jul 22 05:25:10 1995 --- st.c Sun Sep 29 16:52:06 1996 *************** *** 62,69 **** #define IS_CTLMODE(DEV) (MODE(DEV) == CTLMODE) ! #define SCSI_2_MAX_DENSITY_CODE 0x17 /* maximum density code specified ! * in SCSI II spec. */ #ifndef NEW_SCSICONF /* * Define various devices that we know mis-behave in some way, --- 62,69 ---- #define IS_CTLMODE(DEV) (MODE(DEV) == CTLMODE) ! #define SCSI_2_MAX_DENSITY_CODE 0xff /* SCSI 2 spec is out of date! */ ! #ifndef NEW_SCSICONF /* * Define various devices that we know mis-behave in some way, *************** *** 92,97 **** --- 92,98 ---- #define ST_Q_SNS_HLP 0x00008 /* must do READ for good MODE SENSE */ #define ST_Q_IGNORE_LOADS 0x00010 #define ST_Q_BLKSIZ 0x00020 /* variable-block media_blksiz > 0 */ + #define ST_Q_SCSI2_PF 0x00040 /* set PF in mode select */ static struct rogues gallery[] = /* ends with an all-null entry */ { *************** *** 149,154 **** --- 150,164 ---- {0, ST_Q_FORCE_VAR_MODE, 0x13} /* minor 12,13,14,15 */ } }, + {"HP T4000s", "HP ", "T4000s", "????", + ST_Q_SCSI2_PF, + { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} + } + }, {(char *) 0} }; #endif /* NEW_SCSICONF */ *************** *** 722,728 **** printf("st%ld: Cannot set selected mode", unit); return errno; } ! scsi_prevent(sc_link, PR_PREVENT, 0); /* who cares if it fails? */ st->flags &= ~ST_NEW_MOUNT; st->flags |= ST_MOUNTED; sc_link->flags |= SDEV_MEDIA_LOADED; --- 732,738 ---- printf("st%ld: Cannot set selected mode", unit); return errno; } ! scsi_prevent(sc_link, PR_PREVENT, SCSI_SILENT); st->flags &= ~ST_NEW_MOUNT; st->flags |= ST_MOUNTED; sc_link->flags |= SDEV_MEDIA_LOADED; *************** *** 1531,1536 **** --- 1541,1548 ---- dat.header.blk_desc_len = sizeof(struct blk_desc); dat.header.dev_spec |= SMH_DSP_BUFF_MODE_ON; dat.blk_desc.density = st->density; + if(st->quirks & ST_Q_SCSI2_PF) + scsi_cmd.byte2 |= SMS_PF; if (st->flags & ST_FIXEDBLOCKS) { scsi_uto3b(st->blksiz, dat.blk_desc.blklen); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1239.199609291606>