mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
net: remove unused ATM protocols and legacy ATM device drivers
Remove the ATM protocol modules and PCI/SBUS ATM device drivers that are no longer in active use. The ATM core protocol stack, PPPoATM, BR2684, and USB DSL modem drivers (drivers/usb/atm/) are retained in-tree to maintain PPP over ATM (PPPoA) and PPPoE-over-BR2684 support for DSL connections. The Solos ADSL2+ PCI driver is also retained. Removed ATM protocol modules: - net/atm/clip.c - Classical IP over ATM (RFC 2225) - net/atm/lec.c - LAN Emulation Client (LANE) - net/atm/mpc.c, mpoa_caches.c, mpoa_proc.c - Multi-Protocol Over ATM Removed PCI/SBUS ATM device drivers (drivers/atm/): - adummy, atmtcp - software/testing ATM devices - eni - Efficient Networks ENI155P (OC-3, ~1995) - fore200e - FORE Systems 200E PCI/SBUS (OC-3, ~1999) - he - ForeRunner HE (OC-3/OC-12, ~2000) - idt77105 - IDT 77105 25 Mbps ATM PHY - idt77252 - IDT 77252 NICStAR II (OC-3, ~2000) - iphase - Interphase ATM PCI (OC-3/DS3/E3) - lanai - Efficient Networks Speedstream 3010 - nicstar - IDT 77201 NICStAR (155/25 Mbps, ~1999) - suni - PMC S/UNI SONET PHY library Also clean up references in: - net/bridge/ - remove ATM LANE hook (br_fdb_test_addr_hook, br_fdb_test_addr) - net/core/dev.c - remove br_fdb_test_addr_hook export - defconfig files - remove ATM driver config options The removed code is moved to an out-of-tree module package (mod-orphan). Acked-by: Andy Shevchenko <andriy.shevchenko@intel.com> Reviewed-by: Simon Horman <horms@kernel.org> Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org> Link: https://patch.msgid.link/20260422041846.2035118-1-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -835,14 +835,12 @@ networking/e100 networking/device_drivers/ethernet/intel/e100
|
||||
networking/e1000 networking/device_drivers/ethernet/intel/e1000
|
||||
networking/e1000e networking/device_drivers/ethernet/intel/e1000e
|
||||
networking/fm10k networking/device_drivers/ethernet/intel/fm10k
|
||||
networking/fore200e networking/device_drivers/atm/fore200e
|
||||
networking/hinic networking/device_drivers/ethernet/huawei/hinic
|
||||
networking/i40e networking/device_drivers/ethernet/intel/i40e
|
||||
networking/iavf networking/device_drivers/ethernet/intel/iavf
|
||||
networking/ice networking/device_drivers/ethernet/intel/ice
|
||||
networking/igb networking/device_drivers/ethernet/intel/igb
|
||||
networking/igbvf networking/device_drivers/ethernet/intel/igbvf
|
||||
networking/iphase networking/device_drivers/atm/iphase
|
||||
networking/ixgbe networking/device_drivers/ethernet/intel/ixgbe
|
||||
networking/ixgbevf networking/device_drivers/ethernet/intel/ixgbevf
|
||||
networking/netdev-FAQ process/maintainer-netdev
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
=============================================
|
||||
FORE Systems PCA-200E/SBA-200E ATM NIC driver
|
||||
=============================================
|
||||
|
||||
This driver adds support for the FORE Systems 200E-series ATM adapters
|
||||
to the Linux operating system. It is based on the earlier PCA-200E driver
|
||||
written by Uwe Dannowski.
|
||||
|
||||
The driver simultaneously supports PCA-200E and SBA-200E adapters on
|
||||
i386, alpha (untested), powerpc, sparc and sparc64 archs.
|
||||
|
||||
The intent is to enable the use of different models of FORE adapters at the
|
||||
same time, by hosts that have several bus interfaces (such as PCI+SBUS,
|
||||
or PCI+EISA).
|
||||
|
||||
Only PCI and SBUS devices are currently supported by the driver, but support
|
||||
for other bus interfaces such as EISA should not be too hard to add.
|
||||
|
||||
|
||||
Firmware Copyright Notice
|
||||
-------------------------
|
||||
|
||||
Please read the fore200e_firmware_copyright file present
|
||||
in the linux/drivers/atm directory for details and restrictions.
|
||||
|
||||
|
||||
Firmware Updates
|
||||
----------------
|
||||
|
||||
The FORE Systems 200E-series driver is shipped with firmware data being
|
||||
uploaded to the ATM adapters at system boot time or at module loading time.
|
||||
The supplied firmware images should work with all adapters.
|
||||
|
||||
However, if you encounter problems (the firmware doesn't start or the driver
|
||||
is unable to read the PROM data), you may consider trying another firmware
|
||||
version. Alternative binary firmware images can be found somewhere on the
|
||||
ForeThought CD-ROM supplied with your adapter by FORE Systems.
|
||||
|
||||
You can also get the latest firmware images from FORE Systems at
|
||||
https://en.wikipedia.org/wiki/FORE_Systems. Register TACTics Online and go to
|
||||
the 'software updates' pages. The firmware binaries are part of
|
||||
the various ForeThought software distributions.
|
||||
|
||||
Notice that different versions of the PCA-200E firmware exist, depending
|
||||
on the endianness of the host architecture. The driver is shipped with
|
||||
both little and big endian PCA firmware images.
|
||||
|
||||
Name and location of the new firmware images can be set at kernel
|
||||
configuration time:
|
||||
|
||||
1. Copy the new firmware binary files (with .bin, .bin1 or .bin2 suffix)
|
||||
to some directory, such as linux/drivers/atm.
|
||||
|
||||
2. Reconfigure your kernel to set the new firmware name and location.
|
||||
Expected pathnames are absolute or relative to the drivers/atm directory.
|
||||
|
||||
3. Rebuild and re-install your kernel or your module.
|
||||
|
||||
|
||||
Feedback
|
||||
--------
|
||||
|
||||
Feedback is welcome. Please send success stories/bug reports/
|
||||
patches/improvement/comments/flames to <lizzi@cnam.fr>.
|
||||
@@ -9,5 +9,3 @@ Contents:
|
||||
:maxdepth: 2
|
||||
|
||||
cxacru
|
||||
fore200e
|
||||
iphase
|
||||
|
||||
@@ -1,193 +0,0 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
==================================
|
||||
ATM (i)Chip IA Linux Driver Source
|
||||
==================================
|
||||
|
||||
READ ME FIRST
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Read This Before You Begin!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This is the README file for the Interphase PCI ATM (i)Chip IA Linux driver
|
||||
source release.
|
||||
|
||||
The features and limitations of this driver are as follows:
|
||||
|
||||
- A single VPI (VPI value of 0) is supported.
|
||||
- Supports 4K VCs for the server board (with 512K control memory) and 1K
|
||||
VCs for the client board (with 128K control memory).
|
||||
- UBR, ABR and CBR service categories are supported.
|
||||
- Only AAL5 is supported.
|
||||
- Supports setting of PCR on the VCs.
|
||||
- Multiple adapters in a system are supported.
|
||||
- All variants of Interphase ATM PCI (i)Chip adapter cards are supported,
|
||||
including x575 (OC3, control memory 128K , 512K and packet memory 128K,
|
||||
512K and 1M), x525 (UTP25) and x531 (DS3 and E3). See
|
||||
http://www.iphase.com/
|
||||
for details.
|
||||
- Only x86 platforms are supported.
|
||||
- SMP is supported.
|
||||
|
||||
|
||||
Before You Start
|
||||
================
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
1. Installing the adapters in the system
|
||||
|
||||
To install the ATM adapters in the system, follow the steps below.
|
||||
|
||||
a. Login as root.
|
||||
b. Shut down the system and power off the system.
|
||||
c. Install one or more ATM adapters in the system.
|
||||
d. Connect each adapter to a port on an ATM switch. The green 'Link'
|
||||
LED on the front panel of the adapter will be on if the adapter is
|
||||
connected to the switch properly when the system is powered up.
|
||||
e. Power on and boot the system.
|
||||
|
||||
2. [ Removed ]
|
||||
|
||||
3. Rebuild kernel with ABR support
|
||||
|
||||
[ a. and b. removed ]
|
||||
|
||||
c. Reconfigure the kernel, choose the Interphase ia driver through "make
|
||||
menuconfig" or "make xconfig".
|
||||
d. Rebuild the kernel, loadable modules and the atm tools.
|
||||
e. Install the new built kernel and modules and reboot.
|
||||
|
||||
4. Load the adapter hardware driver (ia driver) if it is built as a module
|
||||
|
||||
a. Login as root.
|
||||
b. Change directory to /lib/modules/<kernel-version>/atm.
|
||||
c. Run "insmod suni.o;insmod iphase.o"
|
||||
The yellow 'status' LED on the front panel of the adapter will blink
|
||||
while the driver is loaded in the system.
|
||||
d. To verify that the 'ia' driver is loaded successfully, run the
|
||||
following command::
|
||||
|
||||
cat /proc/atm/devices
|
||||
|
||||
If the driver is loaded successfully, the output of the command will
|
||||
be similar to the following lines::
|
||||
|
||||
Itf Type ESI/"MAC"addr AAL(TX,err,RX,err,drop) ...
|
||||
0 ia xxxxxxxxx 0 ( 0 0 0 0 0 ) 5 ( 0 0 0 0 0 )
|
||||
|
||||
You can also check the system log file /var/log/messages for messages
|
||||
related to the ATM driver.
|
||||
|
||||
5. Ia Driver Configuration
|
||||
|
||||
5.1 Configuration of adapter buffers
|
||||
The (i)Chip boards have 3 different packet RAM size variants: 128K, 512K and
|
||||
1M. The RAM size decides the number of buffers and buffer size. The default
|
||||
size and number of buffers are set as following:
|
||||
|
||||
========= ======= ====== ====== ====== ====== ======
|
||||
Total Rx RAM Tx RAM Rx Buf Tx Buf Rx buf Tx buf
|
||||
RAM size size size size size cnt cnt
|
||||
========= ======= ====== ====== ====== ====== ======
|
||||
128K 64K 64K 10K 10K 6 6
|
||||
512K 256K 256K 10K 10K 25 25
|
||||
1M 512K 512K 10K 10K 51 51
|
||||
========= ======= ====== ====== ====== ====== ======
|
||||
|
||||
These setting should work well in most environments, but can be
|
||||
changed by typing the following command::
|
||||
|
||||
insmod <IA_DIR>/ia.o IA_RX_BUF=<RX_CNT> IA_RX_BUF_SZ=<RX_SIZE> \
|
||||
IA_TX_BUF=<TX_CNT> IA_TX_BUF_SZ=<TX_SIZE>
|
||||
|
||||
Where:
|
||||
|
||||
- RX_CNT = number of receive buffers in the range (1-128)
|
||||
- RX_SIZE = size of receive buffers in the range (48-64K)
|
||||
- TX_CNT = number of transmit buffers in the range (1-128)
|
||||
- TX_SIZE = size of transmit buffers in the range (48-64K)
|
||||
|
||||
1. Transmit and receive buffer size must be a multiple of 4.
|
||||
2. Care should be taken so that the memory required for the
|
||||
transmit and receive buffers is less than or equal to the
|
||||
total adapter packet memory.
|
||||
|
||||
5.2 Turn on ia debug trace
|
||||
|
||||
When the ia driver is built with the CONFIG_ATM_IA_DEBUG flag, the driver
|
||||
can provide more debug trace if needed. There is a bit mask variable,
|
||||
IADebugFlag, which controls the output of the traces. You can find the bit
|
||||
map of the IADebugFlag in iphase.h.
|
||||
The debug trace can be turn on through the insmod command line option, for
|
||||
example, "insmod iphase.o IADebugFlag=0xffffffff" can turn on all the debug
|
||||
traces together with loading the driver.
|
||||
|
||||
6. Ia Driver Test Using ttcp_atm and PVC
|
||||
|
||||
For the PVC setup, the test machines can either be connected back-to-back or
|
||||
through a switch. If connected through the switch, the switch must be
|
||||
configured for the PVC(s).
|
||||
|
||||
a. For UBR test:
|
||||
|
||||
At the test machine intended to receive data, type::
|
||||
|
||||
ttcp_atm -r -a -s 0.100
|
||||
|
||||
At the other test machine, type::
|
||||
|
||||
ttcp_atm -t -a -s 0.100 -n 10000
|
||||
|
||||
Run "ttcp_atm -h" to display more options of the ttcp_atm tool.
|
||||
b. For ABR test:
|
||||
|
||||
It is the same as the UBR testing, but with an extra command option::
|
||||
|
||||
-Pabr:max_pcr=<xxx>
|
||||
|
||||
where:
|
||||
|
||||
xxx = the maximum peak cell rate, from 170 - 353207.
|
||||
|
||||
This option must be set on both the machines.
|
||||
|
||||
c. For CBR test:
|
||||
|
||||
It is the same as the UBR testing, but with an extra command option::
|
||||
|
||||
-Pcbr:max_pcr=<xxx>
|
||||
|
||||
where:
|
||||
|
||||
xxx = the maximum peak cell rate, from 170 - 353207.
|
||||
|
||||
This option may only be set on the transmit machine.
|
||||
|
||||
|
||||
Outstanding Issues
|
||||
==================
|
||||
|
||||
|
||||
|
||||
Contact Information
|
||||
-------------------
|
||||
|
||||
::
|
||||
|
||||
Customer Support:
|
||||
United States: Telephone: (214) 654-5555
|
||||
Fax: (214) 654-5500
|
||||
E-Mail: intouch@iphase.com
|
||||
Europe: Telephone: 33 (0)1 41 15 44 00
|
||||
Fax: 33 (0)1 41 15 12 13
|
||||
World Wide Web: http://www.iphase.com
|
||||
Anonymous FTP: ftp.iphase.com
|
||||
@@ -4151,10 +4151,12 @@ L: netdev@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://linux-atm.sourceforge.net
|
||||
F: drivers/atm/
|
||||
F: drivers/usb/atm/
|
||||
F: include/linux/atm*
|
||||
F: include/linux/sonet.h
|
||||
F: include/uapi/linux/atm*
|
||||
F: include/uapi/linux/sonet.h
|
||||
F: net/atm/
|
||||
|
||||
ATMEL MACB ETHERNET DRIVER
|
||||
M: Nicolas Ferre <nicolas.ferre@microchip.com>
|
||||
|
||||
@@ -52,9 +52,6 @@ CONFIG_IP_NF_MANGLE=m
|
||||
CONFIG_IP_NF_ARPTABLES=m
|
||||
CONFIG_IP_NF_ARPFILTER=m
|
||||
CONFIG_ATM=y
|
||||
CONFIG_ATM_CLIP=y
|
||||
CONFIG_ATM_LANE=m
|
||||
CONFIG_ATM_MPOA=m
|
||||
CONFIG_ATM_BR2684=m
|
||||
CONFIG_BRIDGE=m
|
||||
CONFIG_VLAN_8021Q=m
|
||||
@@ -108,7 +105,6 @@ CONFIG_ATA=y
|
||||
CONFIG_PATA_IXP4XX_CF=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_DUMMY=y
|
||||
CONFIG_ATM_TCP=m
|
||||
CONFIG_IXP4XX_ETH=y
|
||||
CONFIG_WAN=y
|
||||
CONFIG_HDLC=y
|
||||
|
||||
@@ -87,9 +87,6 @@ CONFIG_BRIDGE_EBT_LOG=m
|
||||
CONFIG_IP_SCTP=m
|
||||
CONFIG_TIPC=m
|
||||
CONFIG_ATM=y
|
||||
CONFIG_ATM_CLIP=y
|
||||
CONFIG_ATM_LANE=m
|
||||
CONFIG_ATM_MPOA=m
|
||||
CONFIG_ATM_BR2684=m
|
||||
CONFIG_BRIDGE=m
|
||||
CONFIG_VLAN_8021Q=m
|
||||
@@ -104,7 +101,6 @@ CONFIG_NET_SCHED=y
|
||||
CONFIG_NET_SCH_CBQ=m
|
||||
CONFIG_NET_SCH_HTB=m
|
||||
CONFIG_NET_SCH_HFSC=m
|
||||
CONFIG_NET_SCH_ATM=m
|
||||
CONFIG_NET_SCH_PRIO=m
|
||||
CONFIG_NET_SCH_RED=m
|
||||
CONFIG_NET_SCH_SFQ=m
|
||||
@@ -156,15 +152,6 @@ CONFIG_SCSI_SAS_LIBSAS=m
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_FC=y
|
||||
CONFIG_NETCONSOLE=m
|
||||
CONFIG_ATM_TCP=m
|
||||
CONFIG_ATM_LANAI=m
|
||||
CONFIG_ATM_ENI=m
|
||||
CONFIG_ATM_NICSTAR=m
|
||||
CONFIG_ATM_IDT77252=m
|
||||
CONFIG_ATM_IA=m
|
||||
CONFIG_ATM_FORE200E=m
|
||||
CONFIG_ATM_HE=m
|
||||
CONFIG_ATM_HE_USE_SUNI=y
|
||||
CONFIG_MIPS_AU1X00_ENET=y
|
||||
CONFIG_CICADA_PHY=m
|
||||
CONFIG_DAVICOM_PHY=m
|
||||
|
||||
@@ -133,9 +133,6 @@ CONFIG_BRIDGE_EBT_LOG=m
|
||||
CONFIG_IP_SCTP=m
|
||||
CONFIG_TIPC=m
|
||||
CONFIG_ATM=y
|
||||
CONFIG_ATM_CLIP=y
|
||||
CONFIG_ATM_LANE=m
|
||||
CONFIG_ATM_MPOA=m
|
||||
CONFIG_ATM_BR2684=m
|
||||
CONFIG_BRIDGE=m
|
||||
CONFIG_VLAN_8021Q=m
|
||||
@@ -150,7 +147,6 @@ CONFIG_NET_SCHED=y
|
||||
CONFIG_NET_SCH_CBQ=m
|
||||
CONFIG_NET_SCH_HTB=m
|
||||
CONFIG_NET_SCH_HFSC=m
|
||||
CONFIG_NET_SCH_ATM=m
|
||||
CONFIG_NET_SCH_PRIO=m
|
||||
CONFIG_NET_SCH_RED=m
|
||||
CONFIG_NET_SCH_SFQ=m
|
||||
@@ -232,15 +228,6 @@ CONFIG_ARCNET_RIM_I=m
|
||||
CONFIG_ARCNET_COM20020=m
|
||||
CONFIG_ARCNET_COM20020_PCI=m
|
||||
CONFIG_ARCNET_COM20020_CS=m
|
||||
CONFIG_ATM_TCP=m
|
||||
CONFIG_ATM_LANAI=m
|
||||
CONFIG_ATM_ENI=m
|
||||
CONFIG_ATM_NICSTAR=m
|
||||
CONFIG_ATM_IDT77252=m
|
||||
CONFIG_ATM_IA=m
|
||||
CONFIG_ATM_FORE200E=m
|
||||
CONFIG_ATM_HE=m
|
||||
CONFIG_ATM_HE_USE_SUNI=y
|
||||
CONFIG_PCMCIA_3C574=m
|
||||
CONFIG_PCMCIA_3C589=m
|
||||
CONFIG_VORTEX=m
|
||||
|
||||
@@ -227,8 +227,6 @@ CONFIG_BRIDGE_EBT_LOG=m
|
||||
CONFIG_BRIDGE_EBT_NFLOG=m
|
||||
CONFIG_TIPC=m
|
||||
CONFIG_ATM=m
|
||||
CONFIG_ATM_CLIP=m
|
||||
CONFIG_ATM_LANE=m
|
||||
CONFIG_ATM_BR2684=m
|
||||
CONFIG_BRIDGE=m
|
||||
CONFIG_VLAN_8021Q=m
|
||||
@@ -240,7 +238,6 @@ CONFIG_NET_SCHED=y
|
||||
CONFIG_NET_SCH_CBQ=m
|
||||
CONFIG_NET_SCH_HTB=m
|
||||
CONFIG_NET_SCH_HFSC=m
|
||||
CONFIG_NET_SCH_ATM=m
|
||||
CONFIG_NET_SCH_PRIO=m
|
||||
CONFIG_NET_SCH_MULTIQ=m
|
||||
CONFIG_NET_SCH_RED=m
|
||||
@@ -398,12 +395,6 @@ CONFIG_NETCONSOLE=m
|
||||
CONFIG_TUN=m
|
||||
CONFIG_VETH=m
|
||||
CONFIG_VIRTIO_NET=m
|
||||
CONFIG_ATM_TCP=m
|
||||
CONFIG_ATM_LANAI=m
|
||||
CONFIG_ATM_ENI=m
|
||||
CONFIG_ATM_NICSTAR=m
|
||||
CONFIG_ATM_IDT77252=m
|
||||
CONFIG_ATM_HE=m
|
||||
CONFIG_EL3=m
|
||||
CONFIG_PCMCIA_3C574=m
|
||||
CONFIG_PCMCIA_3C589=m
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
fore200e_mkfirm
|
||||
fore200e_pca_fw.c
|
||||
pca200e.bin
|
||||
pca200e_ecd.bin2
|
||||
@@ -15,306 +15,6 @@ menuconfig ATM_DRIVERS
|
||||
|
||||
if ATM_DRIVERS && NETDEVICES && ATM
|
||||
|
||||
config ATM_DUMMY
|
||||
tristate "Dummy ATM driver"
|
||||
help
|
||||
Dummy ATM driver. Useful for proxy signalling, testing,
|
||||
and development. If unsure, say N.
|
||||
|
||||
config ATM_TCP
|
||||
tristate "ATM over TCP"
|
||||
depends on INET
|
||||
help
|
||||
ATM over TCP driver. Useful mainly for development and for
|
||||
experiments. If unsure, say N.
|
||||
|
||||
config ATM_LANAI
|
||||
tristate "Efficient Networks Speedstream 3010"
|
||||
depends on PCI && ATM
|
||||
help
|
||||
Supports ATM cards based on the Efficient Networks "Lanai"
|
||||
chipset such as the Speedstream 3010 and the ENI-25p. The
|
||||
Speedstream 3060 is currently not supported since we don't
|
||||
have the code to drive the on-board Alcatel DSL chipset (yet).
|
||||
|
||||
config ATM_ENI
|
||||
tristate "Efficient Networks ENI155P"
|
||||
depends on PCI
|
||||
help
|
||||
Driver for the Efficient Networks ENI155p series and SMC ATM
|
||||
Power155 155 Mbps ATM adapters. Both, the versions with 512KB and
|
||||
2MB on-board RAM (Efficient calls them "C" and "S", respectively),
|
||||
and the FPGA and the ASIC Tonga versions of the board are supported.
|
||||
The driver works with MMF (-MF or ...F) and UTP-5 (-U5 or ...D)
|
||||
adapters.
|
||||
|
||||
To compile this driver as a module, choose M here: the module will
|
||||
be called eni.
|
||||
|
||||
config ATM_ENI_DEBUG
|
||||
bool "Enable extended debugging"
|
||||
depends on ATM_ENI
|
||||
help
|
||||
Extended debugging records various events and displays that list
|
||||
when an inconsistency is detected. This mechanism is faster than
|
||||
generally using printks, but still has some impact on performance.
|
||||
Note that extended debugging may create certain race conditions
|
||||
itself. Enable this ONLY if you suspect problems with the driver.
|
||||
|
||||
config ATM_ENI_TUNE_BURST
|
||||
bool "Fine-tune burst settings"
|
||||
depends on ATM_ENI
|
||||
help
|
||||
In order to obtain good throughput, the ENI NIC can transfer
|
||||
multiple words of data per PCI bus access cycle. Such a multi-word
|
||||
transfer is called a burst.
|
||||
|
||||
The default settings for the burst sizes are suitable for most PCI
|
||||
chipsets. However, in some cases, large bursts may overrun buffers
|
||||
in the PCI chipset and cause data corruption. In such cases, large
|
||||
bursts must be disabled and only (slower) small bursts can be used.
|
||||
The burst sizes can be set independently in the send (TX) and
|
||||
receive (RX) direction.
|
||||
|
||||
Note that enabling many different burst sizes in the same direction
|
||||
may increase the cost of setting up a transfer such that the
|
||||
resulting throughput is lower than when using only the largest
|
||||
available burst size.
|
||||
|
||||
Also, sometimes larger bursts lead to lower throughput, e.g. on an
|
||||
Intel 440FX board, a drop from 135 Mbps to 103 Mbps was observed
|
||||
when going from 8W to 16W bursts.
|
||||
|
||||
config ATM_ENI_BURST_TX_16W
|
||||
bool "Enable 16W TX bursts (discouraged)"
|
||||
depends on ATM_ENI_TUNE_BURST
|
||||
help
|
||||
Burst sixteen words at once in the send direction. This may work
|
||||
with recent PCI chipsets, but is known to fail with older chipsets.
|
||||
|
||||
config ATM_ENI_BURST_TX_8W
|
||||
bool "Enable 8W TX bursts (recommended)"
|
||||
depends on ATM_ENI_TUNE_BURST
|
||||
help
|
||||
Burst eight words at once in the send direction. This is the default
|
||||
setting.
|
||||
|
||||
config ATM_ENI_BURST_TX_4W
|
||||
bool "Enable 4W TX bursts (optional)"
|
||||
depends on ATM_ENI_TUNE_BURST
|
||||
help
|
||||
Burst four words at once in the send direction. You may want to try
|
||||
this if you have disabled 8W bursts. Enabling 4W if 8W is also set
|
||||
may or may not improve throughput.
|
||||
|
||||
config ATM_ENI_BURST_TX_2W
|
||||
bool "Enable 2W TX bursts (optional)"
|
||||
depends on ATM_ENI_TUNE_BURST
|
||||
help
|
||||
Burst two words at once in the send direction. You may want to try
|
||||
this if you have disabled 4W and 8W bursts. Enabling 2W if 4W or 8W
|
||||
are also set may or may not improve throughput.
|
||||
|
||||
config ATM_ENI_BURST_RX_16W
|
||||
bool "Enable 16W RX bursts (discouraged)"
|
||||
depends on ATM_ENI_TUNE_BURST
|
||||
help
|
||||
Burst sixteen words at once in the receive direction. This may work
|
||||
with recent PCI chipsets, but is known to fail with older chipsets.
|
||||
|
||||
config ATM_ENI_BURST_RX_8W
|
||||
bool "Enable 8W RX bursts (discouraged)"
|
||||
depends on ATM_ENI_TUNE_BURST
|
||||
help
|
||||
Burst eight words at once in the receive direction. This may work
|
||||
with recent PCI chipsets, but is known to fail with older chipsets,
|
||||
such as the Intel Neptune series.
|
||||
|
||||
config ATM_ENI_BURST_RX_4W
|
||||
bool "Enable 4W RX bursts (recommended)"
|
||||
depends on ATM_ENI_TUNE_BURST
|
||||
help
|
||||
Burst four words at once in the receive direction. This is the
|
||||
default setting. Enabling 4W if 8W is also set may or may not
|
||||
improve throughput.
|
||||
|
||||
config ATM_ENI_BURST_RX_2W
|
||||
bool "Enable 2W RX bursts (optional)"
|
||||
depends on ATM_ENI_TUNE_BURST
|
||||
help
|
||||
Burst two words at once in the receive direction. You may want to
|
||||
try this if you have disabled 4W and 8W bursts. Enabling 2W if 4W or
|
||||
8W are also set may or may not improve throughput.
|
||||
|
||||
config ATM_NICSTAR
|
||||
tristate "IDT 77201 (NICStAR) (ForeRunnerLE)"
|
||||
depends on PCI
|
||||
help
|
||||
The NICStAR chipset family is used in a large number of ATM NICs for
|
||||
25 and for 155 Mbps, including IDT cards and the Fore ForeRunnerLE
|
||||
series. Say Y if you have one of those.
|
||||
|
||||
To compile this driver as a module, choose M here: the module will
|
||||
be called nicstar.
|
||||
|
||||
config ATM_NICSTAR_USE_SUNI
|
||||
bool "Use suni PHY driver (155Mbps)"
|
||||
depends on ATM_NICSTAR
|
||||
help
|
||||
Support for the S-UNI and compatible PHYsical layer chips. These are
|
||||
found in most 155Mbps NICStAR based ATM cards, namely in the
|
||||
ForeRunner LE155 cards. This driver provides detection of cable~
|
||||
removal and reinsertion and provides some statistics. This driver
|
||||
doesn't have removal capability when compiled as a module, so if you
|
||||
need that capability don't include S-UNI support (it's not needed to
|
||||
make the card work).
|
||||
|
||||
config ATM_NICSTAR_USE_IDT77105
|
||||
bool "Use IDT77105 PHY driver (25Mbps)"
|
||||
depends on ATM_NICSTAR
|
||||
help
|
||||
Support for the PHYsical layer chip in ForeRunner LE25 cards. In
|
||||
addition to cable removal/reinsertion detection, this driver allows
|
||||
you to control the loopback mode of the chip via a dedicated IOCTL.
|
||||
This driver is required for proper handling of temporary carrier
|
||||
loss, so if you have a 25Mbps NICStAR based ATM card you must say Y.
|
||||
|
||||
config ATM_IDT77252
|
||||
tristate "IDT 77252 (NICStAR II)"
|
||||
depends on PCI
|
||||
help
|
||||
Driver for the IDT 77252 ATM PCI chips.
|
||||
|
||||
To compile this driver as a module, choose M here: the module will
|
||||
be called idt77252.
|
||||
|
||||
config ATM_IDT77252_DEBUG
|
||||
bool "Enable debugging messages"
|
||||
depends on ATM_IDT77252
|
||||
help
|
||||
Somewhat useful debugging messages are available. The choice of
|
||||
messages is controlled by a bitmap. This may be specified as a
|
||||
module argument. See the file <file:drivers/atm/idt77252.h> for
|
||||
the meanings of the bits in the mask.
|
||||
|
||||
When active, these messages can have a significant impact on the
|
||||
speed of the driver, and the size of your syslog files! When
|
||||
inactive, they will have only a modest impact on performance.
|
||||
|
||||
config ATM_IDT77252_RCV_ALL
|
||||
bool "Receive ALL cells in raw queue"
|
||||
depends on ATM_IDT77252
|
||||
help
|
||||
Enable receiving of all cells on the ATM link, that do not match
|
||||
an open connection in the raw cell queue of the driver. Useful
|
||||
for debugging or special applications only, so the safe answer is N.
|
||||
|
||||
config ATM_IDT77252_USE_SUNI
|
||||
bool
|
||||
depends on ATM_IDT77252
|
||||
default y
|
||||
|
||||
config ATM_IA
|
||||
tristate "Interphase ATM PCI x575/x525/x531"
|
||||
depends on PCI
|
||||
help
|
||||
This is a driver for the Interphase (i)ChipSAR adapter cards
|
||||
which include a variety of variants in term of the size of the
|
||||
control memory (128K-1KVC, 512K-4KVC), the size of the packet
|
||||
memory (128K, 512K, 1M), and the PHY type (Single/Multi mode OC3,
|
||||
UTP155, UTP25, DS3 and E3). Go to:
|
||||
<http://www.iphase.com/>
|
||||
for more info about the cards. Say Y (or M to compile as a module
|
||||
named iphase) here if you have one of these cards.
|
||||
|
||||
See the file
|
||||
<file:Documentation/networking/device_drivers/atm/iphase.rst>
|
||||
for further details.
|
||||
|
||||
config ATM_IA_DEBUG
|
||||
bool "Enable debugging messages"
|
||||
depends on ATM_IA
|
||||
help
|
||||
Somewhat useful debugging messages are available. The choice of
|
||||
messages is controlled by a bitmap. This may be specified as a
|
||||
module argument (kernel command line argument as well?), changed
|
||||
dynamically using an ioctl (Get the debug utility, iadbg, from
|
||||
<ftp://ftp.iphase.com/pub/atm/pci/>).
|
||||
|
||||
See the file <file:drivers/atm/iphase.h> for the meanings of the
|
||||
bits in the mask.
|
||||
|
||||
When active, these messages can have a significant impact on the
|
||||
speed of the driver, and the size of your syslog files! When
|
||||
inactive, they will have only a modest impact on performance.
|
||||
|
||||
config ATM_FORE200E
|
||||
tristate "FORE Systems 200E-series"
|
||||
depends on (PCI || SBUS)
|
||||
select FW_LOADER
|
||||
help
|
||||
This is a driver for the FORE Systems 200E-series ATM adapter
|
||||
cards. It simultaneously supports PCA-200E and SBA-200E models
|
||||
on PCI and SBUS hosts. Say Y (or M to compile as a module
|
||||
named fore_200e) here if you have one of these ATM adapters.
|
||||
|
||||
See the file
|
||||
<file:Documentation/networking/device_drivers/atm/fore200e.rst> for
|
||||
further details.
|
||||
|
||||
config ATM_FORE200E_USE_TASKLET
|
||||
bool "Defer interrupt work to a tasklet"
|
||||
depends on ATM_FORE200E
|
||||
default n
|
||||
help
|
||||
This defers work to be done by the interrupt handler to a
|
||||
tasklet instead of handling everything at interrupt time. This
|
||||
may improve the responsive of the host.
|
||||
|
||||
config ATM_FORE200E_TX_RETRY
|
||||
int "Maximum number of tx retries"
|
||||
depends on ATM_FORE200E
|
||||
default "16"
|
||||
help
|
||||
Specifies the number of times the driver attempts to transmit
|
||||
a message before giving up, if the transmit queue of the ATM card
|
||||
is transiently saturated.
|
||||
|
||||
Saturation of the transmit queue may occur only under extreme
|
||||
conditions, e.g. when a fast host continuously submits very small
|
||||
frames (<64 bytes) or raw AAL0 cells (48 bytes) to the ATM adapter.
|
||||
|
||||
Note that under common conditions, it is unlikely that you encounter
|
||||
a saturation of the transmit queue, so the retry mechanism never
|
||||
comes into play.
|
||||
|
||||
config ATM_FORE200E_DEBUG
|
||||
int "Debugging level (0-3)"
|
||||
depends on ATM_FORE200E
|
||||
default "0"
|
||||
help
|
||||
Specifies the level of debugging messages issued by the driver.
|
||||
The verbosity of the driver increases with the value of this
|
||||
parameter.
|
||||
|
||||
When active, these messages can have a significant impact on
|
||||
the performances of the driver, and the size of your syslog files!
|
||||
Keep the debugging level to 0 during normal operations.
|
||||
|
||||
config ATM_HE
|
||||
tristate "ForeRunner HE Series"
|
||||
depends on PCI
|
||||
help
|
||||
This is a driver for the Marconi ForeRunner HE-series ATM adapter
|
||||
cards. It simultaneously supports the 155 and 622 versions.
|
||||
|
||||
config ATM_HE_USE_SUNI
|
||||
bool "Use S/UNI PHY driver"
|
||||
depends on ATM_HE
|
||||
help
|
||||
Support for the S/UNI-Ultra and S/UNI-622 found in the ForeRunner
|
||||
HE cards. This driver provides carrier detection some statistics.
|
||||
|
||||
config ATM_SOLOS
|
||||
tristate "Solos ADSL2+ PCI Multiport card driver"
|
||||
depends on PCI
|
||||
|
||||
@@ -1,32 +1,3 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Makefile for the Linux network (ATM) device drivers.
|
||||
#
|
||||
|
||||
fore_200e-y := fore200e.o
|
||||
|
||||
obj-$(CONFIG_ATM_NICSTAR) += nicstar.o
|
||||
obj-$(CONFIG_ATM_IA) += iphase.o suni.o
|
||||
obj-$(CONFIG_ATM_FORE200E) += fore_200e.o
|
||||
obj-$(CONFIG_ATM_ENI) += eni.o suni.o
|
||||
obj-$(CONFIG_ATM_IDT77252) += idt77252.o
|
||||
obj-$(CONFIG_ATM_SOLOS) += solos-pci.o
|
||||
|
||||
ifeq ($(CONFIG_ATM_NICSTAR_USE_SUNI),y)
|
||||
obj-$(CONFIG_ATM_NICSTAR) += suni.o
|
||||
endif
|
||||
ifeq ($(CONFIG_ATM_NICSTAR_USE_IDT77105),y)
|
||||
obj-$(CONFIG_ATM_NICSTAR) += idt77105.o
|
||||
endif
|
||||
ifeq ($(CONFIG_ATM_IDT77252_USE_SUNI),y)
|
||||
obj-$(CONFIG_ATM_IDT77252) += suni.o
|
||||
endif
|
||||
|
||||
obj-$(CONFIG_ATM_DUMMY) += adummy.o
|
||||
obj-$(CONFIG_ATM_TCP) += atmtcp.o
|
||||
obj-$(CONFIG_ATM_LANAI) += lanai.o
|
||||
|
||||
obj-$(CONFIG_ATM_HE) += he.o
|
||||
ifeq ($(CONFIG_ATM_HE_USE_SUNI),y)
|
||||
obj-$(CONFIG_ATM_HE) += suni.o
|
||||
endif
|
||||
|
||||
@@ -1,202 +0,0 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* adummy.c: a dummy ATM driver
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/slab.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/byteorder.h>
|
||||
#include <linux/uaccess.h>
|
||||
|
||||
#include <linux/atmdev.h>
|
||||
#include <linux/atm.h>
|
||||
#include <linux/sonet.h>
|
||||
|
||||
/* version definition */
|
||||
|
||||
#define DRV_VERSION "1.0"
|
||||
|
||||
#define DEV_LABEL "adummy"
|
||||
|
||||
#define ADUMMY_DEV(dev) ((struct adummy_dev *) (dev)->dev_data)
|
||||
|
||||
struct adummy_dev {
|
||||
struct atm_dev *atm_dev;
|
||||
|
||||
struct list_head entry;
|
||||
};
|
||||
|
||||
/* globals */
|
||||
|
||||
static LIST_HEAD(adummy_devs);
|
||||
|
||||
static ssize_t __set_signal(struct device *dev,
|
||||
struct device_attribute *attr,
|
||||
const char *buf, size_t len)
|
||||
{
|
||||
struct atm_dev *atm_dev = container_of(dev, struct atm_dev, class_dev);
|
||||
int signal;
|
||||
|
||||
if (sscanf(buf, "%d", &signal) == 1) {
|
||||
|
||||
if (signal < ATM_PHY_SIG_LOST || signal > ATM_PHY_SIG_FOUND)
|
||||
signal = ATM_PHY_SIG_UNKNOWN;
|
||||
|
||||
atm_dev_signal_change(atm_dev, signal);
|
||||
return 1;
|
||||
}
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static ssize_t __show_signal(struct device *dev,
|
||||
struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct atm_dev *atm_dev = container_of(dev, struct atm_dev, class_dev);
|
||||
return sprintf(buf, "%d\n", atm_dev->signal);
|
||||
}
|
||||
static DEVICE_ATTR(signal, 0644, __show_signal, __set_signal);
|
||||
|
||||
static struct attribute *adummy_attrs[] = {
|
||||
&dev_attr_signal.attr,
|
||||
NULL
|
||||
};
|
||||
|
||||
static const struct attribute_group adummy_group_attrs = {
|
||||
.name = NULL, /* We want them in dev's root folder */
|
||||
.attrs = adummy_attrs
|
||||
};
|
||||
|
||||
static int __init
|
||||
adummy_start(struct atm_dev *dev)
|
||||
{
|
||||
dev->ci_range.vpi_bits = 4;
|
||||
dev->ci_range.vci_bits = 12;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
adummy_open(struct atm_vcc *vcc)
|
||||
{
|
||||
short vpi = vcc->vpi;
|
||||
int vci = vcc->vci;
|
||||
|
||||
if (vci == ATM_VCI_UNSPEC || vpi == ATM_VPI_UNSPEC)
|
||||
return 0;
|
||||
|
||||
set_bit(ATM_VF_ADDR, &vcc->flags);
|
||||
set_bit(ATM_VF_READY, &vcc->flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
adummy_close(struct atm_vcc *vcc)
|
||||
{
|
||||
clear_bit(ATM_VF_READY, &vcc->flags);
|
||||
clear_bit(ATM_VF_ADDR, &vcc->flags);
|
||||
}
|
||||
|
||||
static int
|
||||
adummy_send(struct atm_vcc *vcc, struct sk_buff *skb)
|
||||
{
|
||||
if (vcc->pop)
|
||||
vcc->pop(vcc, skb);
|
||||
else
|
||||
dev_kfree_skb_any(skb);
|
||||
atomic_inc(&vcc->stats->tx);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
adummy_proc_read(struct atm_dev *dev, loff_t *pos, char *page)
|
||||
{
|
||||
int left = *pos;
|
||||
|
||||
if (!left--)
|
||||
return sprintf(page, "version %s\n", DRV_VERSION);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct atmdev_ops adummy_ops =
|
||||
{
|
||||
.open = adummy_open,
|
||||
.close = adummy_close,
|
||||
.send = adummy_send,
|
||||
.proc_read = adummy_proc_read,
|
||||
.owner = THIS_MODULE
|
||||
};
|
||||
|
||||
static int __init adummy_init(void)
|
||||
{
|
||||
struct atm_dev *atm_dev;
|
||||
struct adummy_dev *adummy_dev;
|
||||
int err = 0;
|
||||
|
||||
printk(KERN_ERR "adummy: version %s\n", DRV_VERSION);
|
||||
|
||||
adummy_dev = kzalloc_obj(struct adummy_dev);
|
||||
if (!adummy_dev) {
|
||||
printk(KERN_ERR DEV_LABEL ": kzalloc() failed\n");
|
||||
err = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
atm_dev = atm_dev_register(DEV_LABEL, NULL, &adummy_ops, -1, NULL);
|
||||
if (!atm_dev) {
|
||||
printk(KERN_ERR DEV_LABEL ": atm_dev_register() failed\n");
|
||||
err = -ENODEV;
|
||||
goto out_kfree;
|
||||
}
|
||||
|
||||
adummy_dev->atm_dev = atm_dev;
|
||||
atm_dev->dev_data = adummy_dev;
|
||||
|
||||
if (sysfs_create_group(&atm_dev->class_dev.kobj, &adummy_group_attrs))
|
||||
dev_err(&atm_dev->class_dev, "Could not register attrs for adummy\n");
|
||||
|
||||
if (adummy_start(atm_dev)) {
|
||||
printk(KERN_ERR DEV_LABEL ": adummy_start() failed\n");
|
||||
err = -ENODEV;
|
||||
goto out_unregister;
|
||||
}
|
||||
|
||||
list_add(&adummy_dev->entry, &adummy_devs);
|
||||
out:
|
||||
return err;
|
||||
|
||||
out_unregister:
|
||||
atm_dev_deregister(atm_dev);
|
||||
out_kfree:
|
||||
kfree(adummy_dev);
|
||||
goto out;
|
||||
}
|
||||
|
||||
static void __exit adummy_cleanup(void)
|
||||
{
|
||||
struct adummy_dev *adummy_dev, *next;
|
||||
|
||||
list_for_each_entry_safe(adummy_dev, next, &adummy_devs, entry) {
|
||||
atm_dev_deregister(adummy_dev->atm_dev);
|
||||
kfree(adummy_dev);
|
||||
}
|
||||
}
|
||||
|
||||
module_init(adummy_init);
|
||||
module_exit(adummy_cleanup);
|
||||
|
||||
MODULE_AUTHOR("chas williams <chas@cmf.nrl.navy.mil>");
|
||||
MODULE_DESCRIPTION("dummy ATM driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
File diff suppressed because it is too large
Load Diff
-2321
File diff suppressed because it is too large
Load Diff
@@ -1,136 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/* drivers/atm/eni.h - Efficient Networks ENI155P device driver declarations */
|
||||
|
||||
/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
|
||||
|
||||
|
||||
#ifndef DRIVER_ATM_ENI_H
|
||||
#define DRIVER_ATM_ENI_H
|
||||
|
||||
#include <linux/atm.h>
|
||||
#include <linux/atmdev.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/sonet.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <linux/time.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/atomic.h>
|
||||
|
||||
#include "midway.h"
|
||||
|
||||
|
||||
#define DEV_LABEL "eni"
|
||||
|
||||
#define UBR_BUFFER (128*1024) /* UBR buffer size */
|
||||
|
||||
#define RX_DMA_BUF 8 /* burst and skip a few things */
|
||||
#define TX_DMA_BUF 100 /* should be enough for 64 kB */
|
||||
|
||||
#define DEFAULT_RX_MULT 300 /* max_sdu*3 */
|
||||
#define DEFAULT_TX_MULT 300 /* max_sdu*3 */
|
||||
|
||||
#define ENI_ZEROES_SIZE 4 /* need that many DMA-able zero bytes */
|
||||
|
||||
|
||||
struct eni_free {
|
||||
void __iomem *start; /* counting in bytes */
|
||||
int order;
|
||||
};
|
||||
|
||||
struct eni_tx {
|
||||
void __iomem *send; /* base, 0 if unused */
|
||||
int prescaler; /* shaping prescaler */
|
||||
int resolution; /* shaping divider */
|
||||
unsigned long tx_pos; /* current TX write position */
|
||||
unsigned long words; /* size of TX queue */
|
||||
int index; /* TX channel number */
|
||||
int reserved; /* reserved peak cell rate */
|
||||
int shaping; /* shaped peak cell rate */
|
||||
struct sk_buff_head backlog; /* queue of waiting TX buffers */
|
||||
};
|
||||
|
||||
struct eni_vcc {
|
||||
int (*rx)(struct atm_vcc *vcc); /* RX function, NULL if none */
|
||||
void __iomem *recv; /* receive buffer */
|
||||
unsigned long words; /* its size in words */
|
||||
unsigned long descr; /* next descriptor (RX) */
|
||||
unsigned long rx_pos; /* current RX descriptor pos */
|
||||
struct eni_tx *tx; /* TXer, NULL if none */
|
||||
int rxing; /* number of pending PDUs */
|
||||
int servicing; /* number of waiting VCs (0 or 1) */
|
||||
int txing; /* number of pending TX bytes */
|
||||
ktime_t timestamp; /* for RX timing */
|
||||
struct atm_vcc *next; /* next pending RX */
|
||||
struct sk_buff *last; /* last PDU being DMAed (used to carry
|
||||
discard information) */
|
||||
};
|
||||
|
||||
struct eni_dev {
|
||||
/*-------------------------------- spinlock */
|
||||
spinlock_t lock; /* sync with interrupt */
|
||||
struct tasklet_struct task; /* tasklet for interrupt work */
|
||||
u32 events; /* pending events */
|
||||
/*-------------------------------- base pointers into Midway address
|
||||
space */
|
||||
void __iomem *ioaddr;
|
||||
void __iomem *phy; /* PHY interface chip registers */
|
||||
void __iomem *reg; /* register base */
|
||||
void __iomem *ram; /* RAM base */
|
||||
void __iomem *vci; /* VCI table */
|
||||
void __iomem *rx_dma; /* RX DMA queue */
|
||||
void __iomem *tx_dma; /* TX DMA queue */
|
||||
void __iomem *service; /* service list */
|
||||
/*-------------------------------- TX part */
|
||||
struct eni_tx tx[NR_CHAN]; /* TX channels */
|
||||
struct eni_tx *ubr; /* UBR channel */
|
||||
struct sk_buff_head tx_queue; /* PDUs currently being TX DMAed*/
|
||||
wait_queue_head_t tx_wait; /* for close */
|
||||
int tx_bw; /* remaining bandwidth */
|
||||
u32 dma[TX_DMA_BUF*2]; /* DMA request scratch area */
|
||||
struct eni_zero { /* aligned "magic" zeroes */
|
||||
u32 *addr;
|
||||
dma_addr_t dma;
|
||||
} zero;
|
||||
int tx_mult; /* buffer size multiplier (percent) */
|
||||
/*-------------------------------- RX part */
|
||||
u32 serv_read; /* host service read index */
|
||||
struct atm_vcc *fast,*last_fast;/* queues of VCCs with pending PDUs */
|
||||
struct atm_vcc *slow,*last_slow;
|
||||
struct atm_vcc **rx_map; /* for fast lookups */
|
||||
struct sk_buff_head rx_queue; /* PDUs currently being RX-DMAed */
|
||||
wait_queue_head_t rx_wait; /* for close */
|
||||
int rx_mult; /* buffer size multiplier (percent) */
|
||||
/*-------------------------------- statistics */
|
||||
unsigned long lost; /* number of lost cells (RX) */
|
||||
/*-------------------------------- memory management */
|
||||
unsigned long base_diff; /* virtual-real base address */
|
||||
int free_len; /* free list length */
|
||||
struct eni_free *free_list; /* free list */
|
||||
int free_list_size; /* maximum size of free list */
|
||||
/*-------------------------------- ENI links */
|
||||
struct atm_dev *more; /* other ENI devices */
|
||||
/*-------------------------------- general information */
|
||||
int mem; /* RAM on board (in bytes) */
|
||||
int asic; /* PCI interface type, 0 for FPGA */
|
||||
unsigned int irq; /* IRQ */
|
||||
struct pci_dev *pci_dev; /* PCI stuff */
|
||||
};
|
||||
|
||||
|
||||
#define ENI_DEV(d) ((struct eni_dev *) (d)->dev_data)
|
||||
#define ENI_VCC(d) ((struct eni_vcc *) (d)->dev_data)
|
||||
|
||||
|
||||
struct eni_skb_prv {
|
||||
struct atm_skb_data _; /* reserved */
|
||||
unsigned long pos; /* position of next descriptor */
|
||||
int size; /* PDU size in reassembly buffer */
|
||||
dma_addr_t paddr; /* DMA handle */
|
||||
};
|
||||
|
||||
#define ENI_PRV_SIZE(skb) (((struct eni_skb_prv *) (skb)->cb)->size)
|
||||
#define ENI_PRV_POS(skb) (((struct eni_skb_prv *) (skb)->cb)->pos)
|
||||
#define ENI_PRV_PADDR(skb) (((struct eni_skb_prv *) (skb)->cb)->paddr)
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
-2861
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user