diff options
| author | jdolecek <jdolecek@NetBSD.org> | 2017-10-20 07:06:05 +0000 |
|---|---|---|
| committer | jdolecek <jdolecek@NetBSD.org> | 2017-10-20 07:06:05 +0000 |
| commit | a1bf30e8664357bafc3ccae2f9fd0a82b80da38d (patch) | |
| tree | bbe67330ed63b1c91a85eaa6f8e1a5164678e218 /sys | |
| parent | ad78d490fdb1c20addcc0d39920b7609a2133ad9 (diff) | |
move ata_queue_alloc(1) and ata_queue_free() calls to ata_channel_init()
and ata_channel_destroy() respectively, to make attachment code simpler,
and to make it easier to spot special queue manipulation like cmdide(4)
on topic of PR kern/52606
Diffstat (limited to 'sys')
46 files changed, 122 insertions, 205 deletions
diff --git a/sys/arch/acorn32/eb7500atx/rside.c b/sys/arch/acorn32/eb7500atx/rside.c index 14c89045f98..8d8dd916433 100644 --- a/sys/arch/acorn32/eb7500atx/rside.c +++ b/sys/arch/acorn32/eb7500atx/rside.c @@ -1,4 +1,4 @@ -/* $NetBSD: rside.c,v 1.15 2017/10/07 16:05:31 jdolecek Exp $ */ +/* $NetBSD: rside.c,v 1.16 2017/10/20 07:06:05 jdolecek Exp $ */ /* * Copyright (c) 2004 Christopher Gilbert @@ -56,7 +56,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rside.c,v 1.15 2017/10/07 16:05:31 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rside.c,v 1.16 2017/10/20 07:06:05 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -198,7 +198,6 @@ rside_attach(device_t parent, device_t self, void *aux) cp->ch_channel = channel; cp->ch_atac = &sc->sc_wdcdev.sc_atac; - cp->ch_queue = ata_queue_alloc(1); wdr->cmd_iot = wdr->ctl_iot = &sc->sc_tag; if (bus_space_map(wdr->cmd_iot, rside_info[channel].drive_registers, diff --git a/sys/arch/acorn32/mainbus/wdc_pioc.c b/sys/arch/acorn32/mainbus/wdc_pioc.c index 67f0a0cc0c6..12da81cce7f 100644 --- a/sys/arch/acorn32/mainbus/wdc_pioc.c +++ b/sys/arch/acorn32/mainbus/wdc_pioc.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_pioc.c,v 1.29 2017/10/07 16:05:31 jdolecek Exp $ */ +/* $NetBSD: wdc_pioc.c,v 1.30 2017/10/20 07:06:06 jdolecek Exp $ */ /* * Copyright (c) 1997-1998 Mark Brinicombe. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_pioc.c,v 1.29 2017/10/07 16:05:31 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_pioc.c,v 1.30 2017/10/20 07:06:06 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -179,7 +179,6 @@ wdc_pioc_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.sc_atac.atac_nchannels = 1; sc->sc_wdcdev.wdc_maxdrives = 2; sc->sc_channel.ch_channel = 0; - sc->sc_channel.ch_queue = ata_queue_alloc(1); wdc_init_shadow_regs(wdr); diff --git a/sys/arch/acorn32/podulebus/icside.c b/sys/arch/acorn32/podulebus/icside.c index 9171d40cb43..61cb1adfac3 100644 --- a/sys/arch/acorn32/podulebus/icside.c +++ b/sys/arch/acorn32/podulebus/icside.c @@ -1,4 +1,4 @@ -/* $NetBSD: icside.c,v 1.33 2017/10/07 16:05:31 jdolecek Exp $ */ +/* $NetBSD: icside.c,v 1.34 2017/10/20 07:06:06 jdolecek Exp $ */ /* * Copyright (c) 1997-1998 Mark Brinicombe @@ -42,7 +42,7 @@ #include <sys/param.h> -__KERNEL_RCSID(0, "$NetBSD: icside.c,v 1.33 2017/10/07 16:05:31 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: icside.c,v 1.34 2017/10/20 07:06:06 jdolecek Exp $"); #include <sys/systm.h> #include <sys/conf.h> @@ -269,7 +269,6 @@ icside_attach(device_t parent, device_t self, void *aux) cp->ch_channel = channel; cp->ch_atac = &sc->sc_wdcdev.sc_atac; - cp->ch_queue = ata_queue_alloc(1); wdr->cmd_iot = &sc->sc_tag; wdr->ctl_iot = &sc->sc_tag; if (ide->modspace) diff --git a/sys/arch/acorn32/podulebus/rapide.c b/sys/arch/acorn32/podulebus/rapide.c index e32f0a8c93d..275eefa6107 100644 --- a/sys/arch/acorn32/podulebus/rapide.c +++ b/sys/arch/acorn32/podulebus/rapide.c @@ -1,4 +1,4 @@ -/* $NetBSD: rapide.c,v 1.31 2017/10/07 16:05:31 jdolecek Exp $ */ +/* $NetBSD: rapide.c,v 1.32 2017/10/20 07:06:06 jdolecek Exp $ */ /* * Copyright (c) 1997-1998 Mark Brinicombe @@ -68,7 +68,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rapide.c,v 1.31 2017/10/07 16:05:31 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rapide.c,v 1.32 2017/10/20 07:06:06 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -258,7 +258,6 @@ rapide_attach(device_t parent, device_t self, void *aux) cp->ch_channel = channel; cp->ch_atac = &sc->sc_wdcdev.sc_atac; - cp->ch_queue = ata_queue_alloc(1); wdr->cmd_iot = iot; wdr->ctl_iot = iot; wdr->data32iot = iot; diff --git a/sys/arch/acorn32/podulebus/simide.c b/sys/arch/acorn32/podulebus/simide.c index 0215f259e1b..24b84f1699f 100644 --- a/sys/arch/acorn32/podulebus/simide.c +++ b/sys/arch/acorn32/podulebus/simide.c @@ -1,4 +1,4 @@ -/* $NetBSD: simide.c,v 1.30 2017/10/07 16:05:31 jdolecek Exp $ */ +/* $NetBSD: simide.c,v 1.31 2017/10/20 07:06:06 jdolecek Exp $ */ /* * Copyright (c) 1997-1998 Mark Brinicombe @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: simide.c,v 1.30 2017/10/07 16:05:31 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: simide.c,v 1.31 2017/10/20 07:06:06 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -257,7 +257,6 @@ simide_attach(device_t parent, device_t self, void *aux) cp->ch_channel = channel; cp->ch_atac = &sc->sc_wdcdev.sc_atac; - cp->ch_queue = ata_queue_alloc(1); wdr->cmd_iot = wdr->ctl_iot = &sc->sc_tag; iobase = pa->pa_podule->mod_base; if (bus_space_map(wdr->cmd_iot, iobase + diff --git a/sys/arch/amiga/dev/efa.c b/sys/arch/amiga/dev/efa.c index 4664a71d56b..1f4e23f5fa9 100644 --- a/sys/arch/amiga/dev/efa.c +++ b/sys/arch/amiga/dev/efa.c @@ -1,4 +1,4 @@ -/* $NetBSD: efa.c,v 1.14 2017/10/07 16:05:31 jdolecek Exp $ */ +/* $NetBSD: efa.c,v 1.15 2017/10/20 07:06:06 jdolecek Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. @@ -208,7 +208,6 @@ efa_attach_channel(struct efa_softc *sc, int chnum) sc->sc_ports[chnum].chan.ch_channel = chnum; sc->sc_ports[chnum].chan.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->sc_ports[chnum].chan.ch_queue = ata_queue_alloc(1); if (!sc->sc_32bit_io) efa_select_regset(sc, chnum, 0); /* Start in PIO0. */ diff --git a/sys/arch/amiga/dev/wdc_acafh.c b/sys/arch/amiga/dev/wdc_acafh.c index bef10fb2941..fcc5736ced7 100644 --- a/sys/arch/amiga/dev/wdc_acafh.c +++ b/sys/arch/amiga/dev/wdc_acafh.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_acafh.c,v 1.5 2017/10/07 16:05:31 jdolecek Exp $ */ +/* $NetBSD: wdc_acafh.c,v 1.6 2017/10/20 07:06:06 jdolecek Exp $ */ /*- * Copyright (c) 2000, 2003, 2013 The NetBSD Foundation, Inc. @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_acafh.c,v 1.5 2017/10/07 16:05:31 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_acafh.c,v 1.6 2017/10/20 07:06:06 jdolecek Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -153,7 +153,6 @@ wdc_acafh_attach_channel(struct wdc_acafh_softc *sc, int chnum) memset(&sc->sc_slots[chnum],0,sizeof(struct wdc_acafh_slot)); sc->sc_slots[chnum].channel.ch_channel = chnum; sc->sc_slots[chnum].channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->sc_slots[chnum].channel.ch_queue = ata_queue_alloc(1); wdc_acafh_map_channel(sc, chnum); diff --git a/sys/arch/amiga/dev/wdc_amiga.c b/sys/arch/amiga/dev/wdc_amiga.c index 998a3205a91..dd546dbf32c 100644 --- a/sys/arch/amiga/dev/wdc_amiga.c +++ b/sys/arch/amiga/dev/wdc_amiga.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_amiga.c,v 1.39 2017/10/07 16:05:31 jdolecek Exp $ */ +/* $NetBSD: wdc_amiga.c,v 1.40 2017/10/20 07:06:06 jdolecek Exp $ */ /*- * Copyright (c) 2000, 2003 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_amiga.c,v 1.39 2017/10/07 16:05:31 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_amiga.c,v 1.40 2017/10/20 07:06:06 jdolecek Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -135,7 +135,6 @@ wdc_amiga_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.wdc_maxdrives = 2; sc->sc_channel.ch_channel = 0; sc->sc_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->sc_channel.ch_queue = ata_queue_alloc(1); wdc_init_shadow_regs(wdr); diff --git a/sys/arch/amiga/dev/wdc_buddha.c b/sys/arch/amiga/dev/wdc_buddha.c index e8708fd68ca..a5e1c358b17 100644 --- a/sys/arch/amiga/dev/wdc_buddha.c +++ b/sys/arch/amiga/dev/wdc_buddha.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_buddha.c,v 1.9 2017/10/07 16:05:31 jdolecek Exp $ */ +/* $NetBSD: wdc_buddha.c,v 1.10 2017/10/20 07:06:06 jdolecek Exp $ */ /*- * Copyright (c) 2000 The NetBSD Foundation, Inc. @@ -128,12 +128,6 @@ wdc_buddha_attach(device_t parent, device_t self, void *aux) cp->ch_channel = ch; cp->ch_atac = &sc->sc_wdcdev.sc_atac; - cp->ch_queue = ata_queue_alloc(1); - if (cp->ch_queue == NULL) { - aprint_error_dev(self, - "can't allocate memory for command queue\n"); - return; - } /* * XXX According to the Buddha docs, we should use a method diff --git a/sys/arch/amiga/dev/wdc_xsurf.c b/sys/arch/amiga/dev/wdc_xsurf.c index 5e64e61cee1..046c4b285c3 100644 --- a/sys/arch/amiga/dev/wdc_xsurf.c +++ b/sys/arch/amiga/dev/wdc_xsurf.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_xsurf.c,v 1.5 2017/10/07 16:05:31 jdolecek Exp $ */ +/* $NetBSD: wdc_xsurf.c,v 1.6 2017/10/20 07:06:06 jdolecek Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -164,7 +164,6 @@ wdc_xsurf_attach_channel(struct wdc_xsurf_softc *sc, int chnum) memset(&sc->sc_ports[chnum],0,sizeof(struct wdc_xsurf_port)); sc->sc_ports[chnum].channel.ch_channel = chnum; sc->sc_ports[chnum].channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->sc_ports[chnum].channel.ch_queue = ata_queue_alloc(1); wdc_xsurf_map_channel(sc, chnum); diff --git a/sys/arch/arm/gemini/obio_wdc.c b/sys/arch/arm/gemini/obio_wdc.c index f2386200466..e3b1e46f5b4 100644 --- a/sys/arch/arm/gemini/obio_wdc.c +++ b/sys/arch/arm/gemini/obio_wdc.c @@ -1,4 +1,4 @@ -/* $NetBSD: obio_wdc.c,v 1.7 2017/10/07 19:58:53 jdolecek Exp $ */ +/* $NetBSD: obio_wdc.c,v 1.8 2017/10/20 07:06:06 jdolecek Exp $ */ /* adapted from iq31244/wdc_obio.c: * NetBSD: wdc_obio.c,v 1.5 2008/04/28 20:23:16 martin Exp @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: obio_wdc.c,v 1.7 2017/10/07 19:58:53 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: obio_wdc.c,v 1.8 2017/10/20 07:06:06 jdolecek Exp $"); #include "locators.h" @@ -140,7 +140,7 @@ wdc_obio_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.wdc_maxdrives = 2; sc->ata_channel.ch_channel = 0; sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->ata_channel.ch_queue = ata_queue_alloc(1); + wdc_init_shadow_regs(wdr); aprint_normal("\n"); diff --git a/sys/arch/atari/dev/wdc_mb.c b/sys/arch/atari/dev/wdc_mb.c index 6727a8cb49c..610c88f496c 100644 --- a/sys/arch/atari/dev/wdc_mb.c +++ b/sys/arch/atari/dev/wdc_mb.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_mb.c,v 1.39 2017/10/07 16:05:31 jdolecek Exp $ */ +/* $NetBSD: wdc_mb.c,v 1.40 2017/10/20 07:06:06 jdolecek Exp $ */ /*- * Copyright (c) 1998, 2003 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_mb.c,v 1.39 2017/10/07 16:05:31 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_mb.c,v 1.40 2017/10/20 07:06:06 jdolecek Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -199,7 +199,7 @@ wdc_mb_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.wdc_maxdrives = 2; sc->sc_channel.ch_channel = 0; sc->sc_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->sc_channel.ch_queue = ata_queue_alloc(1); + wdc_init_shadow_regs(wdr); /* diff --git a/sys/arch/dreamcast/dev/g1/wdc_g1.c b/sys/arch/dreamcast/dev/g1/wdc_g1.c index 56e0a659481..43cd0a153bb 100644 --- a/sys/arch/dreamcast/dev/g1/wdc_g1.c +++ b/sys/arch/dreamcast/dev/g1/wdc_g1.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_g1.c,v 1.2 2017/10/07 19:58:53 jdolecek Exp $ */ +/* $NetBSD: wdc_g1.c,v 1.3 2017/10/20 07:06:06 jdolecek Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -163,7 +163,7 @@ wdc_g1_attach(struct device *parent, struct device *self, void *aux) sc->sc_wdcdev.reset = wdc_g1_do_reset; sc->ata_channel.ch_channel = 0; sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->ata_channel.ch_queue = ata_queue_alloc(1); + wdc_init_shadow_regs(wdr); aprint_normal(": %s\n", sysasic_intr_string(SYSASIC_IRL9)); diff --git a/sys/arch/evbarm/iq31244/wdc_obio.c b/sys/arch/evbarm/iq31244/wdc_obio.c index 70a15556cce..45881015d51 100644 --- a/sys/arch/evbarm/iq31244/wdc_obio.c +++ b/sys/arch/evbarm/iq31244/wdc_obio.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_obio.c,v 1.10 2017/10/07 19:58:53 jdolecek Exp $ */ +/* $NetBSD: wdc_obio.c,v 1.11 2017/10/20 07:06:06 jdolecek Exp $ */ /*- * Copyright (c) 1998, 2003, 2005 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.10 2017/10/07 19:58:53 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.11 2017/10/20 07:06:06 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -111,7 +111,7 @@ wdc_obio_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.wdc_maxdrives = 2; sc->ata_channel.ch_channel = 0; sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->ata_channel.ch_queue = ata_queue_alloc(1); + wdc_init_shadow_regs(wdr); aprint_normal("\n"); diff --git a/sys/arch/evbarm/tsarm/wdc_ts.c b/sys/arch/evbarm/tsarm/wdc_ts.c index d8baaa007fe..e23cd43884a 100644 --- a/sys/arch/evbarm/tsarm/wdc_ts.c +++ b/sys/arch/evbarm/tsarm/wdc_ts.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_ts.c,v 1.10 2017/10/07 19:58:53 jdolecek Exp $ */ +/* $NetBSD: wdc_ts.c,v 1.11 2017/10/20 07:06:06 jdolecek Exp $ */ /*- * Copyright (c) 1998, 2003 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_ts.c,v 1.10 2017/10/07 19:58:53 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_ts.c,v 1.11 2017/10/20 07:06:06 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -109,7 +109,7 @@ wdc_ts_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.wdc_maxdrives = 2; sc->ata_channel.ch_channel = 0; sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->ata_channel.ch_queue = ata_queue_alloc(1); + wdc_init_shadow_regs(wdr); aprint_normal("\n"); diff --git a/sys/arch/evbppc/mpc85xx/wdc_obio.c b/sys/arch/evbppc/mpc85xx/wdc_obio.c index 0a84fcf6969..cb34d995253 100644 --- a/sys/arch/evbppc/mpc85xx/wdc_obio.c +++ b/sys/arch/evbppc/mpc85xx/wdc_obio.c @@ -31,7 +31,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.5 2017/10/07 19:58:54 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.6 2017/10/20 07:06:06 jdolecek Exp $"); #include <sys/param.h> #include <sys/cpu.h> @@ -161,9 +161,8 @@ wdc_obio_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.wdc_maxdrives = 2; sc->ata_channel.ch_channel = 0; sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->ata_channel.ch_queue = ata_queue_alloc(1); - wdc_init_shadow_regs(wdr); + wdc_init_shadow_regs(wdr); /* * The interrupt line is controlled by a jumper. We can't detect diff --git a/sys/arch/i386/pnpbios/pciide_pnpbios.c b/sys/arch/i386/pnpbios/pciide_pnpbios.c index 578bd6d7a9d..37054d62b18 100644 --- a/sys/arch/i386/pnpbios/pciide_pnpbios.c +++ b/sys/arch/i386/pnpbios/pciide_pnpbios.c @@ -1,4 +1,4 @@ -/* $NetBSD: pciide_pnpbios.c,v 1.32 2017/10/07 16:05:32 jdolecek Exp $ */ +/* $NetBSD: pciide_pnpbios.c,v 1.33 2017/10/20 07:06:06 jdolecek Exp $ */ /* * Copyright (c) 1999 Soren S. Jorvang. All rights reserved. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pciide_pnpbios.c,v 1.32 2017/10/07 16:05:32 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pciide_pnpbios.c,v 1.33 2017/10/20 07:06:06 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -118,12 +118,6 @@ pciide_pnpbios_attach(device_t parent, device_t self, void *aux) sc->wdc_chanarray[0] = &cp->ata_channel; cp->ata_channel.ch_channel = 0; cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - cp->ata_channel.ch_queue = ata_queue_alloc(1); - if (cp->ata_channel.ch_queue == NULL) { - aprint_error_dev(self, "unable to allocate memory for command " - "queue\n"); - return; - } sc->sc_dma_ok = 1; for (i = 0; i < IDEDMA_NREGS; i++) { diff --git a/sys/arch/landisk/dev/wdc_obio.c b/sys/arch/landisk/dev/wdc_obio.c index d8f829fc360..0e0030cb69d 100644 --- a/sys/arch/landisk/dev/wdc_obio.c +++ b/sys/arch/landisk/dev/wdc_obio.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_obio.c,v 1.9 2017/10/07 16:05:32 jdolecek Exp $ */ +/* $NetBSD: wdc_obio.c,v 1.10 2017/10/20 07:06:06 jdolecek Exp $ */ /*- * Copyright (c) 1998, 2003 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.9 2017/10/07 16:05:32 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.10 2017/10/20 07:06:06 jdolecek Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -166,7 +166,6 @@ wdc_obio_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.wdc_maxdrives = 2; sc->sc_channel.ch_channel = 0; sc->sc_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->sc_channel.ch_queue = ata_queue_alloc(1); wdc_init_shadow_regs(wdr); diff --git a/sys/arch/mac68k/obio/wdc_obio.c b/sys/arch/mac68k/obio/wdc_obio.c index baa3cc6c313..be20ffcd1d9 100644 --- a/sys/arch/mac68k/obio/wdc_obio.c +++ b/sys/arch/mac68k/obio/wdc_obio.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_obio.c,v 1.28 2017/10/07 16:05:32 jdolecek Exp $ */ +/* $NetBSD: wdc_obio.c,v 1.29 2017/10/20 07:06:07 jdolecek Exp $ */ /* * Copyright (c) 2002 Takeshi Shibagaki All rights reserved. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.28 2017/10/07 16:05:32 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.29 2017/10/20 07:06:07 jdolecek Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -215,7 +215,7 @@ wdc_obio_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.wdc_maxdrives = 2; chp->ch_channel = 0; chp->ch_atac = &sc->sc_wdcdev.sc_atac; - chp->ch_queue = ata_queue_alloc(1); + wdc_init_shadow_regs(wdr); aprint_normal("\n"); diff --git a/sys/arch/macppc/dev/kauai.c b/sys/arch/macppc/dev/kauai.c index b5b3f55b2d3..ac6566a960f 100644 --- a/sys/arch/macppc/dev/kauai.c +++ b/sys/arch/macppc/dev/kauai.c @@ -1,4 +1,4 @@ -/* $NetBSD: kauai.c,v 1.37 2017/10/07 16:05:32 jdolecek Exp $ */ +/* $NetBSD: kauai.c,v 1.38 2017/10/20 07:06:07 jdolecek Exp $ */ /*- * Copyright (c) 2003 Tsubai Masanari. All rights reserved. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kauai.c,v 1.37 2017/10/07 16:05:32 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kauai.c,v 1.38 2017/10/20 07:06:07 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -211,7 +211,7 @@ kauai_attach(device_t parent, device_t self, void *aux) chp->ch_channel = 0; chp->ch_atac = &sc->sc_wdcdev.sc_atac; - chp->ch_queue = ata_queue_alloc(1); + wdc_init_shadow_regs(wdr); wdcattach(chp); diff --git a/sys/arch/macppc/dev/wdc_obio.c b/sys/arch/macppc/dev/wdc_obio.c index 6b3db68aa90..dde436ed14f 100644 --- a/sys/arch/macppc/dev/wdc_obio.c +++ b/sys/arch/macppc/dev/wdc_obio.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_obio.c,v 1.60 2017/10/07 16:05:32 jdolecek Exp $ */ +/* $NetBSD: wdc_obio.c,v 1.61 2017/10/20 07:06:07 jdolecek Exp $ */ /*- * Copyright (c) 1998, 2003 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.60 2017/10/07 16:05:32 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.61 2017/10/20 07:06:07 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -236,9 +236,9 @@ wdc_obio_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.dma_init = wdc_obio_dma_init; sc->sc_wdcdev.dma_start = wdc_obio_dma_start; sc->sc_wdcdev.dma_finish = wdc_obio_dma_finish; + chp->ch_channel = 0; chp->ch_atac = &sc->sc_wdcdev.sc_atac; - chp->ch_queue = ata_queue_alloc(1); wdc_init_shadow_regs(wdr); diff --git a/sys/arch/mips/adm5120/dev/wdc_extio.c b/sys/arch/mips/adm5120/dev/wdc_extio.c index 0d5a26c0a0c..c39d8b5e8d3 100644 --- a/sys/arch/mips/adm5120/dev/wdc_extio.c +++ b/sys/arch/mips/adm5120/dev/wdc_extio.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_extio.c,v 1.9 2017/10/07 16:05:32 jdolecek Exp $ */ +/* $NetBSD: wdc_extio.c,v 1.10 2017/10/20 07:06:07 jdolecek Exp $ */ /*- * Copyright (c) 2007 David Young. All rights reserved. @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_extio.c,v 1.9 2017/10/07 16:05:32 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_extio.c,v 1.10 2017/10/20 07:06:07 jdolecek Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -307,9 +307,9 @@ wdc_extio_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.sc_atac.atac_channels = sc->sc_chanlist; sc->sc_wdcdev.sc_atac.atac_nchannels = 1; sc->sc_wdcdev.wdc_maxdrives = 2; + chp->ch_channel = 0; chp->ch_atac = &sc->sc_wdcdev.sc_atac; - chp->ch_queue = ata_queue_alloc(1); aprint_normal("\n"); diff --git a/sys/arch/mmeye/dev/wdc_mainbus.c b/sys/arch/mmeye/dev/wdc_mainbus.c index 22c63e76c59..5a2eb62e1d7 100644 --- a/sys/arch/mmeye/dev/wdc_mainbus.c +++ b/sys/arch/mmeye/dev/wdc_mainbus.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_mainbus.c,v 1.5 2017/10/07 19:58:54 jdolecek Exp $ */ +/* $NetBSD: wdc_mainbus.c,v 1.6 2017/10/20 07:06:07 jdolecek Exp $ */ /* * Copyright (c) 2010 KIYOHARA Takashi * All rights reserved. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_mainbus.c,v 1.5 2017/10/07 19:58:54 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_mainbus.c,v 1.6 2017/10/20 07:06:07 jdolecek Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -172,7 +172,7 @@ wdc_mainbus_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.wdc_maxdrives = 2; sc->ata_channel.ch_channel = 0; sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->ata_channel.ch_queue = ata_queue_alloc(1); + wdc_init_shadow_regs(wdr); aprint_normal("\n"); diff --git a/sys/arch/playstation2/dev/wdc_spd.c b/sys/arch/playstation2/dev/wdc_spd.c index 8a8a0f3f7f4..0b81c292ea4 100644 --- a/sys/arch/playstation2/dev/wdc_spd.c +++ b/sys/arch/playstation2/dev/wdc_spd.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_spd.c,v 1.28 2017/10/07 16:05:32 jdolecek Exp $ */ +/* $NetBSD: wdc_spd.c,v 1.29 2017/10/20 07:06:07 jdolecek Exp $ */ /*- * Copyright (c) 2001, 2003 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_spd.c,v 1.28 2017/10/07 16:05:32 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_spd.c,v 1.29 2017/10/20 07:06:07 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -203,7 +203,6 @@ wdc_spd_attach(device_t parent, device_t self, void *aux) wdc->sc_atac.atac_nchannels = 1; ch->ch_channel = 0; ch->ch_atac = &sc->sc_wdcdev.sc_atac; - ch->ch_queue = ata_queue_alloc(1); ch->ch_ndrives = 2; __wdc_spd_bus_space(CHAN_TO_WDC_REGS(ch)); diff --git a/sys/arch/prep/pnpbus/wdc_pnpbus.c b/sys/arch/prep/pnpbus/wdc_pnpbus.c index b79bedb5296..694e4f03cbe 100644 --- a/sys/arch/prep/pnpbus/wdc_pnpbus.c +++ b/sys/arch/prep/pnpbus/wdc_pnpbus.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_pnpbus.c,v 1.14 2017/10/07 16:05:32 jdolecek Exp $ */ +/* $NetBSD: wdc_pnpbus.c,v 1.15 2017/10/20 07:06:07 jdolecek Exp $ */ /*- * Copyright (c) 1998, 2003 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_pnpbus.c,v 1.14 2017/10/07 16:05:32 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_pnpbus.c,v 1.15 2017/10/20 07:06:07 jdolecek Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -140,7 +140,7 @@ wdc_pnpbus_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.wdc_maxdrives = 2; sc->sc_channel.ch_channel = 0; sc->sc_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->sc_channel.ch_queue = ata_queue_alloc(1); + wdc_init_shadow_regs(wdr); sc->sc_ih = pnpbus_intr_establish(0, IPL_BIO, IST_PNP, diff --git a/sys/dev/ata/ata.c b/sys/dev/ata/ata.c index 9315a4692d0..c5443e64980 100644 --- a/sys/dev/ata/ata.c +++ b/sys/dev/ata/ata.c @@ -1,4 +1,4 @@ -/* $NetBSD: ata.c,v 1.139 2017/10/19 20:45:07 jdolecek Exp $ */ +/* $NetBSD: ata.c,v 1.140 2017/10/20 07:06:07 jdolecek Exp $ */ /* * Copyright (c) 1998, 2001 Manuel Bouyer. All rights reserved. @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ata.c,v 1.139 2017/10/19 20:45:07 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ata.c,v 1.140 2017/10/20 07:06:07 jdolecek Exp $"); #include "opt_ata.h" @@ -196,10 +196,10 @@ ata_channel_attach(struct ata_channel *chp) if (chp->ch_flags & ATACH_DISABLED) return; - KASSERT(chp->ch_queue != NULL); - ata_channel_init(chp); + KASSERT(chp->ch_queue != NULL); + chp->atabus = config_found_ia(chp->ch_atac->atac_dev, "ata", chp, atabusprint); } diff --git a/sys/dev/ata/ata_subr.c b/sys/dev/ata/ata_subr.c index 721f41c01e2..a94107dfeb7 100644 --- a/sys/dev/ata/ata_subr.c +++ b/sys/dev/ata/ata_subr.c @@ -1,4 +1,4 @@ -/* $NetBSD: ata_subr.c,v 1.3 2017/10/19 20:45:07 jdolecek Exp $ */ +/* $NetBSD: ata_subr.c,v 1.4 2017/10/20 07:06:07 jdolecek Exp $ */ /* * Copyright (c) 1998, 2001 Manuel Bouyer. All rights reserved. @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ata_subr.c,v 1.3 2017/10/19 20:45:07 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ata_subr.c,v 1.4 2017/10/20 07:06:07 jdolecek Exp $"); #include "opt_ata.h" @@ -225,11 +225,21 @@ ata_channel_init(struct ata_channel *chp) { mutex_init(&chp->ch_lock, MUTEX_DEFAULT, IPL_BIO); cv_init(&chp->ch_thr_idle, "atath"); + + /* Optionally setup the queue, too */ + if (chp->ch_queue == NULL) { + chp->ch_queue = ata_queue_alloc(1); + } } void ata_channel_destroy(struct ata_channel *chp) { + if (chp->ch_queue != NULL) { + ata_queue_free(chp->ch_queue); + chp->ch_queue = NULL; + } + mutex_destroy(&chp->ch_lock); cv_destroy(&chp->ch_thr_idle); } diff --git a/sys/dev/ic/ahcisata_core.c b/sys/dev/ic/ahcisata_core.c index bcf098ed12c..3071997cc1e 100644 --- a/sys/dev/ic/ahcisata_core.c +++ b/sys/dev/ic/ahcisata_core.c @@ -1,4 +1,4 @@ -/* $NetBSD: ahcisata_core.c,v 1.58 2017/10/07 16:05:32 jdolecek Exp $ */ +/* $NetBSD: ahcisata_core.c,v 1.59 2017/10/20 07:06:07 jdolecek Exp $ */ /* * Copyright (c) 2006 Manuel Bouyer. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ahcisata_core.c,v 1.58 2017/10/07 16:05:32 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ahcisata_core.c,v 1.59 2017/10/20 07:06:07 jdolecek Exp $"); #include <sys/types.h> #include <sys/malloc.h> @@ -516,8 +516,6 @@ ahci_detach(struct ahci_softc *sc, int flags) bus_dmamem_free(sc->sc_dmat, &achp->ahcic_cmd_tbl_seg, achp->ahcic_cmd_tbl_nseg); - ata_queue_free(chp->ch_queue); - chp->ch_queue = NULL; chp->atabus = NULL; ata_channel_detach(chp); diff --git a/sys/dev/ic/ninjaata32.c b/sys/dev/ic/ninjaata32.c index caf8ab7b592..73a80c8f92a 100644 --- a/sys/dev/ic/ninjaata32.c +++ b/sys/dev/ic/ninjaata32.c @@ -1,4 +1,4 @@ -/* $NetBSD: ninjaata32.c,v 1.19 2017/10/07 16:05:32 jdolecek Exp $ */ +/* $NetBSD: ninjaata32.c,v 1.20 2017/10/20 07:06:07 jdolecek Exp $ */ /* * Copyright (c) 2006 ITOH Yasufumi. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ninjaata32.c,v 1.19 2017/10/07 16:05:32 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ninjaata32.c,v 1.20 2017/10/20 07:06:07 jdolecek Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -191,7 +191,6 @@ njata32_attach(struct njata32_softc *sc) sc->sc_wdc_chanarray[0] = &sc->sc_ch[0].ch_ata_channel; sc->sc_ch[0].ch_ata_channel.ch_channel = 0; sc->sc_ch[0].ch_ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->sc_ch[0].ch_ata_channel.ch_queue = ata_queue_alloc(1); sc->sc_wdcdev.wdc_maxdrives = 2; /* max number of drives per channel */ /* map ATA registers */ @@ -264,8 +263,6 @@ njata32_detach(struct njata32_softc *sc, int flags) bus_dmamem_unmap(sc->sc_dmat, (void *)sc->sc_sgtpg, sizeof(struct njata32_dma_page)); bus_dmamem_free(sc->sc_dmat, &sc->sc_sgt_seg, sc->sc_sgt_nsegs); - - ata_queue_free(sc->sc_ch[0].ch_ata_channel.ch_queue); } return 0; diff --git a/sys/dev/ic/siisata.c b/sys/dev/ic/siisata.c index 068f4c5db33..ad3a98a2dcb 100644 --- a/sys/dev/ic/siisata.c +++ b/sys/dev/ic/siisata.c @@ -1,4 +1,4 @@ -/* $NetBSD: siisata.c,v 1.34 2017/10/07 16:05:32 jdolecek Exp $ */ +/* $NetBSD: siisata.c,v 1.35 2017/10/20 07:06:07 jdolecek Exp $ */ /* from ahcisata_core.c */ @@ -79,7 +79,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: siisata.c,v 1.34 2017/10/07 16:05:32 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: siisata.c,v 1.35 2017/10/20 07:06:07 jdolecek Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -432,8 +432,6 @@ siisata_detach(struct siisata_softc *sc, int flags) bus_dmamem_free(sc->sc_dmat, &schp->sch_prb_seg, schp->sch_prb_nseg); - ata_queue_free(chp->ch_queue); - chp->ch_queue = NULL; chp->atabus = NULL; ata_channel_detach(chp); diff --git a/sys/dev/ic/wdc.c b/sys/dev/ic/wdc.c index 4b7b285d09e..7dc36a5712f 100644 --- a/sys/dev/ic/wdc.c +++ b/sys/dev/ic/wdc.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc.c,v 1.287 2017/10/17 18:52:50 jdolecek Exp $ */ +/* $NetBSD: wdc.c,v 1.288 2017/10/20 07:06:07 jdolecek Exp $ */ /* * Copyright (c) 1998, 2001, 2003 Manuel Bouyer. All rights reserved. @@ -58,7 +58,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc.c,v 1.287 2017/10/17 18:52:50 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc.c,v 1.288 2017/10/20 07:06:07 jdolecek Exp $"); #include "opt_ata.h" #include "opt_wdc.h" @@ -484,7 +484,6 @@ wdcprobe(struct wdc_regs *wdr) memset(&ch, 0, sizeof(ch)); ata_channel_init(&ch); ch.ch_atac = &wdc.sc_atac; - ch.ch_queue = ata_queue_alloc(1); wdc.regs = wdr; /* default reset method */ @@ -493,7 +492,6 @@ wdcprobe(struct wdc_regs *wdr) rv = wdcprobe1(&ch, 1); - ata_queue_free(ch.ch_queue); ata_channel_destroy(&ch); return rv; diff --git a/sys/dev/ic/wdc_upc.c b/sys/dev/ic/wdc_upc.c index 1c685e933ac..f50f26b3efe 100644 --- a/sys/dev/ic/wdc_upc.c +++ b/sys/dev/ic/wdc_upc.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_upc.c,v 1.30 2017/10/07 19:52:11 jdolecek Exp $ */ +/* $NetBSD: wdc_upc.c,v 1.31 2017/10/20 07:06:07 jdolecek Exp $ */ /*- * Copyright (c) 2000 Ben Harris * All rights reserved. @@ -28,7 +28,7 @@ /* This file is part of NetBSD/arm26 -- a port of NetBSD to ARM2/3 machines. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_upc.c,v 1.30 2017/10/07 19:52:11 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_upc.c,v 1.31 2017/10/20 07:06:07 jdolecek Exp $"); #include <sys/param.h> #include <sys/device.h> @@ -87,7 +87,6 @@ wdc_upc_attach(device_t parent, device_t self, void *aux) wdr->ctl_ioh = ua->ua_ioh2; sc->sc_channel.ch_channel = 0; sc->sc_channel.ch_atac = &sc->sc_wdc.sc_atac; - sc->sc_channel.ch_queue = ata_queue_alloc(1); sc->sc_wdc.wdc_maxdrives = 2; for (i = 0; i < WDC_NREG; i++) { if (bus_space_subregion(ua->ua_iot, ua->ua_ioh, i, diff --git a/sys/dev/isa/wdc_isa.c b/sys/dev/isa/wdc_isa.c index 5445a4cbda8..659e67bb2c1 100644 --- a/sys/dev/isa/wdc_isa.c +++ b/sys/dev/isa/wdc_isa.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_isa.c,v 1.60 2017/10/07 16:05:32 jdolecek Exp $ */ +/* $NetBSD: wdc_isa.c,v 1.61 2017/10/20 07:06:07 jdolecek Exp $ */ /*- * Copyright (c) 1998, 2003 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_isa.c,v 1.60 2017/10/07 16:05:32 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_isa.c,v 1.61 2017/10/20 07:06:07 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -219,7 +219,7 @@ wdc_isa_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.wdc_maxdrives = 2; sc->ata_channel.ch_channel = 0; sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->ata_channel.ch_queue = ata_queue_alloc(1); + wdc_init_shadow_regs(wdr); aprint_normal("\n"); diff --git a/sys/dev/isapnp/wdc_isapnp.c b/sys/dev/isapnp/wdc_isapnp.c index 5dec27b9130..4647f57f0cc 100644 --- a/sys/dev/isapnp/wdc_isapnp.c +++ b/sys/dev/isapnp/wdc_isapnp.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_isapnp.c,v 1.43 2017/10/07 20:02:07 jdolecek Exp $ */ +/* $NetBSD: wdc_isapnp.c,v 1.44 2017/10/20 07:06:07 jdolecek Exp $ */ /*- * Copyright (c) 1998, 2003 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_isapnp.c,v 1.43 2017/10/07 20:02:07 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_isapnp.c,v 1.44 2017/10/20 07:06:07 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -158,7 +158,7 @@ wdc_isapnp_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.wdc_maxdrives = 2; sc->ata_channel.ch_channel = 0; sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->ata_channel.ch_queue = ata_queue_alloc(1); + wdc_init_shadow_regs(wdr); wdcattach(&sc->ata_channel); diff --git a/sys/dev/ofisa/wdc_ofisa.c b/sys/dev/ofisa/wdc_ofisa.c index 5ab1a4c5ced..dae83e4edf2 100644 --- a/sys/dev/ofisa/wdc_ofisa.c +++ b/sys/dev/ofisa/wdc_ofisa.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_ofisa.c,v 1.35 2017/10/10 05:35:15 jdolecek Exp $ */ +/* $NetBSD: wdc_ofisa.c,v 1.36 2017/10/20 07:06:07 jdolecek Exp $ */ /* * Copyright 1997, 1998 @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_ofisa.c,v 1.35 2017/10/10 05:35:15 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_ofisa.c,v 1.36 2017/10/20 07:06:07 jdolecek Exp $"); #include <sys/param.h> #include <sys/device.h> @@ -160,7 +160,7 @@ wdc_ofisa_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.wdc_maxdrives = 2; sc->sc_channel.ch_channel = 0; sc->sc_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->sc_channel.ch_queue = ata_queue_alloc(1); + wdc_init_shadow_regs(wdr); wdcattach(&sc->sc_channel); diff --git a/sys/dev/pci/artsata.c b/sys/dev/pci/artsata.c index b0e305f54f2..12dd6ca4aa6 100644 --- a/sys/dev/pci/artsata.c +++ b/sys/dev/pci/artsata.c @@ -1,4 +1,4 @@ -/* $NetBSD: artsata.c,v 1.27 2017/10/07 16:05:33 jdolecek Exp $ */ +/* $NetBSD: artsata.c,v 1.28 2017/10/20 07:06:08 jdolecek Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: artsata.c,v 1.27 2017/10/07 16:05:33 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: artsata.c,v 1.28 2017/10/20 07:06:08 jdolecek Exp $"); #include "opt_pciide.h" @@ -231,13 +231,7 @@ artisea_chansetup(struct pciide_softc *sc, int channel, cp->name = PCIIDE_CHANNEL_NAME(channel); cp->ata_channel.ch_channel = channel; cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - cp->ata_channel.ch_queue = ata_queue_alloc(1); - if (cp->ata_channel.ch_queue == NULL) { - aprint_error("%s %s channel: " - "can't allocate memory for command queue", - device_xname(sc->sc_wdcdev.sc_atac.atac_dev), cp->name); - return 0; - } + return 1; } diff --git a/sys/dev/pci/cmdide.c b/sys/dev/pci/cmdide.c index 508890a3fc8..e26808a7972 100644 --- a/sys/dev/pci/cmdide.c +++ b/sys/dev/pci/cmdide.c @@ -1,4 +1,4 @@ -/* $NetBSD: cmdide.c,v 1.40 2017/10/19 20:11:38 jdolecek Exp $ */ +/* $NetBSD: cmdide.c,v 1.41 2017/10/20 07:06:08 jdolecek Exp $ */ /* * Copyright (c) 1999, 2000, 2001 Manuel Bouyer. @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cmdide.c,v 1.40 2017/10/19 20:11:38 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cmdide.c,v 1.41 2017/10/20 07:06:08 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -154,14 +154,9 @@ cmd_channel_map(const struct pci_attach_args *pa, struct pciide_softc *sc, cp->ata_channel.ch_queue = sc->pciide_channels[0].ata_channel.ch_queue; } else { + /* XXX */ cp->ata_channel.ch_queue = ata_queue_alloc(1); } - if (cp->ata_channel.ch_queue == NULL) { - aprint_error("%s %s channel: " - "can't allocate memory for command queue", - device_xname(sc->sc_wdcdev.sc_atac.atac_dev), cp->name); - return; - } aprint_normal_dev(sc->sc_wdcdev.sc_atac.atac_dev, "%s channel %s to %s mode%s\n", cp->name, @@ -510,14 +505,6 @@ cmd680_channel_map(const struct pci_attach_args *pa, struct pciide_softc *sc, cp->ata_channel.ch_channel = channel; cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - cp->ata_channel.ch_queue = ata_queue_alloc(1); - if (cp->ata_channel.ch_queue == NULL) { - aprint_error("%s %s channel: " - "can't allocate memory for command queue", - device_xname(sc->sc_wdcdev.sc_atac.atac_dev), cp->name); - return; - } - /* XXX */ reg = 0xa2 + channel * 16; for (i = 0; i < sizeof(init_val); i++) diff --git a/sys/dev/pci/cypide.c b/sys/dev/pci/cypide.c index 5f013e80866..b05df6d39c5 100644 --- a/sys/dev/pci/cypide.c +++ b/sys/dev/pci/cypide.c @@ -1,4 +1,4 @@ -/* $NetBSD: cypide.c,v 1.31 2017/10/07 16:05:33 jdolecek Exp $ */ +/* $NetBSD: cypide.c,v 1.32 2017/10/20 07:06:08 jdolecek Exp $ */ /* * Copyright (c) 1999, 2000, 2001 Manuel Bouyer. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cypide.c,v 1.31 2017/10/07 16:05:33 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cypide.c,v 1.32 2017/10/20 07:06:08 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -148,13 +148,7 @@ cy693_chip_map(struct pciide_softc *sc, const struct pci_attach_args *pa) cp->name = PCIIDE_CHANNEL_NAME(0); cp->ata_channel.ch_channel = 0; cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - cp->ata_channel.ch_queue = ata_queue_alloc(1); - if (cp->ata_channel.ch_queue == NULL) { - aprint_error("%s primary channel: " - "can't allocate memory for command queue", - device_xname(sc->sc_wdcdev.sc_atac.atac_dev)); - return; - } + aprint_normal_dev(sc->sc_wdcdev.sc_atac.atac_dev, "primary channel %s to ", (interface & PCIIDE_INTERFACE_SETTABLE(0)) ? diff --git a/sys/dev/pci/pciide_common.c b/sys/dev/pci/pciide_common.c index ab7a215d621..665d6ae238b 100644 --- a/sys/dev/pci/pciide_common.c +++ b/sys/dev/pci/pciide_common.c @@ -1,4 +1,4 @@ -/* $NetBSD: pciide_common.c,v 1.64 2017/10/17 18:52:50 jdolecek Exp $ */ +/* $NetBSD: pciide_common.c,v 1.65 2017/10/20 07:06:08 jdolecek Exp $ */ /* @@ -70,7 +70,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pciide_common.c,v 1.64 2017/10/17 18:52:50 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pciide_common.c,v 1.65 2017/10/20 07:06:08 jdolecek Exp $"); #include <sys/param.h> @@ -208,9 +208,6 @@ pciide_common_detach(struct pciide_softc *sc, int flags) pciide_dma_table_teardown(sc, channel, drive); #endif } - - ata_queue_free(cp->ata_channel.ch_queue); - cp->ata_channel.atabus = NULL; } #if NATA_DMA @@ -877,13 +874,7 @@ pciide_chansetup(struct pciide_softc *sc, int channel, pcireg_t interface) cp->name = PCIIDE_CHANNEL_NAME(channel); cp->ata_channel.ch_channel = channel; cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - cp->ata_channel.ch_queue = ata_queue_alloc(1); - if (cp->ata_channel.ch_queue == NULL) { - aprint_error("%s %s channel: " - "can't allocate memory for command queue", - device_xname(sc->sc_wdcdev.sc_atac.atac_dev), cp->name); - return 0; - } + aprint_verbose_dev(sc->sc_wdcdev.sc_atac.atac_dev, "%s channel %s to %s mode\n", cp->name, (interface & PCIIDE_INTERFACE_SETTABLE(channel)) ? diff --git a/sys/dev/pci/pdcsata.c b/sys/dev/pci/pdcsata.c index bda379dbe86..25c2dd3353b 100644 --- a/sys/dev/pci/pdcsata.c +++ b/sys/dev/pci/pdcsata.c @@ -1,4 +1,4 @@ -/* $NetBSD: pdcsata.c,v 1.28 2017/10/07 16:05:33 jdolecek Exp $ */ +/* $NetBSD: pdcsata.c,v 1.29 2017/10/20 07:06:08 jdolecek Exp $ */ /* * Copyright (c) 2004, Manuel Bouyer. @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pdcsata.c,v 1.28 2017/10/07 16:05:33 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pdcsata.c,v 1.29 2017/10/20 07:06:08 jdolecek Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -374,14 +374,7 @@ pdcsata_chip_map(struct pciide_softc *sc, const struct pci_attach_args *pa) cp->name = NULL; cp->ata_channel.ch_channel = channel; cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - cp->ata_channel.ch_queue = ata_queue_alloc(1); - if (cp->ata_channel.ch_queue == NULL) { - aprint_error("%s channel %d: " - "can't allocate memory for command queue\n", - device_xname(sc->sc_wdcdev.sc_atac.atac_dev), - channel); - goto next_channel; - } + wdc_cp = &cp->ata_channel; wdr = CHAN_TO_WDC_REGS(wdc_cp); diff --git a/sys/dev/pci/satalink.c b/sys/dev/pci/satalink.c index c25a4aaa50d..7554c52cee1 100644 --- a/sys/dev/pci/satalink.c +++ b/sys/dev/pci/satalink.c @@ -1,4 +1,4 @@ -/* $NetBSD: satalink.c,v 1.54 2017/10/07 16:05:33 jdolecek Exp $ */ +/* $NetBSD: satalink.c,v 1.55 2017/10/20 07:06:08 jdolecek Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: satalink.c,v 1.54 2017/10/07 16:05:33 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: satalink.c,v 1.55 2017/10/20 07:06:08 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -600,13 +600,7 @@ sii3114_chansetup(struct pciide_softc *sc, int channel) cp->name = channel_names[channel]; cp->ata_channel.ch_channel = channel; cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - cp->ata_channel.ch_queue = ata_queue_alloc(1); - if (cp->ata_channel.ch_queue == NULL) { - aprint_error("%s %s channel: " - "can't allocate memory for command queue", - device_xname(sc->sc_wdcdev.sc_atac.atac_dev), cp->name); - return (0); - } + return (1); } diff --git a/sys/dev/pci/viaide.c b/sys/dev/pci/viaide.c index 036d21d8cc6..baba8a7cf18 100644 --- a/sys/dev/pci/viaide.c +++ b/sys/dev/pci/viaide.c @@ -1,4 +1,4 @@ -/* $NetBSD: viaide.c,v 1.85 2017/10/07 16:05:33 jdolecek Exp $ */ +/* $NetBSD: viaide.c,v 1.86 2017/10/20 07:06:08 jdolecek Exp $ */ /* * Copyright (c) 1999, 2000, 2001 Manuel Bouyer. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: viaide.c,v 1.85 2017/10/07 16:05:33 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: viaide.c,v 1.86 2017/10/20 07:06:08 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1070,13 +1070,7 @@ via_vt6421_chansetup(struct pciide_softc *sc, int channel) cp->ata_channel.ch_channel = channel; cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - cp->ata_channel.ch_queue = ata_queue_alloc(1); - if (cp->ata_channel.ch_queue == NULL) { - aprint_error("%s channel %d: " - "can't allocate memory for command queue", - device_xname(sc->sc_wdcdev.sc_atac.atac_dev), channel); - return 0; - } + return 1; } diff --git a/sys/dev/pcmcia/wdc_pcmcia.c b/sys/dev/pcmcia/wdc_pcmcia.c index dab3d2fd400..6ae327e2f1f 100644 --- a/sys/dev/pcmcia/wdc_pcmcia.c +++ b/sys/dev/pcmcia/wdc_pcmcia.c @@ -1,4 +1,4 @@ -/* $NetBSD: wdc_pcmcia.c,v 1.125 2017/10/07 16:05:33 jdolecek Exp $ */ +/* $NetBSD: wdc_pcmcia.c,v 1.126 2017/10/20 07:06:08 jdolecek Exp $ */ /*- * Copyright (c) 1998, 2003, 2004 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wdc_pcmcia.c,v 1.125 2017/10/07 16:05:33 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wdc_pcmcia.c,v 1.126 2017/10/20 07:06:08 jdolecek Exp $"); #include <sys/param.h> #include <sys/device.h> @@ -295,7 +295,7 @@ wdc_pcmcia_attach(device_t parent, device_t self, void *aux) sc->sc_wdcdev.sc_atac.atac_nchannels = 1; sc->ata_channel.ch_channel = 0; sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac; - sc->ata_channel.ch_queue = ata_queue_alloc(1); + wdcp = pcmcia_product_lookup(pa, wdc_pcmcia_products, wdc_pcmcia_nproducts, sizeof(wdc_pcmcia_products[0]), NULL); sc->sc_wdcdev.wdc_maxdrives = wdcp ? wdcp->wdc_ndrive : 2; diff --git a/sys/dev/podulebus/dtide.c b/sys/dev/podulebus/dtide.c index 7d4c33e365a..d6986a2cd07 100644 --- a/sys/dev/podulebus/dtide.c +++ b/sys/dev/podulebus/dtide.c @@ -1,4 +1,4 @@ -/* $NetBSD: dtide.c,v 1.29 2017/10/07 19:52:11 jdolecek Exp $ */ +/* $NetBSD: dtide.c,v 1.30 2017/10/20 07:06:08 jdolecek Exp $ */ /*- * Copyright (c) 2000, 2001 Ben Harris @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: dtide.c,v 1.29 2017/10/07 19:52:11 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dtide.c,v 1.30 2017/10/20 07:06:08 jdolecek Exp $"); #include <sys/param.h> @@ -105,7 +105,6 @@ dtide_attach(device_t parent, device_t self, void *aux) ch->ch_atac = &sc->sc_wdc.sc_atac; wdr->cmd_iot = bst; wdr->ctl_iot = bst; - ch->ch_queue = ata_queue_alloc(1); bus_space_map(pa->pa_fast_t, pa->pa_fast_base + dtide_cmdoffsets[i], 0, 8, &wdr->cmd_baseioh); diff --git a/sys/dev/podulebus/hcide.c b/sys/dev/podulebus/hcide.c index f1d24dd645e..2e6d408f0a9 100644 --- a/sys/dev/podulebus/hcide.c +++ b/sys/dev/podulebus/hcide.c @@ -1,4 +1,4 @@ -/* $NetBSD: hcide.c,v 1.26 2017/10/07 19:52:11 jdolecek Exp $ */ +/* $NetBSD: hcide.c,v 1.27 2017/10/20 07:06:08 jdolecek Exp $ */ /*- * Copyright (c) 2000, 2001 Ben Harris @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: hcide.c,v 1.26 2017/10/07 19:52:11 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hcide.c,v 1.27 2017/10/20 07:06:08 jdolecek Exp $"); #include <sys/param.h> @@ -100,7 +100,6 @@ hcide_attach(device_t parent, device_t self, void *aux) ch->ch_atac = &sc->sc_wdc.sc_atac; wdr->cmd_iot = pa->pa_mod_t; wdr->ctl_iot = pa->pa_mod_t; - ch->ch_queue = ata_queue_alloc(1); bus_space_map(pa->pa_fast_t, pa->pa_fast_base + hcide_cmdoffsets[i], 0, 8, &wdr->cmd_baseioh); diff --git a/sys/dev/usb/umass_isdata.c b/sys/dev/usb/umass_isdata.c index 2796b3d849f..87e729a4dcf 100644 --- a/sys/dev/usb/umass_isdata.c +++ b/sys/dev/usb/umass_isdata.c @@ -1,4 +1,4 @@ -/* $NetBSD: umass_isdata.c,v 1.35 2017/10/10 16:44:24 jdolecek Exp $ */ +/* $NetBSD: umass_isdata.c,v 1.36 2017/10/20 07:06:08 jdolecek Exp $ */ /* * TODO: @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: umass_isdata.c,v 1.35 2017/10/10 16:44:24 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: umass_isdata.c,v 1.36 2017/10/20 07:06:08 jdolecek Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -223,7 +223,6 @@ umass_isdata_attach(struct umass_softc *sc) /* Fake ATA channel so wd(4) ata_{get,free}_xfer() work */ ata_channel_init(&scbus->sc_channel); scbus->sc_channel.atabus = (device_t)scbus; - scbus->sc_channel.ch_queue = ata_queue_alloc(1); scbus->sc_drv_data.drive_type = ATA_DRIVET_ATA; scbus->sc_drv_data.chnl_softc = &scbus->sc_channel; @@ -238,9 +237,6 @@ umass_isdata_detach(struct umass_softc *sc) { struct uisdata_softc *scbus = (struct uisdata_softc *)sc->bus; - ata_queue_free(scbus->sc_channel.ch_queue); - scbus->sc_channel.ch_queue = NULL; - ata_channel_destroy(&scbus->sc_channel); } |
