summaryrefslogtreecommitdiff
path: root/drivers/net
AgeCommit message (Collapse)Author
2010-12-22ENGR00137130 Fec: Can't bootup from NFS when eth0 and eth1 all linkedrel_imx_2.6.35_10.12.01_RC3Zeng Zhaoming
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>
2010-12-14ENGR00136942 FEC: Fix resume fec trigger transmit timeoutZeng Zhaoming
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>
2010-12-14ENGR00136921 FEC: Fix nfs not works after kernel suspend and resume on i.MX28Zeng Zhaoming
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>
2010-12-10ENGR00136218 FEC: Fix dhcp fail when enable preempt at mx28Frank Li
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>
2010-12-09ENGR00136108 PTP: Revise and supplement for MX53 1588 driverXie Xiaobo
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>
2010-12-03ENGR00126514 L2Switch: Fixed the warning information report issueXie Xiaobo
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>
2010-12-03ENGR00126516 L2Switch: Fixed port learning function issueXie Xiaobo
Enable/disable L2 switch port learning does not take effect, and this patch fixed the issue. Signed-off-by: Fan zhicheng <B32736@freescale.com>
2010-11-26ENGR00133979 PTP: Add information check for MX28 1588 TX timestampXie Xiaobo
When application got 1588 TX timestamp, the drive would check the related 1588 package messages. Signed-off-by: Xie Xiaobo <R63061@freescale.com>
2010-11-22ENGR00133658 PTP: Improvement and supplemental check for i.MX28 1588Xie Xiaobo
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>
2010-11-10ENGR00133380 FEC: Fix dhcp failure at i.MX28 EVKFrank Li
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>
2010-10-27ENGR00122832 MX28: Support for IEEE 1588 interface functionalityXie Xiaobo
Supply the 1588 support for MX28 FEC. Signed-off-by: Xie Xiaobo <X.Xie@freescale.com>
2010-10-26ENGR00132700 L2-SWITCH: Fix system hang when enable L2-SwitchFrank Li
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>
2010-10-26ENGR00126576 L2-Switch: support getting mac address from platform dataXie Xiaobo
The L2 Switch can get mac address from platform data. Signed-off-by: Xie Xiaobo <X.Xie@freescale.com>
2010-10-26ENGR00124252 MX28: Support Switch port0 as ethernet portNiu Xule
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>
2010-10-26ENGR00123741 MX28: Add IOCTL commands to L2 switch driverNiu Xule
L2 switch driver command line controlling support Signed-off-by: Niu Xule <b23300@freescale.com>
2010-10-26ENGR00123078 L2 Switch supportNiu Xule
L2 Switch support for mx28 Signed-off-by: Niu Xule <b23300@freescale.com>
2010-10-15ENGR00131580-2 PTP: Support IEEE 1588 interface functionality for MX5Xie Xiaobo
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>
2010-10-12ENGR00132491-3 ath6kl upgrade: enable WEXT implicitelyAisheng.Dong
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>
2010-10-12ENGR00132491-2 ath6kl upgrade: add missed semaphore.h headfileAisheng.Dong
Add missed headfile or the compiling will fail. Signed-off-by: Aisheng.Dong <b29396@freescale.com>
2010-10-12ENGR00132491-1 ath6kl upgrade: change KconfigAisheng.Dong
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>
2010-09-30ENGR00131965-2 CAN: Use root clock for CAN to caculate bitrateWilliam Lai
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>
2010-09-25net/fec: restore interrupt mask after software-reset in fec_stop()Wolfram Sang
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>
2010-09-25net: preserve ifreq parameter when calling generic phy_mii_ioctl().Richard Cochran
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>
2010-09-25ENGR00131501 fec: Fix fec_probe crashDinh Nguyen
Because of ENGR00125986, trying to access pdata structure before pdata gets initialized. Signed-off-by: Dinh Nguyen <Dinh.Nguyen@freescale.com>
2010-09-25ENGR00131401 ETHERNET:fix the logic error in TXHuang Shijie
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>
2010-09-25ENGR00126155 FEC:Set RMII mode corretly after FEC resetJason Liu
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>
2010-09-25ENGR000123347 CAN: Fix crash when transfer 8Byte follow 7ByteFrank Li
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>
2010-09-25ENGR00125986 FEC:Fix kernel oops for mac address set upJason Liu
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>
2010-09-25ENGR00125760-3 FEC: get mac address from platform dataFrank Li
get mac address from platform data, which read from fuse Signed-off-by: Frank Li <Frank.Li@freescale.com>
2010-09-07fec: use interrupt for MDIO completion indicationStefan Bader
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>
2010-09-01ENGR00126692-3: Upgrade kernel to 2.6.35Dinh Nguyen
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>
2010-08-25ENGR00122691-1 Add atheros driver ath6klRichard Zhao
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>
2010-08-25enc28j60: enhancements for stmp3xxx boardsRob Herring
Get mac addr from otp bits Add suspend/resume Signed-off-by: Rob Herring <r.herring@freescale.com>
2010-08-25smsc911x: Add phy suspend and resumeRob Herring
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>
2010-08-13smsc911x: Add spinlocks around registers accessCatalin Marinas
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>
2010-08-13e100/e1000*/igb*/ixgb*: Add missing read memory barrierJeff Kirsher
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>
2010-08-13rtl8180: avoid potential NULL deref in rtl8180_beacon_workJohn W. Linville
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>
2010-08-13iwlwifi: fix TX tracerJohannes Berg
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>
2010-08-10iwlwifi: fix scan abortStanislaw Gruszka
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>
2010-08-10ath9k_hw: fix antenna diversity on AR9285Felix Fietkau
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>
2010-08-10ath9k: fix yet another buffer leak in the tx aggregation codeFelix Fietkau
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>
2010-08-10ath9k: fix TSF after reset on AR913xFelix Fietkau
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>
2010-08-10ath9k: another fix for the A-MPDU buffer leakFelix Fietkau
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>
2010-08-10ath9k: fix a buffer leak in A-MPDU completionFelix Fietkau
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>
2010-08-10ath9k: fix retry count for A-MPDU rate control status reportsFelix Fietkau
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>
2010-08-10ath9k_hw: fix an off-by-one error in the PDADC boundaries calculationFelix Fietkau
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>
2010-08-10ath9k_hw: fix a sign error in the IQ calibration codeFelix Fietkau
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>
2010-08-10ath9k_hw: prevent a fast channel change after a rx DMA stuck issueFelix Fietkau
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>
2010-08-10ath9k: fix a potential buffer leak in the STA teardown pathFelix Fietkau
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>
2010-08-10ath9k: enable serialize_regmode for non-PCIE AR9160John W. Linville
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>