Age | Commit message (Collapse) | Author |
|
This reverts commit d4b2153e87aa2d35b5f830744c14a04e386b3adb.
"fec: use interrupt for MDIO completion indication"
In IMX28, eth0 and eth1 shared MDIO, using interrupt to indicate
mdio read or write complete makes eth1 not working.
since mdio_read() can only access eth0 reg space, getting/setting eth1
phy state by writing management frame to eth0 reg space, will trigger eth1
mdio complete indication interrupt. But eth1 EIR register will not updated.
Signed-off-by: Zeng Zhaoming <b32542@freescale.com>
|
|
Set carrier flag to off when suspend,
to avoid kernel warning about sending timeout.
Reported-by: Peter Chen <peter.chen@freescale.com>
Tested-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Zeng Zhaoming <b32542@freescale.com>
|
|
Fec phy state changing occurs in delay works, which in normal task context.
And package sending mostly happens in softirq context, only happens in ksoftirq
while network traffic is heavy and some _many retries_ situation.
Linux network qdisc code keep raising NET_TX_SOFTIRQ softirq if package
not send out when netdev queue set to start. And the subsequenece process
will loop in softirq context for 10ms. Since Imx28 HZ set to 100Hz, the next
timer interrupt will trigger softirq again. this loop prevent network link
changing to up status. And cause a chicken-egg problem.
To break this loop, we need to set netdev transmit queue stop when link is down,
and start it when link becomes up.
commit 757bfe446bab7661d12a8772ca10b7a490c8aa47 try to resolve this problem,
but hand-merge mistake introduce a power resume bug.
Reported-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Zeng Zhaoming <b32542@freescale.com>
|
|
DHCP fail when enable NO_HZ and preempt at mx28evk
Signed-off-by: Zeng Zhaoming <b32542@freescale.com>
Signed-off-by: Frank Li <Frank.Li@freescale.com>
|
|
1. Using the UDP dest port to identifying an event message.
2. Add related information checking for getting rx/tx timestamp.
Signed-off-by: Xie Xiaobo <X.Xie@freescale.com>
|
|
When boot one mx28 board through another mx28 as switch, the former
would report warning information "FEC ENET: rcv is not + last error".
Signed-off-by: Fan zhicheng <B32736@freescale.com>
Signed-off-by: Xie Xiaobo <X.Xie@freescale.com>
|
|
Enable/disable L2 switch port learning does not take effect,
and this patch fixed the issue.
Signed-off-by: Fan zhicheng <B32736@freescale.com>
|
|
When application got 1588 TX timestamp, the drive would check
the related 1588 package messages.
Signed-off-by: Xie Xiaobo <R63061@freescale.com>
|
|
1. Improved the 1588 frequency drift compensation for MX28.
2. Added the sender port ID value check.
Signed-off-by: Xie Xiaobo <R63061@freescale.com>
|
|
Fix dhcp failure at i.MX28 EVK board caused by 1588 patch
Signed-off-by: Xie Xiaobo <R63061@freescale.com>
Signed-off-by: Frank Li <Frank.Li@freescale.com>
|
|
Supply the 1588 support for MX28 FEC.
Signed-off-by: Xie Xiaobo <X.Xie@freescale.com>
|
|
Fix build error at 2.6.25 kernel.
wrong write\read register use structure without volatile.
Interrupt handle will dead loop because complier optimize.
Kernel perfer use readl and writel to access register.
Change all register access to readl\writel.
Signed-off-by: Frank Li <Frank.Li@freescale.com>
|
|
The L2 Switch can get mac address from platform data.
Signed-off-by: Xie Xiaobo <X.Xie@freescale.com>
|
|
The L2 Switch have 4 ports,
and the port0 can be used as ethernet port
when Switch is configured to operate
as a 3-Port Switch (Switch Mode).
Signed-off-by: Niu Xule <b23300@freescale.com>
|
|
L2 switch driver command line controlling support
Signed-off-by: Niu Xule <b23300@freescale.com>
|
|
L2 Switch support for mx28
Signed-off-by: Niu Xule <b23300@freescale.com>
|
|
IEEE1588 implementation is a Hardware-assisted method in i.MX5,
This supply the 1588 support for MX53 FEC.
Signed-off-by: Xie Xiaobo <X.Xie@freescale.com>
|
|
Atheros ath6kl driver is based on WEXT subsystem and therefore
needs to select CONFIG_WIRELESS_EXT for compiling.
However in the latest kernel such as 2.6.35,
this option can no longer be configured using menuconfig.
So we select it when the user selects ath6kl driver to compile.
Signed-off-by: Aisheng.Dong <b29396@freescale.com>
|
|
Add missed headfile or the compiling will fail.
Signed-off-by: Aisheng.Dong <b29396@freescale.com>
|
|
This series of patches are for upgrading Atheros AR6003(ath6kl)
in 31 kernel to 35 kernel.
The WLAN_80211 config option has been changed to WLAN in 35 kernel.
Signed-off-by: Aisheng.Dong <b29396@freescale.com>
|
|
Caculate the bitrate on the root clock for CAN, in case the
root_clk_id is set. Otherwise caculatge on the default clock
named "can_clk".
Signed-off-by: William Lai<b04597@freescale.com>
|
|
After the change from mdio polling to irq, it became necessary to
restore the interrupt mask after resetting the chip in fec_stop().
Otherwise, with all irqs disabled, no communication with the PHY will be
possible after e.g. un-/replugging the cable and the device gets
stalled.
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
The phy_mii_ioctl() function unnecessarily throws away the original ifreq.
We need access to the ifreq in order to support PHYs that can perform
hardware time stamping.
Two maverick drivers filter the ioctl commands passed to phy_mii_ioctl().
This is unnecessary since phylib will check the command in any case.
Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
Because of ENGR00125986, trying to access pdata structure before pdata
gets initialized.
Signed-off-by: Dinh Nguyen <Dinh.Nguyen@freescale.com>
|
|
The origin code stop the TX queue when TX failed just the first time.
This is a wrong logic to handle the TX fails.
The right logic is to stop the TX queue and reset the card in the situation
that the fail number reachs the MAX_TX_RETRYCOUNT.
Signed-off-by: Huang Shijie <b32955@freescale.com>
|
|
FEC will go to MII mode after the FEC reset
which lead to PHY not work correctly for next link set up.
We need to reconfigure the MII/RMII mode according
the platform data setting after FEC reset
Signed-off-by:Jason Liu <r64343@freescale.com>
|
|
Max Data length of can frame is 8 Byte. If previous transfer size
is 8, the length will exceed 8 if next package data size is 7 byte.
0x8|0x7 = 0xF, length will be 0xf then kernal oops happen.
Signed-off-by: Frank Li <Frank.Li@freescale.com>
|
|
There is no fec platform data for MX51 EVK board, so
memcpy(fec_mac_default, pdata->mac, sizeof(fec_mac_default));
will cause memory issues and lead to the following oops:
FEC Ethernet Driver
Unable to handle kernel NULL pointer dereference at virtual address 00000004
pgd = 80004000
[00000004] *pgd=00000000
Internal error: Oops: 5 [#1] PREEMPT
Modules linked in:
CPU: 0 Not tainted (2.6.31-00836-gb471a66 #233)
PC is at memcpy+0x8c/0x330
This patch fix this issue which induced by commit
1f128b74b0dad4596ece46baf242562b093d2544
Signed-off-by:Jason Liu <r64343@freescale.com>
|
|
get mac address from platform data, which read from fuse
Signed-off-by: Frank Li <Frank.Li@freescale.com>
|
|
Queued for 2.6.36 in git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6.git
With the move to phylib (commit e6b043d) I was seeing sporadic "MDIO write
timeout" messages. Measure of the actual time spent showed latency times of
more than 1600us.
This patch uses the MII event indication of the FEC hardware to detect
completion of MDIO transactions.
BugLink: http://bugs.launchpad.net/bugs/546649
BugLink: http://bugs.launchpad.net/bugs/457878
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
|
|
This patch contains changes to /drivers files
Contains all checkpatch and copyright fixes.
Acked-by: Rob Herring <r.herring@freescale.com>
Signed-off-by: Dinh Nguyen <Dinh.Nguyen@freescale.com>
|
|
Integrate atheros driver package from atheros company.
It's mainly for AR6003.
Signed-off-by: Nathan Cheng <Nathan.Cheng@Atheros.com>
Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
|
|
Get mac addr from otp bits
Add suspend/resume
Signed-off-by: Rob Herring <r.herring@freescale.com>
|
|
Most of the smsc9xxx power consumption is in the phy, so
we need to suspend the phy.
Signed-off-by: Rob Herring <r.herring@freescale.com>
|
|
commit 492c5d943d6a04b124ba3a719dc746dc36b14cfb upstream.
On SMP systems, the SMSC911x registers may be accessed by multiple CPUs
and this seems to put the chip in an inconsistent state. The patch adds
spinlocks to the smsc911x_reg_read, smsc911x_reg_write,
smsc911x_rx_readfifo and smsc911x_tx_writefifo functions.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
commit 2d0bb1c1f4524befe9f0fcf0d0cd3081a451223f upstream.
Based on patches from Sonny Rao and Milton Miller...
Combined the patches to fix up clean_tx_irq and clean_rx_irq.
The PowerPC architecture does not require loads to independent bytes
to be ordered without adding an explicit barrier.
In ixgbe_clean_rx_irq we load the status bit then load the packet data.
With packet split disabled if these loads go out of order we get a
stale packet, but we will notice the bad sequence numbers and drop it.
The problem occurs with packet split enabled where the TCP/IP header
and data are in different descriptors. If the reads go out of order
we may have data that doesn't match the TCP/IP header. Since we use
hardware checksumming this bad data is never verified and it makes it
all the way to the application.
This bug was found during stress testing and adding this barrier has
been shown to fix it. The bug can manifest as a data integrity issue
(bad payload data) or as a BUG in skb_pull().
This was a nasty bug to hunt down, if people agree with the fix I think
it's a candidate for stable.
Previously Submitted to e1000-devel only for ixgbe
http://marc.info/?l=e1000-devel&m=126593062701537&w=3
We've now seen this problem hit with other device drivers (e1000e mostly)
So I'm resubmitting with fixes for other Intel Device Drivers with
similar issues.
CC: Milton Miller <miltonm@bga.com>
CC: Anton Blanchard <anton@samba.org>
CC: Sonny Rao <sonnyrao@us.ibm.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
commit 8f1d2d2be73a98c21e68fe2a26f633892d4abdd1 upstream.
ieee80211_beacon_get can return NULL...
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
commit e95b743536937a72e1560c85696b425c5d1a1c18 upstream.
The TX tracing code copies with the wrong length,
which will typically copy too little data. Fix
this by using the correct length variable.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
commit d28232b461b8d54b09e59325dbac8b0913ce2049 upstream.
Fix possible double priv->mutex lock introduced by commit
a69b03e941abae00380fc6bc1877fb797a1b31e6
"iwlwifi: cancel scan watchdog in iwl_bg_abort_scan" .
We can not call cancel_delayed_work_sync(&priv->scan_check) with
priv->mutex locked because workqueue function iwl_bg_scan_check()
take that lock internally.
We do not need to synchronize when canceling priv->scan_check work.
We can avoid races (sending double abort command or send no
command at all) using STATUS_SCAN_ABORT bit. Moreover
current iwl_bg_scan_check() code seems to be broken, as
we should not send abort commands when currently aborting.
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
commit 601e0cb165e65dc185b31fe7ebd2c0169ea47306 upstream.
On AR9285, the antenna switch configuration register uses more than just
16 bits. Because of an arbitrary mask applied to the EEPROM value that
stores this configuration, diversity was broken in some cases, leading
to a significant degradation in signal strength.
Fix this by changing the callback to return a 32 bit value and remove
the arbitrary mask.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
commit 4cee78614cfa046a26c4fbf313d5bbacb3ad8efc upstream.
When an aggregation session is being cleaned up, while the tx status
for some frames is being processed, the TID is flushed and its buffers
are sent out.
Unfortunately that left the pending un-acked frames unprocessed, thus
leaking buffers. Fix this by reordering the code so that those frames
are processed first, before the TID is flushed.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
commit f860d526eb2939a1c37128900b5af2b6f3ff7f20 upstream.
When issuing a reset, the TSF value is lost in the hardware because of
the 913x specific cold reset. As with some AR9280 cards, the TSF needs
to be preserved in software here.
Additionally, there's an issue that frequently prevents a successful
TSF write directly after the chip reset. In this case, repeating the
TSF write after the initval-writes usually works.
This patch detects failed TSF writes and recovers from them, taking
into account the delay caused by the initval writes.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Reported-by: Björn Smedman <bjorn.smedman@venatech.se>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
commit 31e79a5954b78fbed15de2c8974d5a2b6019199a upstream.
The patch 'ath9k: fix a buffer leak in A-MPDU completion' addressed the
issue of running out of buffers/descriptors in the tx path if a STA is
deleted while tx status feedback is still pending.
The remaining issue is that the skbs of the buffers are not reclaimed,
leaving a memory leak.
This patch fixes this issue by running the buffers through
ath_tx_complete_buf(), ensuring that the pending frames counter is also
updated.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
commit 73e194639d90594d06d0c10019c0ab4638869135 upstream.
When ath_tx_complete_aggr() is called, it's responsible for returning
all buffers in the linked list. This was not done when the STA lookup
failed, leading to a race condition that could leak a few buffers when
a STA just disconnected.
Fix this by immediately returning all buffers to the free list in this case.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
commit 78c4653a2274479547e259e1f416d2b3d04c42a8 upstream.
The 'bf_retries' field of the ath_buf structure was used for both
software retries (AMPDU subframes) and hardware retries (legacy
frames). This led to a wrong retry count being reported for the A-MPDU
rate control stats.
This patch changes the code to no longer use bf_retries for reporting
retry counts, but instead always using the real on-chip retry count
from the ath_tx_status.
Additionally, if the first subframe of an A-MPDU was not acked, the tx
status report is submitted along with the first acked subframe, which
may not contain the correct rates in the tx info.
This is easily corrected by saving the tx rate info before looping over
subframes, and then copying it back once the A-MPDU status report is
submitted.
In my tests this change improves throughput visibly.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Reported-by: Björn Smedman <bjorn.smedman@venatech.se>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
commit 03b4776c408d2f4bf3a5d204e223724d154716d1 upstream.
PDADC values were only generated for values surrounding the target
index, however not for the target index itself, leading to a minor
error in the generated curve.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
commit 23399016d9583d799ca98ce443a1410b13c3e96e upstream.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
commit 9cc2f3e881dcda5466c55ffe8dd0a9d1433469cb upstream.
If the receive path gets stuck, a full hardware reset is necessary to
recover from it. If this happens during a scan, the whole scan might fail,
as each channel change bypasses the full reset sequence.
Fix this by resetting the fast channel change flag if stopping the
receive path fails.
This will reduce the number of error messages that look like this:
ath: DMA failed to stop in 10 ms AR_CR=0x00000024 AR_DIAG_SW=0x40000020
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
commit 2b40994cabd2f545d5c11d3a65dcee6f6f9155f8 upstream.
It looks like it might be possible for a TID to be paused, while still
holding some queued buffers, however ath_tx_node_cleanup currently only
iterates over active TIDs.
Fix this by always checking every allocated TID for the STA that is being
cleaned up.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
commit 4c85ab11ca56da1aa59b58c80cc6a356515cc645 upstream.
https://bugzilla.kernel.org/show_bug.cgi?id=16476
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Acked-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|