summaryrefslogtreecommitdiffstats
path: root/drivers/net/r6040.c
Commit message (Collapse)AuthorAgeFilesLines
* netdev: add missing set_mac_address hookStephen Hemminger2009-01-111-0/+1
| | | | | | | | Many drivers lost the ability to set ethernet address accidently during the net_device_ops conversion. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* r6040: bump release to 0.21Florian Fainelli2009-01-111-2/+2
| | | | | | | Bump version to 0.21 and release date to 09Jan2009. Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* r6040: generate random ethernet MAC address when not initializedFlorian Fainelli2009-01-111-2/+4
| | | | | | | | This patch makes the ethernet driver assign a random ethernet MAC address when the bootloader does not set it. Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* r6040: fix ifconfig down and freeing of tx/rx descriptorsFlorian Fainelli2009-01-111-11/+21
| | | | | | | | | | | | This patch fixes warnings and such traces that appear when doing an ifconfig down on the interface: WARNING: at arch/x86/kernel/pci-dma.c:376 dma_free_coherent+0x40/0x7d() Modules linked in: Signed-off-by: Joe Chou <joe.chou@rdc.com.tw> Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* r6040: bump release number to 0.20Florian Fainelli2009-01-081-2/+2
| | | | | | | This patch bumps release number to 0.20 and 07Jan2009. Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* r6040: warn about MAC address being unsetFlorian Fainelli2009-01-081-0/+5
| | | | | | | | Some bootloader/BIOSes do not set the MAC address, warn about that. Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* r6040: check PHY status when bringing interface upFlorian Fainelli2009-01-081-0/+4
| | | | | | | | | This patch makes the driver properly initialize the PHY status if not correctly set by the bootloader/BIOS. It prevents some boards to bring up the link on boot. Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* r6040: make printks consistent with DRV_NAMEFlorian Fainelli2009-01-081-7/+7
| | | | | | | | | This patch fixes some printks which were not prefixed with DRV_NAME, useful when having multiple cards/drivers on the system. Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: Remove unused netdev arg from some NAPI interfaces.Neil Horman2008-12-221-2/+2
| | | | | | | | | | When the napi api was changed to separate its 1:1 binding to the net_device struct, the netif_rx_[prep|schedule|complete] api failed to remove the now vestigual net_device structure parameter. This patch cleans up that api by properly removing it.. Signed-off-by: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* r6040: bump release number to 0.19Florian Fainelli2008-12-221-2/+2
| | | | | | | This patch bumps the release number of the driver. Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* r6040: save and restore MIER correctly in the interrupt routineJoe Chou2008-12-221-2/+7
| | | | | | | | | | This patch saves the MIER register contents before treating interrupts, then restores them correcty at the end of the interrupt routine. Signed-off-by: Joe Chou <Joe.Chou@rdc.com.tw> Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* r6040: fix wrong logic in mdio codeJoe Chou2008-12-221-2/+2
| | | | | | | | This patch fixes a reverse logic in the MDIO code. Signed-off-by: Joe Chou <Joe.Chou@rdc.com.tw> Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* r6040: convert to net_device_opsStephen Hemminger2008-11-211-11/+18
| | | | | | | Convert driver to new net_device_ops. Compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* drivers/net: Kill now superfluous ->last_rx stores.David S. Miller2008-11-031-1/+0
| | | | | | | | | | | | | The generic packet receive code takes care of setting netdev->last_rx when necessary, for the sake of the bonding ARP monitor. Drivers need not do it any more. Some cases had to be skipped over because the drivers were making use of the ->last_rx value themselves. Signed-off-by: David S. Miller <davem@davemloft.net>
* r6040: fix wrong assignment in r6040_free_txbufsFlorian Fainelli2008-09-241-1/+1
| | | | | | | | | This patch fixes a wrong assignment in r6040_free_txbufs on a receive skb pointer while we should actually do this on the transmit skb pointer. Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* r6040: fix bad usage of udelayFlorian Fainelli2008-09-241-2/+2
| | | | | | | | | | This patch fixes the bad usage of udelay(5000), which in turns is a mdelay(5). It causes compilation for ARM where udelay maximum value is checked. Reported-by: Martin Michlmayr <tbm@cyrius.com> Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* [netdrvr] remove unnecessary #includeHuang Weiyi2008-08-141-1/+0
| | | | | | | | | | | | | | | | | | | | | | The drivers below do not use LINUX_VERSION_CODE nor KERNEL_VERSION. drivers/net/acenic.c drivers/net/bnx2x_link.c drivers/net/bnx2x_main.c drivers/net/cpmac.c drivers/net/gianfar_sysfs.c drivers/net/ipg.h drivers/net/ppp_mppe.c drivers/net/pppol2tp.c drivers/net/r6040.c drivers/net/sh_eth.c drivers/net/sky2.c drivers/net/tehuti.h drivers/net/typhoon.c This patch removes the said #include <linux/version.h>. Signed-off-by: Huang Weiyi <hwy@cn.fujitsu.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* r6040: rework init_one error handlingFlorian Fainelli2008-07-221-19/+25
| | | | | | | | | | This patch reworks the error handling in r6040_init_one in order not to leak resources and correcly unmap and release PCI regions of the MAC. Also prefix printk's with the driver name for clarity. Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* r6040: bump release number to 0.18Florian Fainelli2008-07-221-2/+2
| | | | | | | | | This patch bumps the release of the r6040 driver. There has been quite some versions of it out there, but this one is the one people should report bugs against. Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* r6040: handle RX fifo full and no descriptor interruptsFlorian Fainelli2008-07-221-7/+15
| | | | | | | | | This patch allows the MAC to handle the RX FIFO full and no descriptor available interrupts. While we are at it replace the TX interrupt with its corresponding definition. Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* r6040: change the default waiting timeFlorian Fainelli2008-07-221-2/+2
| | | | | | | | | This patch changes the default waiting time of a packet, which along with our previous r6040_rx path, was causing huge delays with another host (160 to 230 ms). Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* r6040: use definitions for magic values in descriptor statusFlorian Fainelli2008-07-221-11/+26
| | | | | | | Define all the descriptor status the MAC can set. Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* r6040: completely rework the RX pathFlorian Fainelli2008-07-221-82/+62
| | | | | | | | | | | | | | | | | This patch completely reworks the RX path in order to be more accurate about what is going on with the MAC. We no longer read the error from the MLSR register instead read the descriptor status register which reflects, the error per descriptor. We now allocate skbs on the fly in r6040_rx, and we handle allocation failure instead of simply dropping the packet. Remove the rx_free_desc counter of r6040_private structure since we allocate skbs in the RX path. r6040_rx_buf_alloc is now removed and becomes unuseless. Signed-Off-By: Joerg Albert <jal2@gmx.de> Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* r6040: call napi_disable when puting down the interface and set lp->dev ↵Florian Fainelli2008-07-221-2/+2
| | | | | | | | | | | accordingly. We did not call napi_disabled when putting down the interface which should be done. Finally initialize lp->dev when everything is set. Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* r6040: rework the RX buffers allocation routineFlorian Fainelli2008-07-221-9/+44
| | | | | | | | | | | | | | Rework the RX buffers allocation function so that we do not leak memory in the case we could not allocate skbs for the RX path. Propagate the errors to the r6040_up function where we call the RX buffers allocation function. Also rename the r6040_alloc_txbufs function to r6040_init_txbufs, to reflect what it really does. Signed-Off-By: Joerg Albert <jal2@gmx.de> Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* r6040: fix scheduling while atomic in r6040_tx_timeoutFlorian Fainelli2008-07-221-41/+58
| | | | | | | | | | | Add a helper function which only modifies R6040 MAC registers use it when we timeout, and on adapter initialization. Fix the scheduling while atomic but in the timeout routine due to the reallocation of rx/tx buffers. Signed-Off-By: Joerg Albert <jal2@gmx.de> Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* r6040: fix null pointer access and tx timeoutsFlorian Fainelli2008-07-221-8/+20
| | | | | | | | | | | This patch fixes a null pointer access in r6040_rx due to lp->dev not being initialized. Fix the TX timeouts, TX irq was not re-enabled on RX irq Signed-Off-By: Joerg Albert <jal2@gmx.de> Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* r6040: prefix all functions with r6040Florian Fainelli2008-07-221-30/+30
| | | | | | | | Prefix all functions inside the r6040 driver with r6040 to avoid namespace clashing. Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* drivers/net/r6040.c: Eliminate double sizeofJulia Lawall2008-06-271-1/+1
| | | | | | | | | | | | | | | | | | | | | Taking sizeof the result of sizeof is quite strange and does not seem to be what is wanted here. This was fixed using the following semantic patch. (http://www.emn.fr/x-info/coccinelle/) // <smpl> @@ expression E; @@ - sizeof ( sizeof (E) - ) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* drivers/net/r6040.c: correct bad use of round_jiffies()Christophe Jaillet2008-06-111-1/+1
| | | | | | | | Compared to other places in the kernel, I think that this driver misuses the function round_jiffies. Signed-off-by: Christophe Jaillet <christophe.jaillet@wanadoo.fr> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* r6040 endianness fixesAl Viro2008-03-171-4/+6
| | | | | | | pci_unmap_single() on little-endian address Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* r6040: cleanupsFlorian Fainelli2008-02-051-5/+3
| | | | | | | | | | - use netdev_alloc_skb - remove an useless variable in the IRQ handler - remove an unused private structure member - fix a spelling mistake Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
* r6040: recover from transmit timeoutFlorian Fainelli2008-02-051-24/+33
| | | | | Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
* r6040: add helpers to allocate and free the Tx/Rx buffersFlorian Fainelli2008-02-051-60/+84
| | | | | | | r6040_init_ring_desc moves around but it is kept unchanged. Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
* r6040: do not use a private stats structure to store statisticsFlorian Fainelli2008-02-051-14/+20
| | | | | Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
* r6040: cleanupsFrancois Romieu2008-01-281-20/+13
| | | | | | | | | | | - whitespaces vs tabs - use 80 cols - use if_mii - use netdev_priv - remove useless cast to void * - PCI device id does not need to be globally available Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
* r6040: erroneous dev->privFrancois Romieu2008-01-281-1/+1
| | | | Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
* r6040: remove virt_to_busFrancois Romieu2008-01-281-53/+50
| | | | Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
* r6040: compile errorFrancois Romieu2008-01-281-1/+1
| | | | | | | drivers/net/r6040.c: In function 'rx_buf_alloc': drivers/net/r6040.c:262: warning: passing argument 2 of 'pci_map_single' makes pointer from integer without a cast Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
* drivers/net/r6040: fix obvious problems (but more remain)Jeff Garzik2008-01-281-17/+14
| | | | | | | | | | | | | | - checkpatch fixes - fix bogus and uninitialized return codes in r6040_start_xmit() - netdev_get_settings() fix obvious locking bug flagged by compiler warning - set DMA consistent mask - remove unnecessary setting of dev->base_addr Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* [NET]: Add support for the RDC R6040 Fast Ethernet controllerSten Wang2008-01-281-0/+1109
This patch adds support for the RDC R6040 MAC we can find in the RDC R-321x System-on-chips. Signed-off-by: Sten Wang <sten.wang@rdc.com.tw> Signed-off-by: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us> Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu>
OpenPOWER on IntegriCloud