Module Name: src Committed By: bouyer Date: Fri Apr 20 20:23:21 UTC 2012
Modified Files: src/sys/dev/ic: ahcisata_core.c mvsata.c siisata.c src/sys/dev/scsipi: atapi_wdc.c scsi_base.c scsiconf.c scsiconf.h scsipi_base.c scsipiconf.h src/sys/dev/usb: umass_scsipi.c src/sys/sys: param.h Log Message: Add a bustype_async_event_xfer_mode() callback to scsipi_bustype (which can be NULL), so that transport-specific details of transfer mode setting/printing can be handled more easily. Move scsipi_async_event_xfer_mode() and scsipi_print_xfer_mode() to scsi_base.c and split in parallel scsi and FC/SAS parts. size of struct scsipi_bustype has changed, welcome to 6.99.5 To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/sys/dev/ic/ahcisata_core.c cvs rdiff -u -r1.15 -r1.16 src/sys/dev/ic/mvsata.c src/sys/dev/ic/siisata.c cvs rdiff -u -r1.112 -r1.113 src/sys/dev/scsipi/atapi_wdc.c cvs rdiff -u -r1.89 -r1.90 src/sys/dev/scsipi/scsi_base.c cvs rdiff -u -r1.266 -r1.267 src/sys/dev/scsipi/scsiconf.c cvs rdiff -u -r1.57 -r1.58 src/sys/dev/scsipi/scsiconf.h cvs rdiff -u -r1.158 -r1.159 src/sys/dev/scsipi/scsipi_base.c cvs rdiff -u -r1.120 -r1.121 src/sys/dev/scsipi/scsipiconf.h cvs rdiff -u -r1.44 -r1.45 src/sys/dev/usb/umass_scsipi.c cvs rdiff -u -r1.412 -r1.413 src/sys/sys/param.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/ic/ahcisata_core.c diff -u src/sys/dev/ic/ahcisata_core.c:1.33 src/sys/dev/ic/ahcisata_core.c:1.34 --- src/sys/dev/ic/ahcisata_core.c:1.33 Tue Jan 10 01:43:05 2012 +++ src/sys/dev/ic/ahcisata_core.c Fri Apr 20 20:23:20 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ahcisata_core.c,v 1.33 2012/01/10 01:43:05 jakllsch Exp $ */ +/* $NetBSD: ahcisata_core.c,v 1.34 2012/04/20 20:23:20 bouyer Exp $ */ /* * Copyright (c) 2006 Manuel Bouyer. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ahcisata_core.c,v 1.33 2012/01/10 01:43:05 jakllsch Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ahcisata_core.c,v 1.34 2012/04/20 20:23:20 bouyer Exp $"); #include <sys/types.h> #include <sys/malloc.h> @@ -92,6 +92,7 @@ static const struct scsipi_bustype ahci_ atapi_interpret_sense, atapi_print_addr, ahci_atapi_kill_pending, + NULL, }; #endif /* NATAPIBUS */ Index: src/sys/dev/ic/mvsata.c diff -u src/sys/dev/ic/mvsata.c:1.15 src/sys/dev/ic/mvsata.c:1.16 --- src/sys/dev/ic/mvsata.c:1.15 Tue Jan 24 20:04:08 2012 +++ src/sys/dev/ic/mvsata.c Fri Apr 20 20:23:20 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: mvsata.c,v 1.15 2012/01/24 20:04:08 jakllsch Exp $ */ +/* $NetBSD: mvsata.c,v 1.16 2012/04/20 20:23:20 bouyer Exp $ */ /* * Copyright (c) 2008 KIYOHARA Takashi * All rights reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: mvsata.c,v 1.15 2012/01/24 20:04:08 jakllsch Exp $"); +__KERNEL_RCSID(0, "$NetBSD: mvsata.c,v 1.16 2012/04/20 20:23:20 bouyer Exp $"); #include "opt_mvsata.h" @@ -220,6 +220,7 @@ static const struct scsipi_bustype mvsat atapi_interpret_sense, atapi_print_addr, mvsata_atapi_kill_pending, + NULL, }; #endif /* NATAPIBUS */ #endif Index: src/sys/dev/ic/siisata.c diff -u src/sys/dev/ic/siisata.c:1.15 src/sys/dev/ic/siisata.c:1.16 --- src/sys/dev/ic/siisata.c:1.15 Tue Sep 27 01:02:38 2011 +++ src/sys/dev/ic/siisata.c Fri Apr 20 20:23:20 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: siisata.c,v 1.15 2011/09/27 01:02:38 jym Exp $ */ +/* $NetBSD: siisata.c,v 1.16 2012/04/20 20:23:20 bouyer Exp $ */ /* from ahcisata_core.c */ @@ -79,7 +79,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: siisata.c,v 1.15 2011/09/27 01:02:38 jym Exp $"); +__KERNEL_RCSID(0, "$NetBSD: siisata.c,v 1.16 2012/04/20 20:23:20 bouyer Exp $"); #include <sys/types.h> #include <sys/malloc.h> @@ -172,7 +172,8 @@ static const struct scsipi_bustype siisa atapi_scsipi_cmd, atapi_interpret_sense, atapi_print_addr, - siisata_atapi_kill_pending + siisata_atapi_kill_pending, + NULL, }; #endif /* NATAPIBUS */ Index: src/sys/dev/scsipi/atapi_wdc.c diff -u src/sys/dev/scsipi/atapi_wdc.c:1.112 src/sys/dev/scsipi/atapi_wdc.c:1.113 --- src/sys/dev/scsipi/atapi_wdc.c:1.112 Tue May 24 16:35:26 2011 +++ src/sys/dev/scsipi/atapi_wdc.c Fri Apr 20 20:23:21 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: atapi_wdc.c,v 1.112 2011/05/24 16:35:26 joerg Exp $ */ +/* $NetBSD: atapi_wdc.c,v 1.113 2012/04/20 20:23:21 bouyer Exp $ */ /* * Copyright (c) 1998, 2001 Manuel Bouyer. @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: atapi_wdc.c,v 1.112 2011/05/24 16:35:26 joerg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: atapi_wdc.c,v 1.113 2012/04/20 20:23:21 bouyer Exp $"); #ifndef ATADEBUG #define ATADEBUG @@ -102,6 +102,7 @@ static const struct scsipi_bustype wdc_a atapi_interpret_sense, atapi_print_addr, wdc_atapi_kill_pending, + NULL, }; void Index: src/sys/dev/scsipi/scsi_base.c diff -u src/sys/dev/scsipi/scsi_base.c:1.89 src/sys/dev/scsipi/scsi_base.c:1.90 --- src/sys/dev/scsipi/scsi_base.c:1.89 Mon Apr 28 20:23:57 2008 +++ src/sys/dev/scsipi/scsi_base.c Fri Apr 20 20:23:21 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: scsi_base.c,v 1.89 2008/04/28 20:23:57 martin Exp $ */ +/* $NetBSD: scsi_base.c,v 1.90 2012/04/20 20:23:21 bouyer Exp $ */ /*- * Copyright (c) 1998, 2004 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: scsi_base.c,v 1.89 2008/04/28 20:23:57 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: scsi_base.c,v 1.90 2012/04/20 20:23:21 bouyer Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -48,6 +48,7 @@ __KERNEL_RCSID(0, "$NetBSD: scsi_base.c, #include <dev/scsipi/scsiconf.h> #include <dev/scsipi/scsipi_base.h> +static void scsi_print_xfer_mode(struct scsipi_periph *); /* * Do a scsi operation, asking a device to run as SCSI-II if it can. */ @@ -116,3 +117,145 @@ void scsi_kill_pending(struct scsipi_periph *periph) { } + +/* + * scsi_print_xfer_mode: + * + * Print a parallel SCSI periph's capabilities. + */ +static void +scsi_print_xfer_mode(struct scsipi_periph *periph) +{ + int period, freq, speed, mbs; + + aprint_normal_dev(periph->periph_dev, ""); + if (periph->periph_mode & (PERIPH_CAP_SYNC | PERIPH_CAP_DT)) { + period = scsipi_sync_factor_to_period(periph->periph_period); + aprint_normal("sync (%d.%02dns offset %d)", + period / 100, period % 100, periph->periph_offset); + } else + aprint_normal("async"); + + if (periph->periph_mode & PERIPH_CAP_WIDE32) + aprint_normal(", 32-bit"); + else if (periph->periph_mode & (PERIPH_CAP_WIDE16 | PERIPH_CAP_DT)) + aprint_normal(", 16-bit"); + else + aprint_normal(", 8-bit"); + + if (periph->periph_mode & (PERIPH_CAP_SYNC | PERIPH_CAP_DT)) { + freq = scsipi_sync_factor_to_freq(periph->periph_period); + speed = freq; + if (periph->periph_mode & PERIPH_CAP_WIDE32) + speed *= 4; + else if (periph->periph_mode & + (PERIPH_CAP_WIDE16 | PERIPH_CAP_DT)) + speed *= 2; + mbs = speed / 1000; + if (mbs > 0) { + aprint_normal(" (%d.%03dMB/s)", mbs, + speed % 1000); + } else + aprint_normal(" (%dKB/s)", speed % 1000); + } + + aprint_normal(" transfers"); + + if (periph->periph_mode & PERIPH_CAP_TQING) + aprint_normal(", tagged queueing"); + + aprint_normal("\n"); +} + +/* + * scsi_async_event_xfer_mode: + * + * Update the xfer mode for all parallel SCSI periphs sharing the + * specified I_T Nexus. + */ +void +scsi_async_event_xfer_mode(struct scsipi_channel *chan, void *arg) +{ + struct scsipi_xfer_mode *xm = arg; + struct scsipi_periph *periph; + int lun, announce, mode, period, offset; + + for (lun = 0; lun < chan->chan_nluns; lun++) { + periph = scsipi_lookup_periph(chan, xm->xm_target, lun); + if (periph == NULL) + continue; + announce = 0; + + /* + * Clamp the xfer mode down to this periph's capabilities. + */ + mode = xm->xm_mode & periph->periph_cap; + if (mode & PERIPH_CAP_SYNC) { + period = xm->xm_period; + offset = xm->xm_offset; + } else { + period = 0; + offset = 0; + } + + /* + * If we do not have a valid xfer mode yet, or the parameters + * are different, announce them. + */ + if ((periph->periph_flags & PERIPH_MODE_VALID) == 0 || + periph->periph_mode != mode || + periph->periph_period != period || + periph->periph_offset != offset) + announce = 1; + + periph->periph_mode = mode; + periph->periph_period = period; + periph->periph_offset = offset; + periph->periph_flags |= PERIPH_MODE_VALID; + + if (announce) + scsi_print_xfer_mode(periph); + } +} + +/* + * scsipi_async_event_xfer_mode: + * + * Update the xfer mode for all SAS/FC periphs sharing the + * specified I_T Nexus. + */ +void +scsi_fc_sas_async_event_xfer_mode(struct scsipi_channel *chan, void *arg) +{ + struct scsipi_xfer_mode *xm = arg; + struct scsipi_periph *periph; + int lun, announce, mode; + + for (lun = 0; lun < chan->chan_nluns; lun++) { + periph = scsipi_lookup_periph(chan, xm->xm_target, lun); + if (periph == NULL) + continue; + announce = 0; + + /* + * Clamp the xfer mode down to this periph's capabilities. + */ + mode = xm->xm_mode & periph->periph_cap; + /* + * If we do not have a valid xfer mode yet, or the parameters + * are different, announce them. + */ + if ((periph->periph_flags & PERIPH_MODE_VALID) == 0 || + periph->periph_mode != mode) + announce = 1; + + periph->periph_mode = mode; + periph->periph_flags |= PERIPH_MODE_VALID; + + if (announce && + (periph->periph_mode & PERIPH_CAP_TQING) != 0) { + aprint_normal_dev(periph->periph_dev, + "tagged queueing\n"); + } + } +} Index: src/sys/dev/scsipi/scsiconf.c diff -u src/sys/dev/scsipi/scsiconf.c:1.266 src/sys/dev/scsipi/scsiconf.c:1.267 --- src/sys/dev/scsipi/scsiconf.c:1.266 Thu Apr 19 17:45:20 2012 +++ src/sys/dev/scsipi/scsiconf.c Fri Apr 20 20:23:21 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: scsiconf.c,v 1.266 2012/04/19 17:45:20 bouyer Exp $ */ +/* $NetBSD: scsiconf.c,v 1.267 2012/04/20 20:23:21 bouyer Exp $ */ /*- * Copyright (c) 1998, 1999, 2004 The NetBSD Foundation, Inc. @@ -48,7 +48,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: scsiconf.c,v 1.266 2012/04/19 17:45:20 bouyer Exp $"); +__KERNEL_RCSID(0, "$NetBSD: scsiconf.c,v 1.267 2012/04/20 20:23:21 bouyer Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -119,6 +119,7 @@ const struct scsipi_bustype scsi_bustype scsipi_interpret_sense, scsi_print_addr, scsi_kill_pending, + scsi_async_event_xfer_mode, }; const struct scsipi_bustype scsi_fc_bustype = { @@ -127,6 +128,7 @@ const struct scsipi_bustype scsi_fc_bust scsipi_interpret_sense, scsi_print_addr, scsi_kill_pending, + scsi_fc_sas_async_event_xfer_mode, }; const struct scsipi_bustype scsi_sas_bustype = { @@ -135,6 +137,7 @@ const struct scsipi_bustype scsi_sas_bus scsipi_interpret_sense, scsi_print_addr, scsi_kill_pending, + scsi_fc_sas_async_event_xfer_mode, }; const struct scsipi_bustype scsi_usb_bustype = { @@ -143,6 +146,7 @@ const struct scsipi_bustype scsi_usb_bus scsipi_interpret_sense, scsi_print_addr, scsi_kill_pending, + NULL, }; static int Index: src/sys/dev/scsipi/scsiconf.h diff -u src/sys/dev/scsipi/scsiconf.h:1.57 src/sys/dev/scsipi/scsiconf.h:1.58 --- src/sys/dev/scsipi/scsiconf.h:1.57 Thu Apr 19 17:45:20 2012 +++ src/sys/dev/scsipi/scsiconf.h Fri Apr 20 20:23:21 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: scsiconf.h,v 1.57 2012/04/19 17:45:20 bouyer Exp $ */ +/* $NetBSD: scsiconf.h,v 1.58 2012/04/20 20:23:21 bouyer Exp $ */ /*- * Copyright (c) 1998, 1999, 2004 The NetBSD Foundation, Inc. @@ -63,6 +63,12 @@ struct scsibus_softc { /* sc_flags */ #define SCSIBUSF_OPEN 0x00000001 /* bus is open */ +/* SCSI subtypes for struct scsipi_bustype */ +#define SCSIPI_BUSTYPE_SCSI_PSCSI 0 /* parallel SCSI */ +#define SCSIPI_BUSTYPE_SCSI_FC 1 /* Fiber channel */ +#define SCSIPI_BUSTYPE_SCSI_SAS 2 /* SAS */ +#define SCSIPI_BUSTYPE_SCSI_USB 3 /* USB */ + extern const struct scsipi_bustype scsi_bustype; extern const struct scsipi_bustype scsi_fc_bustype; extern const struct scsipi_bustype scsi_sas_bustype; @@ -73,5 +79,7 @@ void scsi_kill_pending(struct scsipi_per void scsi_print_addr(struct scsipi_periph *); int scsi_probe_bus(struct scsibus_softc *, int, int); void scsi_scsipi_cmd(struct scsipi_xfer *); +void scsi_async_event_xfer_mode(struct scsipi_channel *, void *); +void scsi_fc_sas_async_event_xfer_mode(struct scsipi_channel *, void *); #endif /* _DEV_SCSIPI_SCSICONF_H_ */ Index: src/sys/dev/scsipi/scsipi_base.c diff -u src/sys/dev/scsipi/scsipi_base.c:1.158 src/sys/dev/scsipi/scsipi_base.c:1.159 --- src/sys/dev/scsipi/scsipi_base.c:1.158 Thu Apr 19 17:45:20 2012 +++ src/sys/dev/scsipi/scsipi_base.c Fri Apr 20 20:23:21 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: scsipi_base.c,v 1.158 2012/04/19 17:45:20 bouyer Exp $ */ +/* $NetBSD: scsipi_base.c,v 1.159 2012/04/20 20:23:21 bouyer Exp $ */ /*- * Copyright (c) 1998, 1999, 2000, 2002, 2003, 2004 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: scsipi_base.c,v 1.158 2012/04/19 17:45:20 bouyer Exp $"); +__KERNEL_RCSID(0, "$NetBSD: scsipi_base.c,v 1.159 2012/04/20 20:23:21 bouyer Exp $"); #include "opt_scsi.h" @@ -74,8 +74,6 @@ static void scsipi_put_resource(struct s static void scsipi_async_event_max_openings(struct scsipi_channel *, struct scsipi_max_openings *); -static void scsipi_async_event_xfer_mode(struct scsipi_channel *, - struct scsipi_xfer_mode *); static void scsipi_async_event_channel_reset(struct scsipi_channel *); static struct pool scsipi_xfer_pool; @@ -2158,8 +2156,10 @@ scsipi_async_event(struct scsipi_channel break; case ASYNC_EVENT_XFER_MODE: - scsipi_async_event_xfer_mode(chan, - (struct scsipi_xfer_mode *)arg); + if (chan->chan_bustype->bustype_async_event_xfer_mode) { + chan->chan_bustype->bustype_async_event_xfer_mode( + chan, arg); + } break; case ASYNC_EVENT_RESET: scsipi_async_event_channel_reset(chan); @@ -2169,78 +2169,6 @@ scsipi_async_event(struct scsipi_channel } /* - * scsipi_print_xfer_mode: - * - * Print a periph's capabilities. - */ -void -scsipi_print_xfer_mode(struct scsipi_periph *periph) -{ - int period, freq, speed, mbs; - - if ((periph->periph_flags & PERIPH_MODE_VALID) == 0) - return; - - switch(scsipi_periph_bustype(periph)) { - case SCSIPI_BUSTYPE_BUSTYPE( - SCSIPI_BUSTYPE_SCSI, SCSIPI_BUSTYPE_SCSI_PSCSI): - aprint_normal_dev(periph->periph_dev, ""); - if (periph->periph_mode & (PERIPH_CAP_SYNC | PERIPH_CAP_DT)) { - period = - scsipi_sync_factor_to_period(periph->periph_period); - aprint_normal("sync (%d.%02dns offset %d)", - period / 100, period % 100, periph->periph_offset); - } else - aprint_normal("async"); - - if (periph->periph_mode & PERIPH_CAP_WIDE32) - aprint_normal(", 32-bit"); - else if ( - periph->periph_mode & (PERIPH_CAP_WIDE16 | PERIPH_CAP_DT)) - aprint_normal(", 16-bit"); - else - aprint_normal(", 8-bit"); - - if (periph->periph_mode & (PERIPH_CAP_SYNC | PERIPH_CAP_DT)) { - freq = - scsipi_sync_factor_to_freq(periph->periph_period); - speed = freq; - if (periph->periph_mode & PERIPH_CAP_WIDE32) - speed *= 4; - else if (periph->periph_mode & - (PERIPH_CAP_WIDE16 | PERIPH_CAP_DT)) - speed *= 2; - mbs = speed / 1000; - if (mbs > 0) { - aprint_normal(" (%d.%03dMB/s)", mbs, - speed % 1000); - } else - aprint_normal(" (%dKB/s)", speed % 1000); - } - - aprint_normal(" transfers"); - - if (periph->periph_mode & PERIPH_CAP_TQING) - aprint_normal(", tagged queueing"); - - aprint_normal("\n"); - break; - case SCSIPI_BUSTYPE_BUSTYPE( - SCSIPI_BUSTYPE_SCSI, SCSIPI_BUSTYPE_SCSI_FC): - case SCSIPI_BUSTYPE_BUSTYPE( - SCSIPI_BUSTYPE_SCSI, SCSIPI_BUSTYPE_SCSI_SAS): - if (periph->periph_mode & PERIPH_CAP_TQING) { - aprint_normal_dev(periph->periph_dev, - "tagged queueing\n"); - } - break; - default: - /* nothing */ - break; - } -} - -/* * scsipi_async_event_max_openings: * * Update the maximum number of outstanding commands a @@ -2277,57 +2205,6 @@ scsipi_async_event_max_openings(struct s } /* - * scsipi_async_event_xfer_mode: - * - * Update the xfer mode for all periphs sharing the - * specified I_T Nexus. - */ -static void -scsipi_async_event_xfer_mode(struct scsipi_channel *chan, - struct scsipi_xfer_mode *xm) -{ - struct scsipi_periph *periph; - int lun, announce, mode, period, offset; - - for (lun = 0; lun < chan->chan_nluns; lun++) { - periph = scsipi_lookup_periph(chan, xm->xm_target, lun); - if (periph == NULL) - continue; - announce = 0; - - /* - * Clamp the xfer mode down to this periph's capabilities. - */ - mode = xm->xm_mode & periph->periph_cap; - if (mode & PERIPH_CAP_SYNC) { - period = xm->xm_period; - offset = xm->xm_offset; - } else { - period = 0; - offset = 0; - } - - /* - * If we do not have a valid xfer mode yet, or the parameters - * are different, announce them. - */ - if ((periph->periph_flags & PERIPH_MODE_VALID) == 0 || - periph->periph_mode != mode || - periph->periph_period != period || - periph->periph_offset != offset) - announce = 1; - - periph->periph_mode = mode; - periph->periph_period = period; - periph->periph_offset = offset; - periph->periph_flags |= PERIPH_MODE_VALID; - - if (announce) - scsipi_print_xfer_mode(periph); - } -} - -/* * scsipi_set_xfer_mode: * * Set the xfer mode for the specified I_T Nexus. Index: src/sys/dev/scsipi/scsipiconf.h diff -u src/sys/dev/scsipi/scsipiconf.h:1.120 src/sys/dev/scsipi/scsipiconf.h:1.121 --- src/sys/dev/scsipi/scsipiconf.h:1.120 Thu Apr 19 17:45:20 2012 +++ src/sys/dev/scsipi/scsipiconf.h Fri Apr 20 20:23:21 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: scsipiconf.h,v 1.120 2012/04/19 17:45:20 bouyer Exp $ */ +/* $NetBSD: scsipiconf.h,v 1.121 2012/04/20 20:23:21 bouyer Exp $ */ /*- * Copyright (c) 1998, 1999, 2000, 2004 The NetBSD Foundation, Inc. @@ -236,6 +236,8 @@ struct scsipi_bustype { int (*bustype_interpret_sense)(struct scsipi_xfer *); void (*bustype_printaddr)(struct scsipi_periph *); void (*bustype_kill_pending)(struct scsipi_periph *); + void (*bustype_async_event_xfer_mode)(struct scsipi_channel *, + void *); }; /* bustype_type */ @@ -252,12 +254,6 @@ struct scsipi_bustype { #define SCSIPI_BUSTYPE_BUSTYPE(t, s) \ ((t) << SCSIPI_BUSTYPE_TYPE_SHIFT | (s) << SCSIPI_BUSTYPE_SUBTYPE_SHIFT) /* subtypes are defined in each bus type headers */ -/* XXX this should be in scsiconf.h but is used in scsipi_base.c */ -/* SCSI subtypes */ -#define SCSIPI_BUSTYPE_SCSI_PSCSI 0 /* parallel SCSI */ -#define SCSIPI_BUSTYPE_SCSI_FC 1 /* Fiber channel */ -#define SCSIPI_BUSTYPE_SCSI_SAS 2 /* SAS */ -#define SCSIPI_BUSTYPE_SCSI_USB 3 /* USB */ /* * scsipi_channel: @@ -686,7 +682,6 @@ void scsipi_async_event(struct scsipi_ch int scsipi_do_ioctl(struct scsipi_periph *, dev_t, u_long, void *, int, struct lwp *); -void scsipi_print_xfer_mode(struct scsipi_periph *); void scsipi_set_xfer_mode(struct scsipi_channel *, int, int); int scsipi_channel_init(struct scsipi_channel *); Index: src/sys/dev/usb/umass_scsipi.c diff -u src/sys/dev/usb/umass_scsipi.c:1.44 src/sys/dev/usb/umass_scsipi.c:1.45 --- src/sys/dev/usb/umass_scsipi.c:1.44 Thu Apr 19 17:45:21 2012 +++ src/sys/dev/usb/umass_scsipi.c Fri Apr 20 20:23:21 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: umass_scsipi.c,v 1.44 2012/04/19 17:45:21 bouyer Exp $ */ +/* $NetBSD: umass_scsipi.c,v 1.45 2012/04/20 20:23:21 bouyer Exp $ */ /* * Copyright (c) 2001, 2003, 2012 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: umass_scsipi.c,v 1.44 2012/04/19 17:45:21 bouyer Exp $"); +__KERNEL_RCSID(0, "$NetBSD: umass_scsipi.c,v 1.45 2012/04/20 20:23:21 bouyer Exp $"); #ifdef _KERNEL_OPT #include "opt_umass.h" @@ -115,6 +115,7 @@ const struct scsipi_bustype umass_atapi_ atapi_interpret_sense, atapi_print_addr, scsi_kill_pending, + NULL, }; #endif Index: src/sys/sys/param.h diff -u src/sys/sys/param.h:1.412 src/sys/sys/param.h:1.413 --- src/sys/sys/param.h:1.412 Tue Mar 13 18:50:41 2012 +++ src/sys/sys/param.h Fri Apr 20 20:23:21 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: param.h,v 1.412 2012/03/13 18:50:41 elad Exp $ */ +/* $NetBSD: param.h,v 1.413 2012/04/20 20:23:21 bouyer Exp $ */ /*- * Copyright (c) 1982, 1986, 1989, 1993 @@ -63,7 +63,7 @@ * 2.99.9 (299000900) */ -#define __NetBSD_Version__ 699000400 /* NetBSD 6.99.4 */ +#define __NetBSD_Version__ 699000500 /* NetBSD 6.99.5 */ #define __NetBSD_Prereq__(M,m,p) (((((M) * 100000000) + \ (m) * 1000000) + (p) * 100) <= __NetBSD_Version__)