Apply the following change from 5/30/2003 02:15:15 made by scottl to the

FreeBSD ahd driver:

aic79xx.c:
	Use the special LUNLEN_SINGLE_LEVEL constant for
	post Rev A4 hardware for single byte luns.  Without
	this change, Rev B hardware would place the single
	byte of lun data in byte 0 of the lun structure when
	it should be in byte 1.  Since there are few if any
	devices on the market that support multiple luns in
	target mode, the corrupted lun field (which was only
	corrupted for non-zero luns) wasn't hurting us.

Approved by: re	(rwatson)
This commit is contained in:
thorpej 2003-08-29 01:58:32 +00:00
parent 277fd0e642
commit 88ac7e4d52
1 changed files with 3 additions and 3 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: aic79xx.c,v 1.12 2003/08/29 01:37:11 thorpej Exp $ */ /* $NetBSD: aic79xx.c,v 1.13 2003/08/29 01:58:32 thorpej Exp $ */
/* /*
* Core routines and tables shareable across OS platforms. * Core routines and tables shareable across OS platforms.
@ -49,7 +49,7 @@
*/ */
#include <sys/cdefs.h> #include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: aic79xx.c,v 1.12 2003/08/29 01:37:11 thorpej Exp $"); __KERNEL_RCSID(0, "$NetBSD: aic79xx.c,v 1.13 2003/08/29 01:58:32 thorpej Exp $");
#include <dev/ic/aic79xx_osm.h> #include <dev/ic/aic79xx_osm.h>
#include <dev/ic/aic79xx_inline.h> #include <dev/ic/aic79xx_inline.h>
@ -5989,7 +5989,7 @@ ahd_chip_init(struct ahd_softc *ahd)
ahd_outb(ahd, LUNLEN, ahd_outb(ahd, LUNLEN,
sizeof(ahd->next_queued_hscb->pkt_long_lun) - 1); sizeof(ahd->next_queued_hscb->pkt_long_lun) - 1);
} else { } else {
ahd_outb(ahd, LUNLEN, sizeof(ahd->next_queued_hscb->lun) - 1); ahd_outb(ahd, LUNLEN, LUNLEN_SINGLE_LEVEL_LUN);
} }
ahd_outb(ahd, CDBLIMIT, SCB_CDB_LEN_PTR - 1); ahd_outb(ahd, CDBLIMIT, SCB_CDB_LEN_PTR - 1);
ahd_outb(ahd, MAXCMD, 0xFF); ahd_outb(ahd, MAXCMD, 0xFF);