android_kernel_oneplus_msm8998/drivers
Scott Feldman d52df4a35a [netdrvr e100] experiment with doing RX in a similar manner to eepro100
I was going to say that eepro100's speedo_rx_link() does the same DMA
abuse as e100, but then I noticed one little detail: eepro100 sets  both
EL (end of list) and S (suspend) bits in the RFD as it chains it  to the
RFD list.  e100 was only setting the EL bit.  Hmmm, that's  interesting.
That means that if HW reads a RFD with the S-bit set,  it'll process
that RFD and then suspend the receive unit.  The  receive unit will
resume when SW clears the S-bit.  There is no need  for SW to restart
the receive unit.  Which means a lot of the receive  unit state tracking
code in the driver goes away.

So here's a patch against 2.6.14.  (Sorry for inlining it; the mailer
I'm using now will mess with the word wrap).  I can't test this on
XScale (unless someone has an e100 module for Gumstix :) .  It should
be doing exactly what eepro100 does with RFDs.  I don't believe this
change will introduce a performance hit because the S-bit and EL-bit  go
hand-in-hand meaning if we're going to suspend because of the S- bit,
we're on the last resource anyway, so we'll have to wait for SW  to
replenish.
(cherry picked from 29e79da9495261119e3b2e4e7c72507348e75976 commit)
2007-04-28 11:01:05 -04:00
..
acorn
acpi
amba uevent: use add_uevent_var() instead of open coding it 2007-04-27 10:57:29 -07:00
ata
atm [ATM]: Use mutex instead of binary semaphore in FORE Systems 200E-series driver 2007-04-26 01:41:49 -07:00
auxdisplay
base drivers/base/attribute_container.c: use mutex instead of binary semaphore 2007-04-27 10:57:34 -07:00
block ub: Bind to first endpoint, not to last 2007-04-27 13:28:34 -07:00
bluetooth
cdrom
char
clocksource
connector
cpufreq
crypto
dio
dma
edac
eisa
fc4
firmware
hid
hwmon
i2c
ide IDE: remove rwsem use from ide-proc core 2007-04-27 10:57:30 -07:00
ieee1394 IEEE1394: remove rwsem use from ieee1394 core 2007-04-27 10:57:30 -07:00
infiniband Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband 2007-04-27 09:39:27 -07:00
input Input: gameport - do not touch bus's rwsem 2007-04-27 10:57:30 -07:00
isdn
kvm
leds
macintosh
mca
md
media V4L/DVB (5563): Radio-maestro.c Replace radio_ioctl to use video_ioctl2 2007-04-27 15:46:01 -03:00
message
mfd
misc
mmc uevent: use add_uevent_var() instead of open coding it 2007-04-27 10:57:29 -07:00
mtd [MTD] [MAPS] drivers/mtd/maps/ck804xrom.c: convert pci_module_init() 2007-04-27 23:34:21 +01:00
net [netdrvr e100] experiment with doing RX in a similar manner to eepro100 2007-04-28 11:01:05 -04:00
nubus
oprofile
parisc
parport
pci define platform wakeup hook, use in pci_enable_wake() 2007-04-27 10:57:33 -07:00
pcmcia
pnp PNP: stop using the subsystem rwsem 2007-04-27 10:57:30 -07:00
ps3
rapidio
rtc
s390 s390: cio: Delay uevents for subchannels 2007-04-27 10:57:32 -07:00
sbus [OPENPROM]: Use pci_device_to_OF_node(). 2007-04-26 01:54:59 -07:00
scsi [SCSI] esp_scsi.c: Fix compilation. 2007-04-27 15:19:27 -07:00
serial [SPARC/64] constify of_get_property return: drivers 2007-04-26 01:54:27 -07:00
sh
sn
spi
tc
telephony
usb usb-net/pegasus: simplify carrier detection 2007-04-27 20:16:41 -04:00
video [IGAFB]: Use pci_device_to_OF_node() on sparc. 2007-04-26 01:55:03 -07:00
w1
zorro
Kconfig
Makefile