| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Set the MAX_FRAME_LEN register to zero in ag71xx_hw_init()
and write the correct value into that from the ag71xx_open()
and ag71xx_fast_reset() functions.
Also recalculate the RX buffer size based on the actual
maximum frame length value to optimize memory allocation.
Additionaly, disallow to change the MTU value while the
interface it running.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39147
|
|
|
|
|
|
| |
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39146
|
|
|
|
|
|
|
|
| |
This will allow to use SoC specific values for both.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39145
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The currently used bitmask is not correct for all SoCs.
Introduce a new field in struct ag71xx and store the
bitmask in that. Use the current value for now, it will
be adjusted for each SoCs in further patches.
Aslo use the new field directly in the ag71xx_rx_packets
and ag71xx_hard_start_xmit() functions and remove the
ag71xx_desc_pktlen() helper.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39144
|
|
|
|
|
|
|
|
|
|
|
| |
This enables us to add fixups to the board specific code for boards that
require special treatment of PHYs on mdio bus reset.
Signed-off-by: Felix Kaechele <heffer@fedoraproject.org>
http://patchwork.openwrt.org/patch/4614/
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39127
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, the AG71XX_RX_PKT_SIZE value limits the received
frame size to 1514/1516 bytes with/without a VLAN header
respectively. However the hardware limit is controlled by
the value the AG71XX_REG_MAC_MFL register which contains
the value of the max_frame_len field.
Compute the RX buffer size from the max_frame_len field
to get rid of the 1514/1516 byte limitation. Also remove
the unused AG71XX_RX_PKT_SIZE definition.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39121
|
|
|
|
|
|
|
|
| |
This allows to change the value dynamically.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39120
|
|
|
|
|
|
|
|
|
| |
This will allow to use different values for the
different SoCs.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39117
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ar7240_probe function uses the network device name
in the kernel log messages, however the name is not yet
initialized when the ar7240_probe function is called.
Use the mdio bus name in the messages to avoid ugly
log lines like the following one:
eth%d: Found an AR7240/AR9330 built-in switch
Reported-by: Ronald Wahl <ronald.wahl@raritan.com>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39116
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ag71xx debugfs code uses the network device name
for the device specific debugfs directory. Since r38689
'ar71xx: ag71xx: fix a race involving netdev registration'
the debugfs initialization happens before the ethernet
device gets registered and the network device name contains
'eth%d' at this point. If the board setup code registers
multiple ag71xx devices, the debugfs code tries to create
the device specific dir with the same name which causes
an error like this:
eth0: Atheros AG71xx at 0xba000000, irq 5, mode:GMII
ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.1:04 [uid=004dd041, driver=Generic PHY]
ag71xx: probe of ag71xx.0 failed with error -12
Use the device name for the debugfs directory to avoid the
collisions. Also add an error message and change the return
code if the debugfs_create_dir call fails.
Reported-by: Ronald Wahl <ronald.wahl@raritan.com>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39115
|
|
|
|
|
|
|
| |
Signed-off-by: Catalin Patulea <cat@vv.carleton.ca>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 38716
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In particular, phy_connect before register_netdev. This is because
register_netdev runs the netdev notifiers, which can race with the rest of
the initialization in ag71xx_probe. In my case this manifested in two ways:
1) If ag71xx is compiled as a module and inserted after netifd has started,
netifd is notified by register_netdev before the call to
ag71xx_phy_connect. netifd tries to bring the interface up, which calls
ag71xx_open, which in turn enters ag71xx_phy_start. This keys off
ag->phy_dev (which is still NULL) and thinks this is a fixed-link board,
and enters ag71xx_link_adjust. This looks at ag->speed which is not yet
initialized and hits the BUG() in the switch (ag->speed) in
ag71xx_link_adjust.
This is the wrong code path for ag71xx_phy_start - my board has PHYs that
need to be brought up with phy_start. Doing ag71xx_phy_connect before
register_netdev ensures that ag->phy_dev is non-NULL before
ag71xx_phy_start is ever called.
2) When ag71xx is built into the kernel, and netconsole is enabled, there
is a gap in the initial burst of replayed printks right after the netdev
comes up. My assumption is that netconsole is also triggered by a netdev
notifier, and part of this printk burst happens before the call into
ag71xx_phy_connect, so part of the burst is lost while the PHY comes up.
This patch fixes the gap - all the printks before eth0 comes up are bursted
in full when netconsole initializes.
ag71xx_phy_connect_xxx no longer runs with a registered netdev, so the
logging has been adjusted accordingly to avoid "unregistered net_device" or
"eth%d" messages in dmesg.
Signed-off-by: Catalin Patulea <cat@vv.carleton.ca>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 38689
|
|
|
|
|
|
| |
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37765
|
|
|
|
|
|
|
|
| |
256 entries is a bit excessive, even for gigabit speeds
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37762
|
|
|
|
|
|
|
|
|
|
| |
again in completion
Improves ethernet performance, especially during bridging
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37761
|
|
|
|
|
|
| |
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37759
|
|
|
|
|
|
|
|
| |
if no tx cleanup was done
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37758
|
|
|
|
|
|
| |
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37757
|
|
|
|
|
|
| |
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37756
|
|
|
|
|
|
| |
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37748
|
|
|
|
|
|
| |
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37214
|
|
|
|
|
|
| |
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35687
|
|
|
|
| |
SVN-Revision: 35564
|
|
|
|
|
|
| |
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 34880
|
|
|
|
|
|
|
|
|
|
| |
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>
SVN-Revision: 34849
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
SVN-Revision: 34848
|
|
|
|
|
|
|
|
| |
Also add a compatibility patch for 3.3
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 33969
|
|
|
|
| |
SVN-Revision: 33342
|
|
|
|
| |
SVN-Revision: 32586
|
|
|
|
|
|
| |
(obtained from an atheros driver) seems to break ethernet functionality
SVN-Revision: 31956
|
|
|
|
|
|
| |
deliver a cache-hot skb to the network stack
SVN-Revision: 31934
|
|
|
|
|
|
| |
stability on AR934x
SVN-Revision: 31925
|
|
|
|
|
|
| |
Eric Dumazet)
SVN-Revision: 31736
|
|
|
|
|
|
| |
having to keep non-upstream ethernet driver changes
SVN-Revision: 31637
|
|
|
|
| |
SVN-Revision: 31533
|
|
|
|
| |
SVN-Revision: 31476
|
|
|
|
| |
SVN-Revision: 30946
|
|
|
|
| |
SVN-Revision: 30926
|
|
|
|
| |
SVN-Revision: 30925
|
|
|
|
| |
SVN-Revision: 30924
|
|
|
|
| |
SVN-Revision: 30923
|
|
|
|
| |
SVN-Revision: 30841
|
|
|
|
| |
SVN-Revision: 30840
|
|
|
|
| |
SVN-Revision: 30768
|
|
|
|
|
|
|
|
| |
It will be usable only from linux-3.3.
Based on a patch by Dave Taht <dave.taht@bufferbloat.net>
SVN-Revision: 30417
|
|
|
|
| |
SVN-Revision: 30410
|
|
|
|
| |
SVN-Revision: 30405
|
|
|
|
| |
SVN-Revision: 29867
|
|
|
|
| |
SVN-Revision: 29848
|
|
|
|
| |
SVN-Revision: 29626
|