- 11 10月, 2007 28 次提交
-
-
由 Olof Johansson 提交于
pasemi_mac: clear out old errors on interface open Clear out any pending errors when an interface is brought up. Since the bits are sticky, they might be from interface shutdown time after firmware has used it, etc. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
pasemi_mac: update todo list Remove some stale todo items that have been taken care of. Add a couple of upcoming ones. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
pasemi_mac: further performance tweaks Misc driver tweaks for pasemi_mac: * Increase ring size (really needed mostly on 10G) * Take out an unneeded barrier * Move around a few prefetches and reorder a few calls * Don't try to clean on full tx buffer, just let things take their course and stop the queue directly * Avoid filling on the same line as the interface is working on to reduce cache line bouncing * Avoid unneeded clearing of software state (and make the interface shutdown code handle it) * Fix up some of the tx ring wrap logic. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
pasemi_mac: add local skb alignment Add local SKB alignment to pasemi_mac, since ppc64 in general has it at 0 because of design flaws in some of the IBM server bridge chips. However, for PWRficient doing the unaligned copies is more expensive than doing unaligned DMA so make sure the data is aligned instead. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
pasemi_mac: workaround for erratum 5971 Implement workarounds for erratum 5971, where L2 hints aren't considered properly unless the way hint is enabled on the interface. Since L2 isn't setup to dedicate a way to headers, we need to reset the packet count by hand so it won't run out of credits. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
pasemi_mac: implement sg support Implement SG support for pasemi_mac Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
pasemi_mac: rework ring management Rework ring management, switching to an opaque ring format instead of the struct-based descriptor+pointer setup, since it will be needed for SG support. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
pasemi_mac: fix bug in receive buffer dma mapping skb->len isn't actually set to the size of the allocated skb, so don't try to use it when figuring out how much to map. (This hasn't surfaced as a real bug because we effectively disable translation for the interface, but it still needs fixing for the future) Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
pasemi_mac: basic error checking Add some rudimentary error checking to pasemi_mac. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
pasemi_mac: pass in count of buffers to replenish rx ring with Refactor replenish_rx_ring to take an argument for how many entries to fill. Since it's normally available from where it's called anyway, this is just simpler. It also removes the awkward logic to try to figure out if we're filling for the first time or not. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
pasemi_mac: don't enable rx before there are buffers on the ring Reorder initialization of the DMA channels and the interface. Before there was a time window when the interface was enabled before DMA was enabled. Also, now there will always be RX buffers available at the time the MAC interface is enabled, to avoid temporary out-of-buffer errors for the very first packets (on busy networks). Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
pasemi_mac: flags as passed to spin_*_irqsave() should be unsigned long. Signed-off-by: NTony Breeds <tony@bakeyournoodle.com> Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
pasemi_mac: set interface speed correctly on XAUI ports Set interface speed for XAUI to 10G per default, not 1G. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Satyam Sharma 提交于
drivers/net/pasemi_mac.c: At top level: drivers/net/pasemi_mac.c:89: warning: 'read_iob_reg' defined but not used Signed-off-by: NSatyam Sharma <satyam@infradead.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Joe Perches 提交于
This is nicer than the MAC_FMT stuff. Signed-off-by: NJoe Perches <joe@perches.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jeff Garzik 提交于
We now have struct net_device_stats embedded in struct net_device, and the default ->get_stats() hook does the obvious thing for us. Run through drivers/net/* and remove the driver-local storage of statistics, and driver-local ->get_stats() hook where applicable. This was just the low-hanging fruit in drivers/net; plenty more drivers remain to be updated. [ Resolved conflicts with napi_struct changes and fix sunqe build regression... -DaveM ] Signed-off-by: NJeff Garzik <jeff@garzik.org> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Ralf Baechle 提交于
It's been a useless no-op for long enough in 2.6 so I figured it's time to remove it. The number of people that could object because they're maintaining unified 2.4 and 2.6 drivers is probably rather small. [ Handled drivers added by netdev tree and some missed IRDA cases... -DaveM ] Signed-off-by: NRalf Baechle <ralf@linux-mips.org> Signed-off-by: NJeff Garzik <jeff@garzik.org> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Olof Johansson 提交于
Unfortunately there's no timeout for how long a packet can sit on the TX ring after completion before an interrupt is generated, and we want to have a threshold that's larger than one packet per interrupt. So we have to have a timer that occasionally cleans the TX ring even though there hasn't been an interrupt. Instead of setting up a dedicated timer for this, just clean it in the NAPI poll routine instead. [ Resolved conflicts with napi_struct changes... -DaveM ] Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Olof Johansson 提交于
Enable LLTX on pasemi_mac: we're already doing sufficient locking in the driver to enable it. [ Resolved merge conflicts with napi_struct changes... -DaveM ] Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Olof Johansson 提交于
RX side flag to use is CHECKSUM_UNNECESSARY, not CHECKSUM_COMPLETE. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
The old logic didn't detect full (tx) ring cases properly, causing overruns and general badness. Clean it up a bit and abstract out the ring size checks, always making sure to leave 1 slot open. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
Postpone pci unmap and skb free of the transmitted buffers to outside of the tx ring lock, batching them up 32 at a time. Also increase the count threshold to 128. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
Various RX performance tweaks, do some explicit prefetching of packet data, etc. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
Fix up memcpy for short receives. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
Enable settings to target l2 for the first few cachelines of the packet, since we'll access them to get to the various headers. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
Move away from using the pci config access functions for simple register access. Our device has all of the registers in the config space (hey, from the hardware point of view it looks reasonable :-), so we need to somehow get to it. Newer firmwares have it in the device tree such that we can just get it and ioremap it there (in case it ever moves in future products). For now, provide a hardcoded fallback for older firmwares. [ Resolved napi_struct conflicts... -DaveM ] Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Olof Johansson 提交于
Abstract out the PCI config read/write accesses into reg read/write ones, still calling the pci accessors on the back end. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Stephen Hemminger 提交于
Several devices have multiple independant RX queues per net device, and some have a single interrupt doorbell for several queues. In either case, it's easier to support layouts like that if the structure representing the poll is independant from the net device itself. The signature of the ->poll() call back goes from: int foo_poll(struct net_device *dev, int *budget) to int foo_poll(struct napi_struct *napi, int budget) The caller is returned the number of RX packets processed (or the number of "NAPI credits" consumed if you want to get abstract). The callee no longer messes around bumping dev->quota, *budget, etc. because that is all handled in the caller upon return. The napi_struct is to be embedded in the device driver private data structures. Furthermore, it is the driver's responsibility to disable all NAPI instances in it's ->stop() device close handler. Since the napi_struct is privatized into the driver's private data structures, only the driver knows how to get at all of the napi_struct instances it may have per-device. With lots of help and suggestions from Rusty Russell, Roland Dreier, Michael Chan, Jeff Garzik, and Jamal Hadi Salim. Bug fixes from Thomas Graf, Roland Dreier, Peter Zijlstra, Joseph Fannin, Scott Wood, Hans J. Koch, and Michael Chan. [ Ported to current tree and all drivers converted. Integrated Stephen's follow-on kerneldoc additions, and restored poll_list handling to the old style to fix mutual exclusion issues. -DaveM ] Signed-off-by: NStephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 09 7月, 2007 1 次提交
-
-
由 Olof Johansson 提交于
It was mistakenly set to interrupt on the second packet instead of first, causing some interesting latency behaviour. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 16 5月, 2007 3 次提交
-
-
由 olof@lixom.net 提交于
Turns out we have an old version of firmware that stores the mac address in 'mac-address' as a string instead of a byte array. All versions that use local-mac-address should have it as byte array, so no need to do string parsing for that case. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 olof@lixom.net 提交于
This caused some very interesting behaviour depending on what happened to be built at the same time. Add terminating empty entry to the list of IDs. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
Interrupt ack fixes Fix the packet count resets at interrupt time, using the cacheable packet count status to set number of processed/received packets, since the ack count is the cumulative number of packets processed, and not incremental. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 08 5月, 2007 8 次提交
-
-
由 Olof Johansson 提交于
Use local-mac-address in the device tree instead. Fall back to mac-address for older firmware. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
PHY support for pasemi_mac. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
Add msglevel support for pasemi_mac. Move the MODULE_* defines to the top to go together with the variable (similar to tg3). Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
Logic cleanup and some performance enhancements to the RX path. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
* Remove some unused defines * Fix a couple of wrong chip register defines, and add a few more fields that might be used in the near future. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
Add a copy-break and recycle the SKB in the driver for small packets. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
Timer and interrupt fixes: * Be pickier with what kind of interrupts are acked to avoid the device to get out of sync with the driver state * Set RX count threshhold to 1 (for NAPI interrupted mode), TX count threshold to 32. * Set timer thresholds to current max (~16ms). Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Olof Johansson 提交于
Abstract out (and fix up) the interrupt restart routines, making sure we start out in a consistent state. Signed-off-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-