git: 37c8ee8847fa - main - ath(4): Remove MIPS AHB frontend and join PCI one w/ main support again
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 08 Aug 2023 20:32:33 UTC
The branch main has been updated by marius:
URL: https://cgit.FreeBSD.org/src/commit/?id=37c8ee8847faa53432809cae2ecc11b80c4eab2f
commit 37c8ee8847faa53432809cae2ecc11b80c4eab2f
Author: Marius Strobl <marius@FreeBSD.org>
AuthorDate: 2023-08-07 16:39:24 +0000
Commit: Marius Strobl <marius@FreeBSD.org>
CommitDate: 2023-08-08 20:30:13 +0000
ath(4): Remove MIPS AHB frontend and join PCI one w/ main support again
Following the removal of general MIPS support, there's no longer a need
to have the AHB bus-frontend in place, which according to Linux sources
also isn't used with any non-MIPS SoCs. For simplicity, PCI bus support
is only made conditional on the main one again, i. e. device ath_pci is
removed, and built into the main module, i. e. if_ath_pci.ko obsoleted,
respectively.
Effectively, this reverts the following commits and associated changes:
dba9c8597747c6c9bf3d2ec68f7eb90552878dc7
e849bb3ecbb1963344a22ae77fc96f89fbebf40c
Approved by: adrian
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D41354
---
ObsoleteFiles.inc | 4 +
UPDATING | 7 +
share/man/man4/Makefile | 2 -
share/man/man4/ath.4 | 17 +-
share/man/man4/ath_ahb.4 | 60 -------
share/man/man4/ath_pci.4 | 57 -------
sys/amd64/conf/GENERIC | 5 +-
sys/arm/conf/ARMADA38X | 3 +-
sys/conf/files | 8 +-
sys/dev/ath/if_ath_ahb.c | 353 ------------------------------------------
sys/i386/conf/GENERIC | 5 +-
sys/modules/Makefile | 1 -
sys/modules/ath_ahb/Makefile | 43 -----
sys/modules/ath_main/Makefile | 1 +
sys/modules/ath_pci/Makefile | 43 -----
sys/powerpc/conf/GENERIC64 | 5 +-
sys/powerpc/conf/GENERIC64LE | 5 +-
17 files changed, 24 insertions(+), 595 deletions(-)
diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
index d77ced3c817d..8ca4c98d6a6d 100644
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -52,6 +52,10 @@
# xargs -n1 | sort | uniq -d;
# done
+# 20230807: Removal of the ath(4) AHB bus-frontend or MIPS
+OLD_FILES+=usr/share/man/man4/ath_ahb.4
+OLD_FILES+=usr/share/man/man4/ath_pci.4
+
# 20230803: Removal of support for cloning pseudo interfaces from iflib(9)
OLD_FILES+=usr/include/net/iflib_private.h
diff --git a/UPDATING b/UPDATING
index 5889c0ac9903..fbe932db2aa9 100644
--- a/UPDATING
+++ b/UPDATING
@@ -27,6 +27,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 14.x IS SLOW:
world, or to merely disable the most expensive debugging functionality
at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
+20230807:
+ Following the general removal of MIPS support, the ath(4) AHB bus-
+ frontend has been removed, too, and building of the PCI support is
+ integrated with the ath(4) main module again. As a result, there's
+ no longer a need for if_ath_pci_load="YES" in /boot/loader.conf or
+ "device ath_pci" in the kernel configuration.
+
20230803:
MAXCPU has been increased to 1024 in the amd64 GENERIC kernel config.
Out-of-tree kernel modules will need to be rebuilt.
diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile
index 047f3b1aeba7..91df1f3b94c0 100644
--- a/share/man/man4/Makefile
+++ b/share/man/man4/Makefile
@@ -55,9 +55,7 @@ MAN= aac.4 \
at45d.4 \
ata.4 \
ath.4 \
- ath_ahb.4 \
ath_hal.4 \
- ath_pci.4 \
atkbd.4 \
atkbdc.4 \
atp.4 \
diff --git a/share/man/man4/ath.4 b/share/man/man4/ath.4
index 564238fd396e..59814e9973ff 100644
--- a/share/man/man4/ath.4
+++ b/share/man/man4/ath.4
@@ -28,7 +28,7 @@
.\"
.\" $FreeBSD$
.\"/
-.Dd June 16, 2020
+.Dd August 7, 2023
.Dt ATH 4
.Os
.Sh NAME
@@ -40,7 +40,6 @@ place the following lines in your
kernel configuration file:
.Bd -ragged -offset indent
.Cd "device ath"
-.Cd "device ath_pci"
.Cd "device ath_hal"
.Cd "device ath_rate_sample"
.Cd "device wlan"
@@ -51,7 +50,6 @@ module at boot time, place the following line in
.Xr loader.conf 5 :
.Bd -literal -offset indent
if_ath_load="YES"
-if_ath_pci_load="YES"
.Ed
.Sh DESCRIPTION
The
@@ -65,19 +63,6 @@ Supported features include 802.11 and 802.3 frames, power management, BSS,
IBSS, MBSS, WDS/DWDS TDMA, and host-based access point operation modes.
All host/device interaction is via DMA.
.Pp
-Please note that from FreeBSD-9.0, the
-.Nm
-driver does not include the PCI/PCIe bus glue.
-The same driver supports multiple underlying bus types, including PCI/PCIe,
-but also embedded (AHB) and USB in the future.
-.Pp
-To enable use for PCI/PCIe systems, see the
-.Xr ath_pci 4
-driver.
-For embedded systems which use the AHB to connect the wireless MAC, see the
-.Xr ath_ahb 4
-driver.
-.Pp
The
.Nm
driver encapsulates all IP and ARP traffic as 802.11 frames, however
diff --git a/share/man/man4/ath_ahb.4 b/share/man/man4/ath_ahb.4
deleted file mode 100644
index 52aceb760657..000000000000
--- a/share/man/man4/ath_ahb.4
+++ /dev/null
@@ -1,60 +0,0 @@
-.\"-
-.\" Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd
-.\" All rights reserved.
-.\""
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer,
-.\" without modification.
-.\" 2. Redistributions in binary form must reproduce at minimum a disclaimer
-.\" similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
-.\" redistribution must be conditioned upon including a substantially
-.\" similar Disclaimer requirement for further binary redistribution.
-.\"
-.\" NO WARRANTY
-.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-.\" LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
-.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-.\" THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
-.\" OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-.\" THE POSSIBILITY OF SUCH DAMAGES.
-.\"
-.\" $FreeBSD$
-.\"/
-.Dd May 30, 2011
-.Dt ATH_AHB 4
-.Os
-.Sh NAME
-.Nm ath_ahb
-.Nd "Atheros AHB device glue"
-.Sh SYNOPSIS
-.Cd "device ath_ahb"
-.Sh DESCRIPTION
-This module provides the AHB bus glue needed for the devices supported
-by the
-.Xr ath 4
-and
-.Xr ath_hal 4
-drivers.
-.Pp
-This is only relevant for embedded System-on-Chip (SoC) devices such as
-the Atheros AR913x series, which include an Atheros wireless MAC on-die.
-.Sh SEE ALSO
-.Xr ath 4 ,
-.Xr ath_hal 4
-.Sh HISTORY
-The
-.Nm
-module first appeared in
-.Fx 9.0 .
-.Sh BUGS
-See
-.Xr ath 4
-for known bugs.
diff --git a/share/man/man4/ath_pci.4 b/share/man/man4/ath_pci.4
deleted file mode 100644
index 0cc36d7268f3..000000000000
--- a/share/man/man4/ath_pci.4
+++ /dev/null
@@ -1,57 +0,0 @@
-.\"-
-.\" Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd
-.\" All rights reserved.
-.\""
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer,
-.\" without modification.
-.\" 2. Redistributions in binary form must reproduce at minimum a disclaimer
-.\" similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
-.\" redistribution must be conditioned upon including a substantially
-.\" similar Disclaimer requirement for further binary redistribution.
-.\"
-.\" NO WARRANTY
-.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-.\" LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
-.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-.\" THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
-.\" OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-.\" THE POSSIBILITY OF SUCH DAMAGES.
-.\"
-.\" $FreeBSD$
-.\"/
-.Dd May 30, 2011
-.Dt ATH_PCI 4
-.Os
-.Sh NAME
-.Nm ath_pci
-.Nd "Atheros PCI device glue"
-.Sh SYNOPSIS
-.Cd "device ath_pci"
-.Sh DESCRIPTION
-This module provides the PCI/PCIe bus glue needed for the devices supported
-by the
-.Xr ath 4
-and
-.Xr ath_hal 4
-drivers.
-.Sh SEE ALSO
-.Xr ath 4 ,
-.Xr ath_hal 4
-.Sh HISTORY
-The
-.Nm
-module first appeared in
-.Fx 9.0 .
-.Sh BUGS
-See
-.Xr ath 4
-for known bugs.
diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC
index feec1d5dd3c8..822567ebe4bd 100644
--- a/sys/amd64/conf/GENERIC
+++ b/sys/amd64/conf/GENERIC
@@ -303,9 +303,8 @@ device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
device wlan_amrr # AMRR transmit rate control algorithm
-device ath # Atheros NICs
-device ath_pci # Atheros pci/cardbus glue
-device ath_hal # pci/cardbus chip support
+device ath # Atheros CardBus/PCI NICs
+device ath_hal # Atheros CardBus/PCI chip support
options AH_AR5416_INTERRUPT_MITIGATION # AR5416 interrupt mitigation
options ATH_ENABLE_11N # Enable 802.11n support for AR5416 and later
device ath_rate_sample # SampleRate tx rate control for ath
diff --git a/sys/arm/conf/ARMADA38X b/sys/arm/conf/ARMADA38X
index 17ba80095531..ec216d67cbb7 100644
--- a/sys/arm/conf/ARMADA38X
+++ b/sys/arm/conf/ARMADA38X
@@ -88,8 +88,7 @@ device mv_spi
# Wireless NIC cards
device wlan # 802.11 support
-device ath # Atheros NIC's
-device ath_pci # Atheros pci/cardbus glue
+device ath # Atheros CardBus/PCI NICs
device ath_hal
device ath_rate_sample
options ATH_ENABLE_11N
diff --git a/sys/conf/files b/sys/conf/files
index 3d405b3d86b5..5d75f819a5f5 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -892,12 +892,6 @@ dev/ata/chipsets/ata-siliconimage.c optional ata pci | atasiliconimage | ataati
dev/ata/chipsets/ata-sis.c optional ata pci | atasis
dev/ata/chipsets/ata-via.c optional ata pci | atavia
#
-dev/ath/if_ath_pci.c optional ath_pci pci \
- compile-with "${ATH_C}"
-#
-dev/ath/if_ath_ahb.c optional ath_ahb \
- compile-with "${ATH_C}"
-#
dev/ath/if_ath.c optional ath \
compile-with "${ATH_C}"
dev/ath/if_ath_alq.c optional ath \
@@ -920,6 +914,8 @@ dev/ath/if_ath_led.c optional ath \
compile-with "${ATH_C}"
dev/ath/if_ath_lna_div.c optional ath \
compile-with "${ATH_C}"
+dev/ath/if_ath_pci.c optional ath pci \
+ compile-with "${ATH_C}"
dev/ath/if_ath_tx.c optional ath \
compile-with "${ATH_C}"
dev/ath/if_ath_tx_edma.c optional ath \
diff --git a/sys/dev/ath/if_ath_ahb.c b/sys/dev/ath/if_ath_ahb.c
deleted file mode 100644
index fe002ae7ffd7..000000000000
--- a/sys/dev/ath/if_ath_ahb.c
+++ /dev/null
@@ -1,353 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause
- *
- * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
- * Copyright (c) 2010-2011 Adrian Chadd, Xenion Pty Ltd
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
- * redistribution must be conditioned upon including a substantially
- * similar Disclaimer requirement for further binary redistribution.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGES.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/*
- * AHB bus front-end for the Atheros Wireless LAN controller driver.
- */
-
-#include "opt_ath.h"
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/malloc.h>
-#include <sys/module.h>
-#include <sys/kernel.h>
-#include <sys/lock.h>
-#include <sys/mutex.h>
-#include <sys/errno.h>
-
-#include <machine/bus.h>
-#include <machine/resource.h>
-#include <sys/bus.h>
-#include <sys/rman.h>
-
-#include <sys/socket.h>
-
-#include <net/if.h>
-#include <net/if_media.h>
-#include <net/if_arp.h>
-#include <net/ethernet.h>
-
-#include <net80211/ieee80211_var.h>
-
-#include <dev/ath/if_athvar.h>
-
-#include <mips/atheros/ar71xxreg.h>
-#include <mips/atheros/ar91xxreg.h>
-#include <mips/atheros/ar71xx_cpudef.h>
-
-/* For EEPROM firmware */
-#ifdef ATH_EEPROM_FIRMWARE
-#include <sys/linker.h>
-#include <sys/firmware.h>
-#endif /* ATH_EEPROM_FIRMWARE */
-
-/*
- * bus glue.
- */
-
-/* number of 16 bit words */
-#define ATH_EEPROM_DATA_SIZE 2048
-
-struct ath_ahb_softc {
- struct ath_softc sc_sc;
- struct resource *sc_sr; /* memory resource */
- struct resource *sc_irq; /* irq resource */
- void *sc_ih; /* interrupt handler */
-};
-
-#define VENDOR_ATHEROS 0x168c
-#define AR9130_DEVID 0x000b
-
-static int
-ath_ahb_probe(device_t dev)
-{
- int vendor_id, device_id;
- const char* devname;
-
- /*
- * Check if a device/vendor ID is provided in hints.
- */
- if (resource_int_value(device_get_name(dev), device_get_unit(dev),
- "vendor_id", &vendor_id) != 0) {
- vendor_id = VENDOR_ATHEROS;
- }
-
- if (resource_int_value(device_get_name(dev), device_get_unit(dev),
- "device_id", &device_id) != 0) {
- device_id = AR9130_DEVID;
- }
-
- device_printf(dev, "Vendor=0x%04x, Device=0x%04x\n",
- vendor_id & 0xffff,
- device_id & 0xffff);
-
- /* Attempt to probe */
- devname = ath_hal_probe(vendor_id, device_id);
-
- if (devname != NULL) {
- device_set_desc(dev, devname);
- return BUS_PROBE_DEFAULT;
- }
- return ENXIO;
-}
-
-static void
-ath_ahb_intr(void *arg)
-{
- /* XXX TODO: check if its ours! */
- ar71xx_device_flush_ddr(AR71XX_CPU_DDR_FLUSH_WMAC);
- ath_intr(arg);
-}
-
-static int
-ath_ahb_attach(device_t dev)
-{
- struct ath_ahb_softc *psc = device_get_softc(dev);
- struct ath_softc *sc = &psc->sc_sc;
- int error = ENXIO;
- int rid;
- int device_id, vendor_id;
-#ifdef ATH_EEPROM_FIRMWARE
- const struct firmware *fw = NULL;
- const char *buf;
-#endif
-
- sc->sc_dev = dev;
-
- rid = 0;
- psc->sc_sr = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE);
- if (psc->sc_sr == NULL) {
- device_printf(dev, "cannot map register space\n");
- goto bad;
- }
-
- sc->sc_st = (HAL_BUS_TAG) rman_get_bustag(psc->sc_sr);
- sc->sc_sh = (HAL_BUS_HANDLE) rman_get_bushandle(psc->sc_sr);
- /*
- * Mark device invalid so any interrupts (shared or otherwise)
- * that arrive before the HAL is setup are discarded.
- */
- sc->sc_invalid = 1;
-
-#ifdef ATH_EEPROM_FIRMWARE
- /*
- * If there's an EEPROM firmware image, load that in.
- */
- if (resource_string_value(device_get_name(dev), device_get_unit(dev),
- "eeprom_firmware", &buf) == 0) {
- device_printf(dev, "%s: looking up firmware @ '%s'\n",
- __func__, buf);
-
- fw = firmware_get(buf);
- if (fw == NULL) {
- device_printf(dev, "%s: couldn't find firmware\n",
- __func__);
- goto bad1;
- }
-
- device_printf(dev, "%s: EEPROM firmware @ %p\n",
- __func__, fw->data);
- sc->sc_eepromdata =
- malloc(fw->datasize, M_TEMP, M_WAITOK | M_ZERO);
- if (! sc->sc_eepromdata) {
- device_printf(dev, "%s: can't malloc eepromdata\n",
- __func__);
- goto bad1;
- }
- memcpy(sc->sc_eepromdata, fw->data, fw->datasize);
- firmware_put(fw, 0);
- }
-#endif /* ATH_EEPROM_FIRMWARE */
-
- /*
- * Arrange interrupt line.
- */
- rid = 0;
- psc->sc_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_SHAREABLE|RF_ACTIVE);
- if (psc->sc_irq == NULL) {
- device_printf(dev, "could not map interrupt\n");
- goto bad1;
- }
- if (bus_setup_intr(dev, psc->sc_irq,
- INTR_TYPE_NET | INTR_MPSAFE,
- NULL, ath_ahb_intr, sc, &psc->sc_ih)) {
- device_printf(dev, "could not establish interrupt\n");
- goto bad2;
- }
-
- /*
- * Setup DMA descriptor area.
- */
- if (bus_dma_tag_create(bus_get_dma_tag(dev), /* parent */
- 1, 0, /* alignment, bounds */
- BUS_SPACE_MAXADDR_32BIT, /* lowaddr */
- BUS_SPACE_MAXADDR, /* highaddr */
- NULL, NULL, /* filter, filterarg */
- 0x3ffff, /* maxsize XXX */
- ATH_MAX_SCATTER, /* nsegments */
- 0x3ffff, /* maxsegsize XXX */
- BUS_DMA_ALLOCNOW, /* flags */
- NULL, /* lockfunc */
- NULL, /* lockarg */
- &sc->sc_dmat)) {
- device_printf(dev, "cannot allocate DMA tag\n");
- goto bad3;
- }
-
- /*
- * Check if a device/vendor ID is provided in hints.
- */
- if (resource_int_value(device_get_name(dev), device_get_unit(dev),
- "vendor_id", &vendor_id) != 0) {
- vendor_id = VENDOR_ATHEROS;
- }
-
- if (resource_int_value(device_get_name(dev), device_get_unit(dev),
- "device_id", &device_id) != 0) {
- device_id = AR9130_DEVID;
- }
-
- ATH_LOCK_INIT(sc);
- ATH_PCU_LOCK_INIT(sc);
- ATH_RX_LOCK_INIT(sc);
- ATH_TX_LOCK_INIT(sc);
- ATH_TXSTATUS_LOCK_INIT(sc);
-
- error = ath_attach(device_id, sc);
- if (error == 0) /* success */
- return 0;
-
- ATH_TXSTATUS_LOCK_DESTROY(sc);
- ATH_RX_LOCK_DESTROY(sc);
- ATH_TX_LOCK_DESTROY(sc);
- ATH_PCU_LOCK_DESTROY(sc);
- ATH_LOCK_DESTROY(sc);
- bus_dma_tag_destroy(sc->sc_dmat);
-bad3:
- bus_teardown_intr(dev, psc->sc_irq, psc->sc_ih);
-bad2:
- bus_release_resource(dev, SYS_RES_IRQ, 0, psc->sc_irq);
-bad1:
- bus_release_resource(dev, SYS_RES_MEMORY, 0, psc->sc_sr);
-bad:
- /* XXX?! */
- if (sc->sc_eepromdata)
- free(sc->sc_eepromdata, M_TEMP);
- return (error);
-}
-
-static int
-ath_ahb_detach(device_t dev)
-{
- struct ath_ahb_softc *psc = device_get_softc(dev);
- struct ath_softc *sc = &psc->sc_sc;
-
- /* check if device was removed */
- sc->sc_invalid = !bus_child_present(dev);
-
- ath_detach(sc);
-
- bus_generic_detach(dev);
- bus_teardown_intr(dev, psc->sc_irq, psc->sc_ih);
- bus_release_resource(dev, SYS_RES_IRQ, 0, psc->sc_irq);
-
- bus_dma_tag_destroy(sc->sc_dmat);
- bus_release_resource(dev, SYS_RES_MEMORY, 0, psc->sc_sr);
- /* XXX?! */
- if (sc->sc_eepromdata)
- free(sc->sc_eepromdata, M_TEMP);
-
- ATH_TXSTATUS_LOCK_DESTROY(sc);
- ATH_RX_LOCK_DESTROY(sc);
- ATH_TX_LOCK_DESTROY(sc);
- ATH_PCU_LOCK_DESTROY(sc);
- ATH_LOCK_DESTROY(sc);
-
- return (0);
-}
-
-static int
-ath_ahb_shutdown(device_t dev)
-{
- struct ath_ahb_softc *psc = device_get_softc(dev);
-
- ath_shutdown(&psc->sc_sc);
- return (0);
-}
-
-static int
-ath_ahb_suspend(device_t dev)
-{
- struct ath_ahb_softc *psc = device_get_softc(dev);
-
- ath_suspend(&psc->sc_sc);
-
- return (0);
-}
-
-static int
-ath_ahb_resume(device_t dev)
-{
- struct ath_ahb_softc *psc = device_get_softc(dev);
-
- ath_resume(&psc->sc_sc);
-
- return (0);
-}
-
-static device_method_t ath_ahb_methods[] = {
- /* Device interface */
- DEVMETHOD(device_probe, ath_ahb_probe),
- DEVMETHOD(device_attach, ath_ahb_attach),
- DEVMETHOD(device_detach, ath_ahb_detach),
- DEVMETHOD(device_shutdown, ath_ahb_shutdown),
- DEVMETHOD(device_suspend, ath_ahb_suspend),
- DEVMETHOD(device_resume, ath_ahb_resume),
- { 0,0 }
-};
-
-static driver_t ath_ahb_driver = {
- "ath",
- ath_ahb_methods,
- sizeof (struct ath_ahb_softc)
-};
-
-DRIVER_MODULE(if_ath_ahb, nexus, ath_ahb_driver, 0, 0);
-DRIVER_MODULE(if_ath_ahb, apb, ath_ahb_driver, 0, 0);
-MODULE_VERSION(if_ath_ahb, 1);
-MODULE_DEPEND(if_ath_ahb, wlan, 1, 1, 1); /* 802.11 media layer */
-MODULE_DEPEND(if_ath_ahb, ath_main, 1, 1, 1); /* if_ath driver */
-MODULE_DEPEND(if_ath_ahb, ath_hal, 1, 1, 1); /* ath HAL */
diff --git a/sys/i386/conf/GENERIC b/sys/i386/conf/GENERIC
index 105bc238cb7d..d2bc5b195963 100644
--- a/sys/i386/conf/GENERIC
+++ b/sys/i386/conf/GENERIC
@@ -259,9 +259,8 @@ device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
device wlan_amrr # AMRR transmit rate control algorithm
-device ath # Atheros NICs
-device ath_pci # Atheros pci/cardbus glue
-device ath_hal # pci/cardbus chip support
+device ath # Atheros CardBus/PCI NICs
+device ath_hal # Atheros CardBus/PCI chip support
options AH_AR5416_INTERRUPT_MITIGATION # AR5416 interrupt mitigation
options ATH_ENABLE_11N # Enable 802.11n support for AR5416 and later
device ath_rate_sample # SampleRate tx rate control for ath
diff --git a/sys/modules/Makefile b/sys/modules/Makefile
index 0ef69528b45e..8b5e48a2d53f 100644
--- a/sys/modules/Makefile
+++ b/sys/modules/Makefile
@@ -54,7 +54,6 @@ SUBDIR= \
ath_hal_ar9300 \
ath_main \
ath_rate \
- ath_pci \
${_autofs} \
axgbe \
backlight \
diff --git a/sys/modules/ath_ahb/Makefile b/sys/modules/ath_ahb/Makefile
deleted file mode 100644
index 02278eadea2b..000000000000
--- a/sys/modules/ath_ahb/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer,
-# without modification.
-# 2. Redistributions in binary form must reproduce at minimum a disclaimer
-# similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
-# redistribution must be conditioned upon including a substantially
-# similar Disclaimer requirement for further binary redistribution.
-#
-# NO WARRANTY
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
-# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-# THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
-# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-# THE POSSIBILITY OF SUCH DAMAGES.
-#
-# $FreeBSD$
-#
-
-.PATH: ${SRCTOP}/sys/dev/ath
-.PATH: ${SRCTOP}/sys/dev/ath/ath_hal
-
-KMOD= if_ath_ahb
-SRCS= if_ath_ahb.c
-SRCS+= device_if.h bus_if.h opt_wlan.h opt_ath.h opt_ah.h
-
-CFLAGS+= -I. -I${SRCTOP}/sys/dev/ath -I${SRCTOP}/sys/dev/ath/ath_hal
-
-.include <bsd.kmod.mk>
-
-CWARNFLAGS+= ${NO_WUNUSED_BUT_SET_VARIABLE}
diff --git a/sys/modules/ath_main/Makefile b/sys/modules/ath_main/Makefile
index 4cf55d42fc92..6a08874115ac 100644
--- a/sys/modules/ath_main/Makefile
+++ b/sys/modules/ath_main/Makefile
@@ -39,6 +39,7 @@ SRCS= if_ath.c if_ath_alq.c if_ath_debug.c if_ath_keycache.c if_ath_sysctl.c
SRCS+= if_ath_tx.c if_ath_tx_ht.c if_ath_led.c if_ath_rx.c if_ath_tdma.c
SRCS+= if_ath_beacon.c if_ath_rx_edma.c if_ath_tx_edma.c if_ath_spectral.c
SRCS+= if_ath_btcoex.c if_ath_btcoex_mci.c if_ath_lna_div.c if_ath_ioctl.c if_ath_descdma.c
+SRCS+= if_ath_pci.c
SRCS+= device_if.h bus_if.h pci_if.h opt_inet.h opt_ath.h opt_ah.h opt_wlan.h
diff --git a/sys/modules/ath_pci/Makefile b/sys/modules/ath_pci/Makefile
deleted file mode 100644
index a5a2d87925ca..000000000000
--- a/sys/modules/ath_pci/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer,
-# without modification.
-# 2. Redistributions in binary form must reproduce at minimum a disclaimer
-# similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
-# redistribution must be conditioned upon including a substantially
-# similar Disclaimer requirement for further binary redistribution.
-#
-# NO WARRANTY
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
-# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-# THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
-# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-# THE POSSIBILITY OF SUCH DAMAGES.
-#
-# $FreeBSD$
-#
-
-.PATH: ${SRCTOP}/sys/dev/ath
-.PATH: ${SRCTOP}/sys/dev/ath/ath_hal
-
-KMOD= if_ath_pci
-SRCS= if_ath_pci.c
-SRCS+= device_if.h bus_if.h pci_if.h opt_wlan.h opt_ath.h opt_ah.h
-
-CFLAGS+= -I. -I${SRCTOP}/sys/dev/ath -I${SRCTOP}/sys/dev/ath/ath_hal
-
-.include <bsd.kmod.mk>
-
-CWARNFLAGS+= ${NO_WUNUSED_BUT_SET_VARIABLE}
diff --git a/sys/powerpc/conf/GENERIC64 b/sys/powerpc/conf/GENERIC64
index c4277983b66a..dc7edadd78d0 100644
--- a/sys/powerpc/conf/GENERIC64
+++ b/sys/powerpc/conf/GENERIC64
@@ -241,9 +241,8 @@ device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
device wlan_amrr # AMRR transmit rate control algorithm
-device ath # Atheros NICs
-device ath_pci # Atheros pci/cardbus glue
-device ath_hal # pci/cardbus chip support
+device ath # Atheros CardBus/PCI NICs
+device ath_hal # Atheros CardBus/PCI chip support
options AH_AR5416_INTERRUPT_MITIGATION # AR5416 interrupt mitigation
options ATH_ENABLE_11N # Enable 802.11n support for AR5416 and later
device ath_rate_sample # SampleRate tx rate control for ath
diff --git a/sys/powerpc/conf/GENERIC64LE b/sys/powerpc/conf/GENERIC64LE
index 99d1975442f7..b6e402ab77a1 100644
--- a/sys/powerpc/conf/GENERIC64LE
+++ b/sys/powerpc/conf/GENERIC64LE
@@ -237,9 +237,8 @@ device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
device wlan_amrr # AMRR transmit rate control algorithm
-device ath # Atheros NICs
-device ath_pci # Atheros pci/cardbus glue
-device ath_hal # pci/cardbus chip support
+device ath # Atheros CardBus/PCI NICs
+device ath_hal # Atheros CardBus/PCI chip support
options AH_AR5416_INTERRUPT_MITIGATION # AR5416 interrupt mitigation
options ATH_ENABLE_11N # Enable 802.11n support for AR5416 and later
device ath_rate_sample # SampleRate tx rate control for ath