Commit Graph

228 Commits (ff7456046021f02165b57d0ef63865c7ff91c3c8)

Author SHA1 Message Date
Felix Fietkau 6d651b4e3d ar71xx: ethernet: reduce tx dma ring size further to improve cache footprint
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37765 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-08-13 10:35:10 +00:00
Felix Fietkau 413a09f44c ar71xx: ethernet: reduce tx and rx DMA ring size to improve cache footprint
256 entries is a bit excessive, even for gigabit speeds

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37762 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-08-12 17:26:03 +00:00
Felix Fietkau 7fff30d5b9 ar71xx: ethernet: cache skb->len in the tx function to avoid accessing it again in completion
Improves ethernet performance, especially during bridging

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37761 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-08-12 17:26:00 +00:00
Felix Fietkau 45e13d91a6 ar71xx: fix typo
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37759 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-08-12 12:41:53 +00:00
Felix Fietkau ee79267e1c ar71xx: ethernet: skip calls to netdev_completed_queue and netif_wake_queue if no tx cleanup was done
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37758 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-08-12 11:44:35 +00:00
Felix Fietkau 7f6198dd85 ar71xx: ethernet: do not update the unused dev->last_rx field
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37757 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-08-12 11:44:31 +00:00
Felix Fietkau 8c1ae8044b ar71xx: add missing return statement in ethernet mtu change op
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37756 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-08-12 11:44:28 +00:00
Felix Fietkau 855c45a8b9 ar71xx: allow mtu > 1500 based on the configured tx/rx mtu register value
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37748 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-08-10 15:31:38 +00:00
Felix Fietkau f42a1b166f ar71xx: add linux 3.10
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37214 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-07-09 12:52:18 +00:00
Gabor Juhos c02092f81e ar71xx: remove __dev{init,exit} annotations from kernel files
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35687 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-19 20:52:06 +00:00
Felix Fietkau 069528fb36 ar71xx: allow unknown multicast frames to pass to the CPU on AR934x
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35564 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-11 18:59:05 +00:00
Gabor Juhos 17bb18be18 ar71xx: ag71xx: show PHY interface mode in dmesg
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34880 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-12-25 18:45:29 +00:00
Gabor Juhos 7b0651b99b ar71xx: ag71xx: fix mii_bus_dev sanity check
The mii_bus device is not required if phy_mask is zero.
The driver will use a fixed connection if it is not
specified.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34849 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-12-22 12:12:41 +00:00
Gabor Juhos 2b21ed9dd7 ar71xx: ag71xx: don't start/stop built-in switch w/o mii_bus_dev
Trying to do that causes a NULL pointer dereference:

CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 801d170c, ra == 801d18d4
Oops[#1]:
Cpu 0
$ 0   : 00000000 00000000 00000000 00000001
$ 4   : 00000000 802e6390 ffff8f45 00000001
$ 8   : 804b5360 ffffff80 802f93bc 00000000
$12   : 802f93e8 00000000 00000000 00000000
$16   : 8381aba0 8381aba0 00000000 00000000
$20   : 8295eff0 00000032 80000000 004101b8
$24   : 00000000 777265b0
$28   : 82936000 82937cf0 00420000 801d18d4
Hi    : 00000000
Lo    : 00000001
epc   : 801d170c ar7240sw_reset+0x1c/0x19c
    Tainted: G           O
ra    : 801d18d4 ag71xx_ar7240_start+0x28/0xc0
Status: 1100fc03    KERNEL EXL IE
Cause : 00800008
BadVA : 00000000
PrId  : 00019750 (MIPS 74Kc)
Modules linked in: ath79_wdt ohci_hcd ledtrig_usbdev ledtrig_netdev
nf_nat_irc nf_nat_ftp nf_conntrack_irc nf_conntrack_ftp
 ipt_MASQUERADE iptable_nat nf_nat pppoe xt_conntrack xt_CT xt_NOTRACK
iptable_raw xt_state nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack
ehci_hcd pppox ipt_REJECT xt_TCPMSS xt_LOG xt_comment xt_multiport
xt_mac xt_limit iptable_mangle iptable_filter ip_tables xt_tcpudp x_tab
les ppp_async ppp_generic slhc ath9k(O) ath9k_common(O) ath9k_hw(O)
ath(O) mac80211(O) usbcore usb_common nls_base crc_ccitt cfg80211(O) c
ompat(O) arc4 aes_generic crypto_blkcipher cryptomgr aead crypto_hash
crypto_algapi ledtrig_timer ledtrig_default_on leds_gpio gpio_button
_hotplug(O)
Process netifd (pid: 677, threadinfo=82936000, task=82cbe140, tls=77803750)
Stack : ffffffff 80087900 00000001 82937d74 8381aba0 8381aba0 00000000 00000000
        8295eff0 801d18d4 8295eff0 801fa4a4 00420000 80092158 00000002 8381aba0
        8381a800 00000000 00000080 801cf900 8027e720 00000000 00000000 8009223c
        8381a800 8381a82c 8027e720 00000000 00000000 7f9d14f0 00420000 801ec08c
        8381a800 801ebfb0 33000000 82937e30 00000001 8381a800 00001003 801ec348
        ...
Call Trace:
[<801d170c>] ar7240sw_reset+0x1c/0x19c
[<801d18d4>] ag71xx_ar7240_start+0x28/0xc0
[<801cf900>] ag71xx_open+0x1d0/0x258
[<801ec08c>] __dev_open+0xcc/0x130
[<801ec348>] __dev_change_flags+0xc0/0x160
[<801ec490>] dev_change_flags+0x20/0x6c
[<801ec5c8>] dev_ifsioc+0xec/0x348
[<801ecdb8>] dev_ioctl+0x594/0x67c
[<800ec00c>] do_vfs_ioctl+0x598/0x5ec
[<800ec0b0>] sys_ioctl+0x50/0x90
[<8006a3c4>] stack_done+0x20/0x40
Code: afbf0024  afb40020  afb10014 <8c910000> 00809021  24100104 24130704  8e440000  02002821

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34848 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-12-22 12:12:40 +00:00
Gabor Juhos 4f3acd22a4 ar71xx: ag71xx: fix build_skb arguments for 3.6
Also add a compatibility patch for 3.3

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33969 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-10-27 17:11:06 +00:00
Gabor Juhos 773fa9a77f ar71xx: add dynamic MDIO clock calculation
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33342 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-09-09 14:05:17 +00:00
Gabor Juhos a2954f12fb ar71xx: improve MDIO busy wait code
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32586 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-07-03 15:24:02 +00:00
Felix Fietkau 7bf6009fe6 ar71xx: do not override the mdio clock for ar9330. the override value (obtained from an atheros driver) seems to break ethernet functionality
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31956 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-28 20:39:50 +00:00
Felix Fietkau 55e7bd410c ar71xx: improve rx performance of the ethernet driver by using build_skb to deliver a cache-hot skb to the network stack
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31934 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-28 02:55:59 +00:00
Felix Fietkau 026245749a ar71xx: fix MII clock settings for various chips, improves ethernet stability on AR934x
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31925 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-27 21:02:41 +00:00
Felix Fietkau f47ed77684 ar71xx: remove AG71XX_RX_PKT_RESERVE, it is no longer necessary (found by Eric Dumazet)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31736 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-15 10:36:39 +00:00
Felix Fietkau f20d1938b5 kernel: rewrite the phy packet hook, put it in the network stack to avoid having to keep non-upstream ethernet driver changes
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31637 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-06 21:19:14 +00:00
Gabor Juhos 01bea635cb ar71xx: allow to disable link polling on unused PHYs
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31533 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-04-29 18:29:24 +00:00
Gabor Juhos 7a2e03f5e3 ar71xx: enable MIB counters in the built-in switch of the AR934x
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31476 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-04-25 13:02:11 +00:00
Gabor Juhos 6189648864 ar71xx: move micrel PHY driver to the generic linux target
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30946 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-15 09:25:53 +00:00
Gabor Juhos 8e0414c16a ar71xx: ag71xx: fix ARP frame reception on AR934x switch ports
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30926 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-13 17:29:38 +00:00
Gabor Juhos 90579991ee ar71xx: ag71xx: start aneg on switch PHYs after reset
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30925 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-13 17:29:37 +00:00
Gabor Juhos 16cf112d8c ar71xx: ag71xx: poll PHY status of all available switch ports
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30924 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-13 17:29:36 +00:00
Gabor Juhos 4e4e7aeec4 ar71xx: ag71xx: allow to use port 5 of the AR934x built-in switch
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30923 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-13 17:29:34 +00:00
Gabor Juhos b079387bc5 ar71xx: ag71xx: fix get_port_link callback
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30841 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-07 16:32:35 +00:00
Gabor Juhos 8040107a9c ar71xx: ag71xx: use the generic get_port_link implementation
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30840 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-07 16:32:34 +00:00
Gabor Juhos f265cbac9e ar71xx: ag71xx: keep VLAN tags if VLAN is not enabled
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30768 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-01 19:49:05 +00:00
Gabor Juhos cca831fa63 ar71xx: ag71xx: add BQL support
It will be usable only from linux-3.3.

Based on a patch by Dave Taht <dave.taht@bufferbloat.net>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30417 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-02-10 14:56:47 +00:00
Gabor Juhos 1b97bcd3dc ar71xx: add preliminary support for 3.3
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30410 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-02-10 11:53:56 +00:00
Gabor Juhos 0b6aaa98af ar71xx: merge files-3.2 to files
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30405 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-02-10 08:19:31 +00:00
Gabor Juhos 2899e54bd7 ar71xx: move arch specific files to files-2.6.39
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29867 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-01-22 22:38:11 +00:00
Gabor Juhos 0ddf352708 ar71xx: include linux/module.h in the micrel phy driver
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29848 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-01-22 13:51:49 +00:00
Gabor Juhos 9bf3904856 ar71xx: ag71xx: implement get_port_{link,stats} callbacks
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29626 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-31 15:02:26 +00:00
Felix Fietkau 5f97cea3f0 ar71xx: set a reserved bit that resets to 1 when writing the address table control register on the ar7240 switch (should fix #10547)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29598 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-22 05:43:53 +00:00
Gabor Juhos 56a02cffed ar71xx: ag71xx: fix switch port setup for AR934X
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29554 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-15 22:25:32 +00:00
Gabor Juhos 5039a01b61 ar71xx: ag71xx: allow to connect PHY4 to the CPU on AR934X
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29553 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-15 22:25:30 +00:00
Gabor Juhos 59e650a276 ar71xx: ag71xx: setup switch interface mode on AR934X
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29552 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-15 22:25:29 +00:00
Gabor Juhos 3f45ffd8f2 ar71xx: ag71xx: detect the built-in switch of the AR934X SoCs
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29551 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-15 22:25:28 +00:00
Gabor Juhos 691b20bcaf ar71xx: introduce ar71xx_switch_data
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29549 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-15 22:25:11 +00:00
Gabor Juhos bc40f1dc75 ar71xx: ag71xx: check PHY IDs before accessing the switch registers
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29541 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-15 13:25:23 +00:00
Gabor Juhos b480583892 ar71xx: ag71xx: don't use port 4 of the switch, it is not connected on ar724x
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29540 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-15 13:25:21 +00:00
Gabor Juhos 58bcc09552 ar71xx: ag71xx: nuke ar7240sw_init
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29539 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-15 13:25:20 +00:00
Gabor Juhos 8e7450e3c2 ar71xx: ag71xx: add support for getting switch port link status
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29017 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-13 11:27:04 +00:00
Gabor Juhos 0e2b6d0d25 ar71xx: ag71xx: remove unused mii_ctrl field from struct ag71xx
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29015 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-13 11:27:01 +00:00
Gabor Juhos f0a3d94dff ar71xx: ag71xx: remove unused mii_cfg related functions and defines
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29014 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-13 11:27:00 +00:00