android_kernel_xiaomi_sm8350/drivers/net
Michael Buesch 5100d5ac81 b43: Add PIO support for PCMCIA devices
This adds PIO support back (D'oh!) for PCMCIA devices.
This is a complete rewrite of the old PIO code. It does actually work
and we get reasonable performance out of it on a modern machine.
On a PowerBook G4 I get a few MBit for TX and a few more for RX.
So it doesn't work as well as DMA (of course), but it's a _lot_ faster
than the old PIO code (only got a few kBit with that).

The limiting factor is the host CPU speed. So it will generate 100%
CPU usage when the network interface is heavily loaded. A voluntary preemption
point in the RX path makes sure Desktop Latency isn't hurt.

PIO is needed for 16bit PCMCIA devices, as we really don't want to poke with
the braindead DMA mechanisms on PCMCIA sockets. Additionally, not all
PCMCIA sockets do actually support DMA in 16bit mode (mine doesn't).

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-04-08 15:05:56 -04:00
..
appletalk /drivers/net/appletalk/cops.c replaced init_module&cleanup_module with module_init&module_exit 2008-03-17 07:49:27 -04:00
arcnet drivers/net/arcnet/arcnet.c: use time_* macros 2008-03-28 22:14:15 -04:00
arm
atlx Merge branch 'upstream-net26' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2008-03-22 18:22:42 -07:00
bonding Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-02 22:35:23 -07:00
can
chelsio
cris
cxgb3 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-03-27 18:48:56 -07:00
e1000 e1000: remove irq_sem 2008-03-26 00:17:52 -04:00
e1000e e1000e: reorganize PHY and flow control interface 2008-03-28 22:15:00 -04:00
ehea netdev: ehea: port_lock semaphore to mutex 2008-03-28 22:14:43 -04:00
fec_8xx
fs_enet fs_enet: Don't call phy_mii_ioctl() in atomic context. 2008-02-23 23:55:00 -05:00
hamradio [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS. 2008-03-26 04:39:53 +09:00
ibm_emac
ibm_newemac ibm_newemac: emac_tx_csum typo fix 2008-03-28 21:52:39 -04:00
igb igb trivial annotations 2008-03-25 23:16:03 -04:00
irda
ixgb Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-03-27 18:48:56 -07:00
ixgbe Compilation fix for ixgbe_main.c. 2008-03-28 22:14:53 -04:00
ixp2000
mlx4 mlx4_core: Move table_find from fmr_alloc to fmr_enable 2008-02-14 10:43:48 -08:00
myri10ge
netxen netxen, phy/marvell, skge: minor checkpatch fixes 2008-03-25 23:53:24 -04:00
pcmcia axnet_cs: change debugging level for "Too much work at interrupt" message. 2008-03-05 06:28:49 -05:00
phy Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-03-27 18:48:56 -07:00
skfp skfp annotations 2008-03-26 00:18:44 -04:00
tokenring drivers/net/tokenring/3c359.c: use time_* macros 2008-03-28 22:14:20 -04:00
tulip Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-02 22:35:23 -07:00
usb Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-03 14:33:42 -07:00
wan Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-02 22:35:23 -07:00
wireless b43: Add PIO support for PCMCIA devices 2008-04-08 15:05:56 -04:00
3c59x.c
3c501.c 3c501: Further coding style fixes 2008-03-17 08:11:03 -04:00
3c501.h
3c503.c
3c503.h
3c505.c
3c505.h
3c507.c
3c509.c 3c509: convert to isa_driver and pnp_driver 2008-03-28 22:14:07 -04:00
3c515.c
3c523.c
3c523.h
3c527.c
3c527.h
7990.c
7990.h
8139cp.c
8139too.c misc drivers/net annotations 2008-03-26 00:18:43 -04:00
8390.c [8390]: Fix build error. 2008-03-22 18:33:28 -07:00
8390.h
82596.c
a2065.c
a2065.h
ac3200.c drivers/net/ac3200.c: replace init_module&cleanup_module with module_init&module_exit 2008-03-05 18:50:41 -08:00
acenic_firmware.h
acenic.c
acenic.h
amd8111e.c
amd8111e.h
apne.c drivers/net/apne.c: replace init_module&cleanup_module with module_init&module_exit 2008-03-05 18:50:16 -08:00
ariadne.c
ariadne.h
at1700.c /drivers/net/at1700.c replaced init_module&cleanup_module with module_init&module_exit 2008-03-17 07:49:27 -04:00
atarilance.c /drivers/net/atarilance.c replaced init_module&cleanup_module with module_init&module_exit 2008-03-17 07:49:28 -04:00
atp.c misc drivers/net annotations 2008-03-26 00:18:43 -04:00
atp.h
au1000_eth.c
au1000_eth.h
ax88796.c
b44.c b44: Truncate PHY address 2008-03-25 23:42:07 -04:00
b44.h
bfin_mac.c Blackfin EMAC Driver: delete unused variables to fixup gcc warnings 2008-03-28 21:52:56 -04:00
bfin_mac.h
bmac.c
bmac.h
bnx2_fw2.h
bnx2_fw.h
bnx2.c [BNX2]: Update version to 1.7.4. 2008-02-23 19:49:48 -08:00
bnx2.h [BNX2]: Disable parallel detect on an HP blade. 2008-02-23 19:48:57 -08:00
bnx2x_fw_defs.h [BNX2X]: Correct Link management 2008-02-28 11:51:50 -08:00
bnx2x_hsi.h [BNX2X]: Correct Link management 2008-02-28 11:51:50 -08:00
bnx2x_init_values.h
bnx2x_init.h [BNX2X]: Prevent PCI queue overflow 2008-02-28 11:57:29 -08:00
bnx2x_reg.h [BNX2X]: Correct Link management 2008-02-28 11:51:50 -08:00
bnx2x.c BNX2X: prevent ethtool from setting port type 2008-03-23 03:07:45 -07:00
bnx2x.h [BNX2X]: Fix Xmit bugs 2008-02-28 11:57:55 -08:00
bsd_comp.c
cassini.c [CASSINI]: Use shorter list_splice_init() macro for brevity. 2008-03-23 22:47:53 -07:00
cassini.h
cpmac.c
cs89x0.c drivers/net/cs89x0.c: compilation warning fix 2008-02-23 23:55:05 -05:00
cs89x0.h
de600.c
de600.h
de620.c
de620.h
declance.c
defxx.c misc drivers/net annotations 2008-03-26 00:18:43 -04:00
defxx.h
depca.c
depca.h
dl2k.c
dl2k.h
dm9000.c dm9000 trivial annotation 2008-03-30 14:20:24 -07:00
dm9000.h
dummy.c
e100.c e100: endianness annotations 2008-03-25 23:16:05 -04:00
e2100.c
eepro100.c
eepro.c
eexpress.c
eexpress.h
enc28j60_hw.h
enc28j60.c net/enc28j60: oops fix 2008-03-05 18:51:19 -08:00
epic100.c epic100 endianness annotations and fixes 2008-03-17 07:56:38 -04:00
eql.c
es3210.c
eth16i.c
ewrk3.c
ewrk3.h
fealnx.c
fec_mpc52xx_phy.c [POWERPC] mpc5200-fec: Fix possible NULL dereference in mdio driver 2008-03-24 17:55:48 +11:00
fec_mpc52xx.c
fec_mpc52xx.h
fec.c m68knommu: fix fec driver interrupt races 2008-03-04 08:04:11 -08:00
fec.h
forcedeth.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-02 22:35:23 -07:00
gianfar_ethtool.c
gianfar_mii.c gianfar iomem misannotations 2008-02-15 10:51:53 -05:00
gianfar_mii.h
gianfar_sysfs.c
gianfar.c gianfar: Fix Rx/Tx HW interrupt coalescing counter reset procedure. 2008-03-26 00:44:47 -04:00
gianfar.h gianfar: Fix Rx/Tx HW interrupt coalescing counter reset procedure. 2008-03-26 00:44:47 -04:00
hamachi.c
hp100.c
hp100.h
hp-plus.c
hp.c
hplance.c
hplance.h
hydra.c
ibmlana.c
ibmlana.h
ibmveth.c Use single_open instead of manual manipulations. 2008-03-26 00:19:58 -04:00
ibmveth.h
ifb.c [NET] ifb: set separate lockdep classes for queue locks 2008-03-20 17:05:13 -07:00
ioc3-eth.c [IOC3] Fix section missmatch 2008-03-17 08:11:41 -04:00
ipg.c drivers/net/ipg.c: remove unused variable 2008-03-17 07:56:42 -04:00
ipg.h
isa-skeleton.c
iseries_veth.c
jazzsonic.c
Kconfig Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-02 22:35:23 -07:00
korina.c Add support the Korina (IDT RC32434) Ethernet MAC 2008-03-26 00:19:34 -04:00
lance.c
lasi_82596.c
lib8390.c
lib82596.c
LICENSE.SRC
lne390.c
loopback.c [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS. 2008-03-26 04:39:53 +09:00
lp486e.c
mac89x0.c
mac8390.c
macb.c macb: Fix speed setting 2008-02-24 00:07:42 -05:00
macb.h
mace.c
mace.h
macmace.c
macsonic.c
macvlan.c [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS. 2008-03-26 04:39:53 +09:00
Makefile Add support the Korina (IDT RC32434) Ethernet MAC 2008-03-26 00:19:34 -04:00
meth.c
meth.h
mii.c
mipsnet.c
mv643xx_eth.c drivers/net/mv643xx_eth.c: Use FIELD_SIZEOF 2008-03-26 00:19:41 -04:00
mvme147.c
myri_code.h
myri_sbus.c
myri_sbus.h
natsemi.c misc drivers/net annotations 2008-03-26 00:18:43 -04:00
ne2.c
ne2k-pci.c more misannotations: ne2k-pci 2008-03-17 07:56:33 -04:00
ne3210.c
ne-h8300.c
ne.c
netconsole.c netconsole: avoid null pointer dereference at show_local_mac() 2008-02-15 02:01:58 -08:00
netx-eth.c
ni52.c ni52: more unbreaking 2008-03-26 00:18:04 -04:00
ni52.h ni52: unbreak scp_struct 2008-03-26 00:18:00 -04:00
ni65.c
ni65.h
ni5010.c
ni5010.h
niu.c [NIU]: Add Support for Sun ATCA Blade Server. 2008-02-28 21:25:43 -08:00
niu.h [NIU]: Add Support for Sun ATCA Blade Server. 2008-02-28 21:25:43 -08:00
ns83820.c
pasemi_mac.c
pasemi_mac.h
pci-skeleton.c
pcnet32.c pcnet32: Use print_mac 2008-02-11 10:28:31 -05:00
plip.c plip: replace spin_lock_irq with spin_lock_irqsave in irq context 2008-04-01 11:16:04 -07:00
ppp_async.c
ppp_deflate.c
ppp_generic.c
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c
pppoe.c [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS. 2008-03-26 04:39:53 +09:00
pppol2tp.c [PPPOL2TP]: Fix SMP issues in skb reorder queue handling 2008-03-05 18:40:01 -08:00
pppox.c
ps3_gelic_net.c PS3: gelic: Add wireless support for PS3 2008-02-11 10:30:05 -05:00
ps3_gelic_net.h PS3: gelic: Add wireless support for PS3 2008-02-11 10:30:05 -05:00
ps3_gelic_wireless.c PS3: gelic: Add support for separate cipher selection 2008-03-25 16:41:59 -04:00
ps3_gelic_wireless.h PS3: gelic: Add wireless support for PS3 2008-02-11 10:30:05 -05:00
qla3xxx.c qla3xxx: convert byte order of constant instead of variable 2008-03-26 00:19:43 -04:00
qla3xxx.h
r6040.c r6040 endianness fixes 2008-03-17 07:56:27 -04:00
r8169.c
rionet.c
rrunner.c
rrunner.h
s2io-regs.h
s2io.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-02 22:35:23 -07:00
s2io.h S2io: Support for vlan_rx_kill_vid entry point 2008-03-17 07:49:26 -04:00
saa9730.c
saa9730.h
sb1000.c
sb1250-mac.c
sc92031.c
seeq8005.c
seeq8005.h
sgiseeq.c
sgiseeq.h
sis190.c sis190: read the mac address from the eeprom first 2008-02-23 23:57:47 -05:00
sis900.c
sis900.h
skge.c netxen, phy/marvell, skge: minor checkpatch fixes 2008-03-25 23:53:24 -04:00
skge.h
sky2.c sky2: fix suspend/resume races 2008-04-02 09:33:53 -07:00
sky2.h sky2: fix LED management 2008-02-24 00:07:39 -05:00
slhc.c
slip.c
slip.h
smc91x.c smc91x: introduce platform data flags V2 2008-03-17 07:49:27 -04:00
smc91x.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-03-27 18:48:56 -07:00
smc911x.c
smc911x.h
smc9194.c
smc9194.h
smc-mca.c
smc-ultra32.c
smc-ultra.c
sni_82596.c
sonic.c
sonic.h
Space.c
spider_net_ethtool.c
spider_net.c
spider_net.h
starfire_firmware.h
starfire_firmware.pl
starfire.c starfire: secton fix 2008-02-09 23:42:17 -08:00
stnic.c
sun3_82586.c
sun3_82586.h
sun3lance.c
sunbmac.c
sunbmac.h
sundance.c
sungem_phy.c
sungem_phy.h
sungem.c [SUNGEM]: Fix NAPI assertion failure. 2008-03-23 03:35:12 -07:00
sungem.h
sunhme.c
sunhme.h
sunlance.c
sunqe.c
sunqe.h
sunvnet.c
sunvnet.h
tc35815.c
tehuti_fw.h
tehuti.c
tehuti.h
tg3.c [TG3]: Fix build warning on sparc32. 2008-03-20 15:53:15 -07:00
tg3.h
tlan.c tlan: add static to function definitions 2008-02-23 23:57:46 -05:00
tlan.h
tsi108_eth.c Tsi108_eth: Add ethtool support 2008-02-11 14:47:29 -05:00
tsi108_eth.h
tun.c [TUN]: Fix RTNL-locking in tun/tap driver 2008-02-29 12:26:21 -08:00
typhoon-firmware.h
typhoon.c typhoon: section fix 2008-02-09 23:40:34 -08:00
typhoon.h
ucc_geth_ethtool.c
ucc_geth_mii.c
ucc_geth_mii.h
ucc_geth.c ucc_geth: use correct thread number for 10/100Mbps link 2008-03-17 08:11:46 -04:00
ucc_geth.h
veth.c [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS. 2008-03-26 04:39:53 +09:00
via-rhine.c [netdrvr] via-rhine: Use register offset definition for WOLcgClr 2008-02-24 00:07:37 -05:00
via-velocity.c [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS. 2008-03-26 04:39:53 +09:00
via-velocity.h
virtio_net.c virtio: fix race in enable_cb 2008-03-17 22:58:21 +11:00
wd.c
xen-netfront.c
yellowfin.c net: yellowfin parenthesis fix 2008-03-28 22:14:49 -04:00
znet.c
zorro8390.c