summaryrefslogtreecommitdiff
path: root/drivers/net
AgeCommit message (Collapse)Author
2014-07-29can: flexcan: flexcan_chip_start: fix regression, mark one MB for TX and ↵Colibri_VF_LinuxImageV2.3Beta1_20140804Marc Kleine-Budde
abort pending TX In patch 0d1862e can: flexcan: fix flexcan_chip_start() on imx6 the loop in flexcan_chip_start() that iterates over all mailboxes after the soft reset of the CAN core was removed. This loop put all mailboxes (even the ones marked as reserved 1...7) into EMPTY/INACTIVE mode. On mailboxes 8...63, this aborts any pending TX messages. After a cold boot there is random garbage in the mailboxes, which leads to spontaneous transmit of CAN frames during first activation. Further if the interface was disabled with a pending message (usually due to an error condition on the CAN bus), this message is retransmitted after enabling the interface again. This patch fixes the regression by: 1) Limiting the maximum number of used mailboxes to 8, 0...7 are used by the RX FIFO, 8 is used by TX. 2) Marking the TX mailbox as EMPTY/INACTIVE, so that any pending TX of that mailbox is aborted. Cc: linux-stable <stable@vger.kernel.org> Cc: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> [backported for 3.0 kernel by Stefan Agner <stefan.agner@toradex.com>] d5a7b406c529e4595ce03dc8f6dcf7fa36f106fa can: flexcan: flexcan_chip_start: fix regression, mark one MB for TX and abort pending TX
2014-07-11can: flexcan: add Vybrid supportStefan Agner
Extend FlexCAN driver to support Vybrid. Vybrids variant of the IP has ECC support which is controlled through the memory error control register (MECR). There is also an errata which leads to false positive error detections (ID e5295). This patch disables the memory error detection completely. Extend the clock control for FlexCAN to enable the clocks. Fix the base addresses and introduce the necessary pinmux defines.
2014-07-11can: flexcan: dynamically sleep for chip_{en,dis}ableStefan Agner
In flexcan_chip_enable() and flexcan_chip_disable() fixed delays are used. Experiments have shown that the transition from and to low power mode may take several microseconds. This patch adds a while loop which polls the Low Power Mode ACK bit (LPM_ACK) that indicates a successfull mode change. If the function runs into a timeout a error value is returned. This is a simpliefied backport of can: flexcan: fix transition from and to low power mode in chip_{en,dis}able 9b00b300e7bce032c467c36ca47fe2a776887fc2
2014-06-20can: flexcan: Fix CAN_RAW_RECV_OWN_MSGS and CAN_RAW_LOOPBACKReuben Dowle
Currently the flexcan driver uses hardware local echo. This blindly echos all transmitted frames to all receiving sockets, regardless what CAN_RAW_RECV_OWN_MSGS and CAN_RAW_LOOPBACK are set to. This patch now submits transmitted frames to be echoed in the transmit complete interrupt, preserving the reference to the sending socket. This allows the can protocol to correctly handle the local echo. Further this patch moves tx_bytes statistic accounting into the tx_complete handler. Signed-off-by: Reuben Dowle <reuben.dowle@navico.com> [mkl: move tx_bytes accounting into tx_complete handler; cleanups] Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2014-06-20can: dev: let can_get_echo_skb() return dlc of CAN frameMarc Kleine-Budde
can_get_echo_skb() is usually called in the TX complete handler. The stats->tx_packets and stats->tx_bytes should be updated there, too. This patch simplifies to figure out the size of the sent CAN frame. Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2014-06-17ENGR00217318-3 flexcan: only enter stop mode when device is upDong Aisheng
The flexcan is still in disable mode during suspend if it's still not up. We do not need to enter stop mode if find the device is not up since the stop mode does not work well in disable mode(remote wakeup does not work). Using disable mode for suspend if it's not up. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2014-06-17ENGR00217318-2 flexcan: create abstract api to enter and exit stop modeDong Aisheng
Clean up duplicated code and hide the details of enter/exit stop mode into API. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2014-06-17ENGR00217318-1 flexcan: exit stop mode when resumeDong Aisheng
Currently flexcan only exits stop mode by remote wakeup, if system resumes normally, the flexcan may still in stop mode and can not work anymore. Change to also exit stop mode during normal resume in case system is not remote wakeup by flexcan. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2014-06-17ENGR00171114 flexcan: enable can2 remote wakeup for mx6qDong Aisheng
The root cause is missed to set CAN2_STOP_REQ in iomuxc group register which is used to support can wakeup feature. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2014-05-15colibri_vf: add support for second EthernetStefan Agner
Add alternative pinmux and platform data for second Ethernet. Also make sure MAC address is calculated from first Ethernet MAC address, which is derived from part serial number. Note that FEC1 is the default Ethernet controller (and hence eth0), while FEC0 is the additional Ethernet controller (eth1).
2014-03-06phy/micrel: Add suspend/resume support to Micrel PHYsStefan Agner
All supported Micrel PHYs implement the standard "power down" bit 11 of BMCR, so this patch adds support using the generic genphy_{suspend,resume} functions. Backported patch by Patrice Vilchez, see 1a5465f5d6a23e84ef5c06cb32f3d8c26632f42a
2013-11-29colibri_vf: fix ifdefsMarcel Ziswiler
Various ifdefs still use CONFIG_MACH_COLIBRI_VF50. Migrate them to using the hidden CONFIG_COLIBRI_VF define active for both Colibri VF50 as well as Colibri VF61.
2013-09-10colibri_vf50: initial integrationMarcel Ziswiler
Add initial Colibri VF50 support based off Timesys' implementation for Freescale's Vybrid Tower System TWR-VF65GS10: - New machine ID. - FEC1 only. - ESDHC2 only with card detect interrupt. - PLL5 based RMII clocking (e.g. no external crystal). - VESA VGA display timing (tested with 5.7" EDT ET057090DHU). - Default UART_A on SCI0. - UART_A and UART_C I/O muxing. - I2C real time clock on carrier board. - Early boot console support. - 8-bit NAND. Tested on early Colibri VF50 prototypes V1.0a mounting root file systems both over NFS or from SD card ext3 partition.
2012-10-17ENGR00216078-2: switch: add L2 switch driver for Vybrid3.0-mvf-201210121659Jason Jin
Port the L2 switch driver from CF platform for Vybridi plaform. This driver usually should work together with the RSTP demo applications provided by fsl. Signed-off-by: Alison Wang <b18965@freescale.com> Signed-off-by: Jason Jin <Jason.jin@freescale.com>
2012-10-17ENGR00181358-3: fec: add second FEC support for VybridAlison Wang
Add second FEC support for Vybrid. Signed-off-by: Alison Wang <b18965@freescale.com>
2012-09-12Enable the FEC as modulesJason Jin
Signed-off-by: Jason Jin <Jason.jin@freescale.com>
2012-09-12ENGR00181358-2: fec: add FEC driver support for MVFAlison Wang
Add FEC driver support for MVF. Update the phyid for micrel ksz8041 phy. There are several version sz8041 with different phyid. Those id: 0x00221510, 0x00221512, 0x00221513 were found on different version SER board. So change the mask to 0x00fffff0 to fit the different version. Signed-off-by: Jason Jin <Jason.jin@freescale.com>
2012-02-08Add ath6kl cleaned up driverKalle Valo
Last May we started working on cleaning up ath6kl driver which is currently in staging. The work has happened in a separate ath6kl-cleanup tree: http://git.kernel.org/?p=linux/kernel/git/kvalo/ath6kl-cleanup.git;a=summary After over 1100 (!) patches we have now reached a state where I would like to start discussing about pushing the driver to the wireless trees and replacing the staging driver. The driver is now a lot smaller and looks like a proper Linux driver. The size of the driver (measured with simple wc -l) dropped from 49 kLOC to 18 kLOC and the number of the .c and .h files dropped from 107 to 22. Most importantly the number of subdirectories reduced from 26 to zero :) There are two remaining checkpatch warnings in the driver which we decided to omit for now: drivers/net/wireless/ath/ath6kl/debug.c:31: WARNING: printk() should include KERN_ facility level drivers/net/wireless/ath/ath6kl/sdio.c:527: WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt The driver has endian annotations for all the hardware specific structures and there are no sparse errors. Unfortunately I don't have any big endian hardware to test that right now. We have been testing the driver both on x86 and arm platforms. The code is also compiled with sparc and parisc cross compilers. Notable missing features compared to the current staging driver are: o HCI over SDIO support o nl80211 testmode o firmware logging o suspend support Testmode, firmware logging and suspend support will be added soon. HCI over SDIO support will be more difficult as the HCI driver needs to share code with the wifi driver. This is something we need to research more. Also I want to point out the changes I did for signed endian support. As I wasn't able to find any support for signed endian annotations I decided to follow what NTFS has done and added my own. Grep for sle16 and sle32, especially from wmi.h. Various people have been working on the cleanup, the hall of fame based on number of patches is: 543 Vasanthakumar Thiagarajan 403 Raja Mani 252 Kalle Valo 16 Vivek Natarajan 12 Suraj Sumangala 3 Joe Perches 2 Jouni Malinen Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by: Vivek Natarajan <nataraja@qca.qualcomm.com> Signed-off-by: Suraj Sumangala <surajs@qca.qualcomm.com> Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2012-02-08ENGR00172274-02 - IEEE-1588: rework ts_clk in MX6 ARIK CPU board.Fugang Duan
Default use RMII 50MHz clock for ts_clk. Test result: Enet work fine at 100/1000Mbps in TO1.1 and Rigel. IEEE 1588 timestamp is convergent for 25M & 50M & 100MHz timestamp clock. Signed-off-by: Fugang Duan <B38611@freescale.com>
2012-02-07ENGR00173869-9: i.mx6dl: add the misc drivers supportJason Liu
This patch change is very trivial and simply just add cpu_is_mx6dl() or using cpu_is_mx6 to replace cpu_is_mx6q each driver owner will check it and adjust it accordingly later, such as sdhc etc. Signed-off-by: Jason Liu <r64343@freescale.com>
2012-01-31net: remove mm.h inclusion from netdevice.hAlexey Dobriyan
Remove linux/mm.h inclusion from netdevice.h -- it's unused (I've checked manually). To prevent mm.h inclusion via other channels also extract "enum dma_data_direction" definition into separate header. This tiny piece is what gluing netdevice.h with mm.h via "netdevice.h => dmaengine.h => dma-mapping.h => scatterlist.h => mm.h". Removal of mm.h from scatterlist.h was tried and was found not feasible on most archs, so the link was cutoff earlier. Hope people are OK with tiny include file. Note, that mm_types.h is still dragged in, but it is a separate story. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-01-19ENGR00172374-3: flexcan: use irq_set_irq_wakeJason Liu
fix the building errors when upgrade to v3.0 The following commit change the function name: commit a0cd9ca2b907d7ee26575e7b63ac92dad768a75e Author: Thomas Gleixner <tglx@linutronix.de> Date: Thu Feb 10 11:36:33 2011 +0100 genirq: Namespace cleanup The irq namespace has become quite convoluted. My bad. Clean it up and deprecate the old functions. All new functions follow the scheme: irq number based: irq_set/get/xxx/_xxx(unsigned int irq, ...) irq_data based: irq_data_set/get/xxx/_xxx(struct irq_data *d, ....) irq_desc based: irq_desc_get_xxx(struct irq_desc *desc) Signed-off-by: Thomas Gleixner <tglx@linutronix.de> We need give one fix to change the function call name to align this change, - ret = set_irq_wake(dev->irq, 1); + ret = irq_set_irq_wake(dev->irq, 1); Signed-off-by: Jason Liu <r64343@freescale.com>
2012-01-09ENGR00171113 flexcan: add self wakeup functionDong Aisheng
Flexcan can use the self wakeup function to wakeup system in system suspend state. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2012-01-09ENGR00161871: ENET: Changing MDIO read and write timeoutRogerio Pimentel
The original FEC_MII_TIMEOUT was set to 1ms, which is too low when passed to the usecs_to_jiffies macro. On ARM one jiffy is 10ms, so use msecs_to_jiffies instead and use a timeout of 30ms, which corresponds to 3 jiffies. After running 3 hours NFS boots, the MDIO timeout do not occur anymore. Signed-off-by: Rogerio Pimentel <rogerio.pimentel@freescale.com>
2012-01-09ENGR00170784 - FEC : dma skb buffer map is not used rightly.Fugang Duan
Enable "CONFIG_DMA_API_DEBUG" in kernel, and system print: DMA-API: device driver tries to free DMA memory it has not allocated [device address=0x0000000046688020]...[<80222494>] (debug_dma_unmap_page+0x8c/0x98) from [<802a36a0>] (fec_enet_interrupt+0x430/0x5ac) Correct the usage of "dma_map_single" function. Signed-off-by: Fugang Duan <B38611@freescale.com>
2012-01-09fix build issues: remove the include of smp_lock.hJason Liu
since smp_lock.h has been removed on v3.0 Signed-off-by: Jason Liu <r64343@freescale.com>
2012-01-09build fix and driver fixJason Liu
Signed-off-by: Jason Liu <jason.hui@linaro.org>
2012-01-09ENGR00162013 - FEC : Fix loss interrupt when add "rootwait"Fugang Duan
- MII timeout when config ipg 40MHz mode and add "rootwait" para in uboot. Kernel will delay before peripheral equipment are ready, which lead to CPU loss interrupt. - So, prolong the timeout time, and increase the MII clock. Signed-off-by: Fugang Duan <B38611@freescale.com>
2012-01-09ENGR00162364 flexcan: fix endless errors causing system hangDong Aisheng
Clear state error to avoid ednless state error if error happens which will call napi_schedule() each time, seems a little high load, to cause system hang. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2012-01-09ENGR00159982 - FEC: low power mode when FEC is no use.Fugang Duan
- Set phy AR8031 to save power mode when no cable connect. - Close enet clock gate when FEC is no use. Signed-off-by: Fugang Duan <B38611@freescale.com>
2012-01-09ENGR00161256-1 flexcan: convert driver to use platform idsDong Aisheng
Using platform ids to handle differences between different SoCs. The default rx fifo global mask register, newly introduced in mx6q, is 0xffffffff and the reset value in Message buffers(can be reused as the memory of rx fifo filter table) is none zero, it will wrongly cause the can to be unable to recevie packets due to filter. We need to clear it to make sure to receive all packets. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2012-01-09ENGR00161312 - FEC: fix build warningFugang Duan
fix build warning: > drivers/net/fec.c:435: warning: unused variable 'estatus' Signed-off-by: Fugang Duan <B38611@freescale.com>
2012-01-09ENGR00161207 - FEC: Add IEEE 1588 driver for imx6Fugang Duan
- Support time stamp sync with networking master timer. - Support ipg 40MHz clock, and precision is about 20ns. - Don't support ipg 66MHz clock. - Test flow: 1. Enable CONFIG_FEC_1588 in imx6_defconfig file. 2. Select pll3 for ipg clk 40M in uboot plugin code. I. set reg 0x20c8028 value to 0x10000; II.set reg 0x20c8024 value to 0x3040; III. set reg 0x20c4014[25] to 0x1 IV. set reg 0x20c4014[12:10] to 0x5 3. Rebuid uboot and setup the ethernet environment. 4. Run the 1588 stack ptp_main in master and slave. Signed-off-by: Fugang Duan <B38611@freescale.com>
2012-01-09ENGR00160701 Fix the Micrel PHY driverMahesh Mahadevan
Received a fix from Micrel to fix their driver. Without this patch the Micrel PHY does not get recognized during boot Signed-off-by: Mahesh Mahadevan <r9aadq@freescale.com>
2012-01-09ENGR00160709-2 Move board specific code out of FEC driverMahesh Mahadevan
Move the board specific code out of the FEC driver to the platform layer Signed-off-by: Mahesh Mahadevan <r9aadq@freescale.com>
2012-01-09ENGR00155400 [ath6kl]build warningTony Lin
fix following build warning: drivers/staging/ath6kl/os/linux/ioctl.c:4673: warning: the frame size of 1976 bytes is larger than 1024 bytes Signed-off-by: Tony Lin <tony.lin@freescale.com>
2012-01-09ENGR00139260-2 [ath6k wifi]add some delay after resumingTony Lin
add some delay after resuming. Signed-off-by: Tony Lin <tony.lin@freescale.com>
2012-01-09ENGR00139260-1 [ath6k wifi]remove drivers under drivers/net/wirelessTony Lin
instead we will use ath6k driver under drivers/staging Signed-off-by: Tony Lin <tony.lin@freescale.com>
2012-01-09ENGR00153127 ENET: Enet not works in 1G modeZeng Zhaoming
Mx6 not works when connnect to a 1G switch. This is caused by phy_dev->supported != PHY_GBIT_FEATURES, more bits will set to phy_dev->supported when negotiation complete. Signed-off-by: Zeng Zhaoming <b32542@freescale.com>
2012-01-09ENGR00152528-2 ENET: add enet support for mx6q.Zeng Zhaoming
Enabled all speed mode, 10M/100M/1G. add "fec_mac" kernel parameter to set mac address. Since clock and board rework issue, some hard code stays to make it work. Signed-off-by: Zeng Zhaoming <b32542@freescale.com>
2012-01-09ENGR00122691-1 Add atheros driver ath6klRichard Zhao
Integrate atheros driver package from atheros company. It's mainly for AR6003. NGR00132491-1 ath6kl upgrade: change Kconfig 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. ENGR00132491-2 ath6kl upgrade: add missed semaphore.h headfile ENGR00132491-3 ath6kl upgrade: enable WEXT implicitely 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: Nathan Cheng <Nathan.Cheng@Atheros.com> Signed-off-by: Richard Zhao <richard.zhao@freescale.com> Signed-off-by: Aisheng.Dong <b29396@freescale.com>
2011-12-21iwlwifi: do not re-configure HT40 after associatedWey-Yi Guy
commit 34a5b4b6af104cf18eb50748509528b9bdbc4036 upstream. The ht40 setting should not change after association unless channel switch This fix a problem we are seeing which cause uCode assert because driver sending invalid information and make uCode confuse Here is the firmware assert message: kernel: iwlagn 0000:03:00.0: Microcode SW error detected. Restarting 0x82000000. kernel: iwlagn 0000:03:00.0: Loaded firmware version: 17.168.5.3 build 42301 kernel: iwlagn 0000:03:00.0: Start IWL Error Log Dump: kernel: iwlagn 0000:03:00.0: Status: 0x000512E4, count: 6 kernel: iwlagn 0000:03:00.0: 0x00002078 | ADVANCED_SYSASSERT kernel: iwlagn 0000:03:00.0: 0x00009514 | uPc kernel: iwlagn 0000:03:00.0: 0x00009496 | branchlink1 kernel: iwlagn 0000:03:00.0: 0x00009496 | branchlink2 kernel: iwlagn 0000:03:00.0: 0x0000D1F2 | interruptlink1 kernel: iwlagn 0000:03:00.0: 0x00000000 | interruptlink2 kernel: iwlagn 0000:03:00.0: 0x01008035 | data1 kernel: iwlagn 0000:03:00.0: 0x0000C90F | data2 kernel: iwlagn 0000:03:00.0: 0x000005A7 | line kernel: iwlagn 0000:03:00.0: 0x5080B520 | beacon time kernel: iwlagn 0000:03:00.0: 0xCC515AE0 | tsf low kernel: iwlagn 0000:03:00.0: 0x00000003 | tsf hi kernel: iwlagn 0000:03:00.0: 0x00000000 | time gp1 kernel: iwlagn 0000:03:00.0: 0x29703BF0 | time gp2 kernel: iwlagn 0000:03:00.0: 0x00000000 | time gp3 kernel: iwlagn 0000:03:00.0: 0x000111A8 | uCode version kernel: iwlagn 0000:03:00.0: 0x000000B0 | hw version kernel: iwlagn 0000:03:00.0: 0x00480303 | board version kernel: iwlagn 0000:03:00.0: 0x09E8004E | hcmd kernel: iwlagn 0000:03:00.0: CSR values: kernel: iwlagn 0000:03:00.0: (2nd byte of CSR_INT_COALESCING is CSR_INT_PERIODIC_REG) kernel: iwlagn 0000:03:00.0: CSR_HW_IF_CONFIG_REG: 0X00480303 kernel: iwlagn 0000:03:00.0: CSR_INT_COALESCING: 0X0000ff40 kernel: iwlagn 0000:03:00.0: CSR_INT: 0X00000000 kernel: iwlagn 0000:03:00.0: CSR_INT_MASK: 0X00000000 kernel: iwlagn 0000:03:00.0: CSR_FH_INT_STATUS: 0X00000000 kernel: iwlagn 0000:03:00.0: CSR_GPIO_IN: 0X00000030 kernel: iwlagn 0000:03:00.0: CSR_RESET: 0X00000000 kernel: iwlagn 0000:03:00.0: CSR_GP_CNTRL: 0X080403c5 kernel: iwlagn 0000:03:00.0: CSR_HW_REV: 0X000000b0 kernel: iwlagn 0000:03:00.0: CSR_EEPROM_REG: 0X07d60ffd kernel: iwlagn 0000:03:00.0: CSR_EEPROM_GP: 0X90000001 kernel: iwlagn 0000:03:00.0: CSR_OTP_GP_REG: 0X00030001 kernel: iwlagn 0000:03:00.0: CSR_GIO_REG: 0X00080044 kernel: iwlagn 0000:03:00.0: CSR_GP_UCODE_REG: 0X000093bb kernel: iwlagn 0000:03:00.0: CSR_GP_DRIVER_REG: 0X00000000 kernel: iwlagn 0000:03:00.0: CSR_UCODE_DRV_GP1: 0X00000000 kernel: iwlagn 0000:03:00.0: CSR_UCODE_DRV_GP2: 0X00000000 kernel: iwlagn 0000:03:00.0: CSR_LED_REG: 0X00000078 kernel: iwlagn 0000:03:00.0: CSR_DRAM_INT_TBL_REG: 0X88214dd2 kernel: iwlagn 0000:03:00.0: CSR_GIO_CHICKEN_BITS: 0X27800200 kernel: iwlagn 0000:03:00.0: CSR_ANA_PLL_CFG: 0X00000000 kernel: iwlagn 0000:03:00.0: CSR_HW_REV_WA_REG: 0X0001001a kernel: iwlagn 0000:03:00.0: CSR_DBG_HPET_MEM_REG: 0Xffff0010 kernel: iwlagn 0000:03:00.0: FH register values: kernel: iwlagn 0000:03:00.0: FH_RSCSR_CHNL0_STTS_WPTR_REG: 0X21316d00 kernel: iwlagn 0000:03:00.0: FH_RSCSR_CHNL0_RBDCB_BASE_REG: 0X021479c0 kernel: iwlagn 0000:03:00.0: FH_RSCSR_CHNL0_WPTR: 0X00000060 kernel: iwlagn 0000:03:00.0: FH_MEM_RCSR_CHNL0_CONFIG_REG: 0X80819104 kernel: iwlagn 0000:03:00.0: FH_MEM_RSSR_SHARED_CTRL_REG: 0X000000fc kernel: iwlagn 0000:03:00.0: FH_MEM_RSSR_RX_STATUS_REG: 0X07030000 kernel: iwlagn 0000:03:00.0: FH_MEM_RSSR_RX_ENABLE_ERR_IRQ2DRV: 0X00000000 kernel: iwlagn 0000:03:00.0: FH_TSSR_TX_STATUS_REG: 0X07ff0001 kernel: iwlagn 0000:03:00.0: FH_TSSR_TX_ERROR_REG: 0X00000000 kernel: iwlagn 0000:03:00.0: Start IWL Event Log Dump: display last 20 entries kernel: ------------[ cut here ]------------ WARNING: at net/mac80211/util.c:1208 ieee80211_reconfig+0x1f1/0x407() kernel: Hardware name: 4290W4H kernel: Pid: 1896, comm: kworker/0:0 Not tainted 3.1.0 #2 kernel: Call Trace: kernel: [<ffffffff81036558>] ? warn_slowpath_common+0x73/0x87 kernel: [<ffffffff813b8966>] ? ieee80211_reconfig+0x1f1/0x407 kernel: [<ffffffff8139e8dc>] ? ieee80211_recalc_smps_work+0x32/0x32 kernel: [<ffffffff8139e95a>] ? ieee80211_restart_work+0x7e/0x87 kernel: [<ffffffff810472fa>] ? process_one_work+0x1c8/0x2e3 kernel: [<ffffffff810480c9>] ? worker_thread+0x17a/0x23a kernel: [<ffffffff81047f4f>] ? manage_workers.clone.18+0x15b/0x15b kernel: [<ffffffff81047f4f>] ? manage_workers.clone.18+0x15b/0x15b kernel: [<ffffffff8104ba97>] ? kthread+0x7a/0x82 kernel: [<ffffffff813d21b4>] ? kernel_thread_helper+0x4/0x10 kernel: [<ffffffff8104ba1d>] ? kthread_flush_work_fn+0x11/0x11 kernel: [<ffffffff813d21b0>] ? gs_change+0xb/0xb Reported-by: Udo Steinberg <udo@hypervisor.org> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-12-09rt2x00: Fix efuse EEPROM reading on PPC32.Gertjan van Wingerde
commit 68fa64ef606bcee688fce46d07aa68f175070156 upstream. Fix __le32 to __le16 conversion of the first word of an 8-word block of EEPROM read via the efuse method. Reported-and-tested-by: Ingvar Hagelund <ingvar@redpill-linpro.com> Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com> Acked-by: Helmut Schaa <helmut.schaa@googlemail.com> Acked-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-12-09p54spi: Fix workqueue deadlockMichael Büsch
commit 2d1618170eb493d18f66f2ac03775409a6fb97c6 upstream. priv->work must not be synced while priv->mutex is locked, because the mutex is taken in the work handler. Move cancel_work_sync down to after the device shutdown code. This is safe, because the work handler checks fw_state and bails out early in case of a race. Signed-off-by: Michael Buesch <m@bues.ch> Acked-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-12-09p54spi: Add missing spin_lock_initMichael Büsch
commit 32d3a3922d617a5a685a5e2d24b20d0e88f192a9 upstream. The tx_lock is not initialized properly. Add spin_lock_init(). Signed-off-by: Michael Buesch <m@bues.ch> Acked-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-26rt2x00: Fix sleep-while-atomic bug in powersaving code.Gertjan van Wingerde
commit ed66ba472a742cd8df37d7072804b2111cdb1014 upstream. The generic powersaving code that determines after reception of a frame whether the device should go back to sleep or whether is could stay awake was calling rt2x00lib_config directly from RX tasklet context. On a number of the devices this call can actually sleep, due to having to confirm that the sleeping commands have been executed successfully. Fix this by moving the call to rt2x00lib_config to a workqueue call. This fixes bug https://bugzilla.redhat.com/show_bug.cgi?id=731672 Tested-by: Tomas Trnka <tomastrnka@gmx.com> Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com> Acked-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-26Net, libertas: Resolve memory leak in if_spi_host_to_card()Jesper Juhl
commit fe09b32a4361bea44169b2063e8c867cabb6a8ba upstream. If we hit the default case in the switch in if_spi_host_to_card() we'll leak the memory we allocated for 'packet'. This patch resolves the leak by freeing the allocated memory in that case. Signed-off-by: Jesper Juhl <jj@chaosbits.net> Acked-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-21b43: refuse to load unsupported firmwareRafał Miłecki
[This patch is supposed to be applied in 3.1 (and maybe older) branches only.] New kernels support newer firmware that users may try to incorrectly use with older kernels. Display error and explain the problem in such a case Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-11ath9k_hw: Fix regression of register offset for AR9003 chipsRajkumar Manoharan
commit 52d6d4ef5e6d1517688e27c11c01ab303ec681dd upstream. My recent commits (3782c69d, 324c74a) introduced regression for register offset selection that based on the macversion. Not using parentheses in proper manner for ternary operator leads to select wrong offset for the registers. This issue was observed with AR9462 chip that immediate disconnect after the association with the following message ieee80211 phy3: wlan0: Failed to send nullfunc to AP 00:23:69:12:ea:47 after 500ms, disconnecting. Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-11dp83640: use proper function to free transmit time stamping packetsRichard Cochran
commit f5ff7cd1a84caa9545d952a37ac872ccb73825fb upstream. The previous commit enforces a new rule for handling the cloned packets for transmit time stamping. These packets must not be freed using any other function than skb_complete_tx_timestamp. This commit fixes the one and only driver using this API. The driver first appeared in v3.0. Signed-off-by: Richard Cochran <richard.cochran@omicron.at> Acked-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>