- Dec 08, 2009
-
-
Dhananjay Phadke authored
Unified firmware image may not contain MN type of firmware. Driver should fall back to NOMN firmware type instead of going to flash. Signed-off-by:
Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by:
Amit Kumar Salecha <amit.salecha@qlogic.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Amit Kumar Salecha authored
o netif_running() check for enabling interrupt at end of napi poll is not enough to cover firmwar recovery. Instead test __NX_DEV_UP bit. o Avoid re-entry into to netxen_nic_down() with __NX_DEV_UP bit check. Acked-by:
Dhananjay Phadke <dhananjay.phadke@qlogic.com> Signed-off-by:
Amit Kumar Salecha <amit.salecha@qlogic.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Amit Kumar Salecha authored
o To prevent race conditions with other reset events. During suspend/resume and firmware recovery, acquire rtnl_lock, while changing interface state. Acked-by:
Dhananjay Phadke <dhananjay.phadke@qlogic.com> Signed-off-by:
Amit Kumar Salecha <amit.salecha@qlogic.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Denis Kirjanov authored
Check for valid hw address. Signed-off-by:
Denis Kirjanov <kirjanov@gmail.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Tilman Schmidt authored
When built with debugging support, the Gigaset driver enabled some debugging messages by default. Change the default to "all off". Signed-off-by:
Tilman Schmidt <tilman@imap.cc> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Asier Llano authored
Fix the locking scheme on the fec_mpc52xx driver. This device can receive IRQs from three sources; the FEC itself, the tx DMA, and the rx DMA. Mutual exclusion was handled by taking a spin_lock() in the critical regions, but because the handlers are run with IRQs enabled, spin_lock() is insufficient and the driver can end up interrupting a critical region anyway from another IRQ. Asier Llano discovered that this occurs when an error IRQ is raised in the middle of handling rx irqs which resulted in an sk_buff memory leak. In addition, locking is spotty at best in the driver and inspection revealed quite a few places with insufficient locking. This patch is based on Asier's initial work, but reworks a number of things so that locks are held for as short a time as possible, so that spin_lock_irqsave() is used everywhere, and so the locks are dropped when calling into the network stack (because the lock only protects the hardware interface; not the network stack). Boot tested on a lite5200 with an NFS root. Has not been performance tested. Signed-off-by:
Asier Llano <a.llano@ziv.es> Signed-off-by:
Grant Likely <grant.likely@secretlab.ca> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Brice Goglin authored
Use a more effective rss hash by default (src + dst, rather than just src). Signed-off-by:
Brice Goglin <brice@myri.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
chas williams - CONTRACTOR authored
due to reference counting sk_wmem_alloc now has a value of 1 when all the outstanding data has been sent. Signed-off-by:
Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Don Skidmore authored
Signed-off-by:
Don Skidmore <donald.c.skidmore@intel.com> Acked-by:
Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by:
Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Eric Dumazet authored
Here is an updated version, because ixgbe_get_ethtool_stats() needs to call dev_get_stats() or "ethtool -S" wont give correct tx_bytes/tx_packets values. Several cpus can update netdev->stats.tx_bytes & netdev->stats.tx_packets in parallel. In this case, TX stats are under estimated and false sharing takes place. After a pktgen session sending exactly 200000000 packets : # ifconfig fiber0 | grep TX TX packets:198501982 errors:0 dropped:0 overruns:0 carrier:0 Multi queue devices should instead use txq->tx_bytes & txq->tx_packets in their xmit() method (appropriate txq lock already held by caller, no cache line miss), or use appropriate locking. After patch, same pktgen session gives : # ifconfig fiber0 | grep TX TX packets:200000000 errors:0 dropped:0 overruns:0 carrier:0 Signed-off-by:
Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by:
Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Bruce Allan authored
A workaround added for all ESB2 devices (adds a delay for all MDIC accesses which resolves an issue with the MDIC ready bit being set prematurely) is applicable only to devices in which the MAC-PHY interconnect is not operating in a certain mode with in-band MDIO. Check the control register for the operating mode and enable the workaround accordingly. Signed-off-by:
Bruce Allan <bruce.w.allan@intel.com> Signed-off-by:
Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Bruce Allan authored
The GG82563_REG() macro should not be used to determine the offset provided to the e1000e_[read|write]_kmrn_reg() functions since the first argument to the macro is already implied and gets masked off anyway in the functions. The resultant register reads/writes with this patch are functionally the same as before. Signed-off-by:
Bruce Allan <bruce.w.allan@intel.com> Signed-off-by:
Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Bruce Allan authored
Bit 7 in the CTRL_REG register is actually the Software Definable Pin 3, not the Software Definable Pin 7. Signed-off-by:
Bruce Allan <bruce.w.allan@intel.com> Signed-off-by:
Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- Dec 07, 2009
-
-
Shahar Or authored
Adds support for the WiFi activity LED on the Dell Vostro A860 laptop. Signed-off-by:
Shahar Or <shahar@shahar-or.co.il> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
David Kilroy authored
A KERN_DEBUG didn't get removed when transitioning from printk to pr_debug Signed-off-by:
David Kilroy <kilroyd@googlemail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Larry Finger authored
There are different bits used to convey the setting of the rfkill switch to the driver. The current driver only supports one of these possibilities. These changes were derived from the latest version of the vendor driver. This patch fixes the regression noted in kernel Bugzilla #14743. Signed-off-by:
Larry Finger <Larry.Finger@lwfinger.net> Reported-and-tested-by:
Antti Kaijanmäki <antti@kaijanmaki.net> Tested-by:
Hin-Tak Leung <hintak.leung@gmail.com> Cc: Stable <stable@kernel.org> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Felix Fietkau authored
This patch fixes a bug in ath9k's tx status check, which caused mac80211 to consider regularly transmitted unicast frames as un-acked. When checking the ts_status field for errors, it needs to be masked with ATH9K_TXERR_FILT, because this field also contains other fields like ATH9K_TX_ACKED. Without this patch, AP mode is pretty much unusable, as hostapd checks the ACK status for the frames that it injects. Signed-off-by:
Felix Fietkau <nbd@openwrt.org> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
The FINALIZE_JOIN firmware command only looks at the first couple of fields in the beacon, and therefore it's not necessary to complain if the beacon is longer than 128 bytes. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
When disassociating, mac80211 zeroes vif->bss_info.bssid before calling our ->bss_info_changed(), but we need the BSSID to remove the hardware station database entry for our AP, so we can't clear our local copy of the BSSID until after we've done that. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Don't forget to call pci_disable_device() if pci_request_regions() fails during probe. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
The time between loading the helper image and starting to upload the main firmware image should be at least 5 ms or so. We were doing an msleep(1) before, and 1 ms appears to not be enough in almost all cases, but building with HZ=100 has always masked this so far. Bumping the msleep argument to 5 fixes firmware loading e.g. when HZ=1000. Some firmware images need more than 200ms to initialize. Bump the ready code timeout to 500ms to accommodate for this. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Before issuing any firmware commands, we wait for the transmit rings to drain, to prevent control versus data path synchronization issues. In some cases, this can end up taking longer than the current hardcoded limit of 5 seconds, for example if the transmit rings are filled with packets for a host that has dropped off the air and we end up retransmitting every pending packet at the lowest rate a couple of times. This patch changes mwl8k_tx_wait_empty() to only bail out on timeout expiry if there was no change in the number of packets pending in the transmit rings during the waiting period. If at least one transmit ring entry was reclaimed while we were waiting, we are apparently still making progress, and we'll allow waiting for another timeout period. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Some firmware commands can under some circumstances take more than 2 seconds to complete. This patch bumps the timeout up to 10 seconds, and prints a message whenever a command takes more than 2 seconds. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
On 8366, bit 6 in the rx descriptor rate field indicates whether the packet was received on a 20MHz or 40MHz channel, and is not part of the MCS index. Handle this properly, which then prevents hitting the WARN_ON and being dropped in ieee80211_rx(). Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
When inserting a DMA header into a packet for transmission, mwl8k_add_dma_header() would blindly zero the addr4 field, which is not a good idea if the packet being transmitted is actually a 4-address packet. Also, if the transmitted packet was a 4-address with QoS packet, the memmove() to do the needed header reshuffling would inadvertently overwrite the first two bytes of the packet payload with the QoS field. This fixes both of these issues. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Packets exchanged between the mwl8k driver and the firmware always have a 4-address header without QoS field. For QoS packets, the QoS field is passed to/from the firmware via the tx/rx descriptors. We were handling this correctly on transmit, but not on receive -- if a QoS packet was received, we would leave garbage in the QoS field in the packet passed up to the stack, which is Bad(tm). Also, if the packet received on the air was a 4-address without QoS packet, we would forget to skb_pull the 2-byte DMA length prefix off. This patch adds an argument to the ->rxd_process() receive descriptor operation to retrieve the QoS field from the receive descriptor, and extends mwl8k_remove_dma_header() to insert this field back into the packet if the packet received is a QoS packet. It also fixes mwl8k_remove_dma_header() to strip off the length prefix in all cases. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
There exist 12 802.11b/g rates, but mwl8k supports two additional (non-standard) rates, and includes those rates in rate bitmasks and in its internal rate table that hardware rate indices index. Commit "mwl8k: report rate and other information for received frames" added one of the nonstandard rates to the mwl8k_rates table to make the OFDM rates in the table line up with the rate indices that are reported in the receive descriptor (so that we can just simply copy the receive descriptor rate index into ieee80211_rx_status::rate_idx) and bumped MWL8K_IEEE_LEGACY_DATA_RATES from 12 to 13, but this screwed up the UPDATE_STADB command struct layout, as it also uses that define, for its legacy_rates array. To avoid having to convert rate indices and legacy rate bitmaps (e.g. ieee80211_bss_conf::basic_rates) between the 12-rate mac80211 format and the 14-rate mwl8k format, we'll report all 14 rates in our wiphy's band, but filter out the nonstandard ones e.g. in the case of the UPDATE_STADB command which only accepts 12 rates. In the commands that accept 14 rates (SET_AID, SET_RATE), replace the use of the MWL8K_RATE_INDEX_MAX_ARRAY define in the command struct by the constant 14, to make it clearer that these commands accept 14 rates. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
The MCS bitmaps in the SET_RATE command structure were of the wrong size, due to use of the wrong define for the array length. Just hardcode the lengths as 16, and do the same for the MCS bitmaps in other command structures. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Kalle Valo authored
The bssid can be zero when null data template is set in wl1251_op_config(). It's enough, and especially safe, to set it once after association. Signed-off-by:
Kalle Valo <kalle.valo@nokia.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Kalle Valo authored
bssid needs to be copied first in wl1251_op_bss_info_changed(), otherwise templates will have incorrect bssid and power save will not work correctly. Signed-off-by:
Kalle Valo <kalle.valo@nokia.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Kalle Valo authored
There was a warning from wl1251_op_bss_info_changed(): wl1251: WARNING Set ctsprotect failed 0 It was printed always, it's completely false and can be removed. Signed-off-by:
Kalle Valo <kalle.valo@nokia.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
John W. Linville authored
CC [M] drivers/net/wireless/iwlwifi/iwl-tx.o drivers/net/wireless/iwlwifi/iwl-tx.c: In function ‘iwl_tx_agg_stop’: drivers/net/wireless/iwlwifi/iwl-tx.c:1356: warning: passing argument 1 of ‘ieee80211_stop_tx_ba_cb_irqsafe’ from incompatible pointer type include/net/mac80211.h:2128: note: expected ‘struct ieee80211_vif *’ but argument is of type ‘struct ieee80211_hw *’ Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Jeff Garzik authored
This reverts commit f20941f3. Sergei Shtylyov notes "You call min() on uncomparables [in mwdma_clip_to_pio()], i.e. mwdma_to_pio[] contains XFER_PIO_* and adev->pio_mode - XFER_PIO_0 yields you a mode number. Thus the second argument will always "win" as a minimal one" Bartlomiej Zolnierkiewicz adds "There are more issues with the patch related to mwdma_clip_to_pio(). The function can return values between 0 and 4 which obviously won't work well for the new code below for values >2 (i.e. resulting in out-of-bounds array access for the common-case of dev->pio_mode == XFER_PIO_4)." Bartlomiej Zolnierkiewicz also notes the patch is incomplete, failing to update MWDMA mode masks. Signed-off-by:
Jeff Garzik <jgarzik@redhat.com>
-
- Dec 06, 2009
-
-
Russell King authored
Jonathan Cameron reports that building PCMCIA as modules doesn't work: As module get a load of undefined symbols: ERROR: "soc_pcmcia_request_irqs" [drivers/pcmcia/pxa2xx_stargate2.ko] undefined! ERROR: "soc_pcmcia_free_irqs" [drivers/pcmcia/pxa2xx_stargate2.ko] undefined! ERROR: "soc_pcmcia_enable_irqs" [drivers/pcmcia/pxa2xx_stargate2.ko] undefined! ERROR: "soc_pcmcia_disable_irqs" [drivers/pcmcia/pxa2xx_stargate2.ko] undefined! ERROR: "soc_pcmcia_add_one" [drivers/pcmcia/pxa2xx_base.ko] undefined! ERROR: "soc_common_pcmcia_get_timing" [drivers/pcmcia/pxa2xx_base.ko] undefined! ERROR: "soc_pcmcia_remove_one" [drivers/pcmcia/pxa2xx_base.ko] undefined! make[1]: *** [__modpost] Error 1 make: *** [modules] Error 2 This is because soc_common tries to be built-in, but it should be a module. Allow soc_common to be a module. Reported-by:
Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Dmitry Artamonow authored
Both iPAQs h3600 and h3100 share the same control GPIOs for PCMCIA, so driver can be reused. Signed-off-by:
Dmitry Artamonow <mad_soft@inbox.ru> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Dmitry Artamonow authored
Combine both headers into one, rename to h3xxx.h and change all users accordingly. Signed-off-by:
Dmitry Artamonow <mad_soft@inbox.ru> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Dmitry Artamonow authored
Use of gpio_request/gpio_free in some callbacks may look ugly, but corresponding drivers (sa1100_serial and sa1100_fb) don't provide (yet) init/exit hooks and registering these gpios in *_mach_init is also not possible, because htc-gpio driver starts a bit later... Signed-off-by:
Dmitry Artamonow <mad_soft@inbox.ru> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Dmitry Artamonow authored
Convert all operations with GPLR/GPCR/GPSR to gpiolibs calls. Also change all IRQ_GPIO* to gpio_to_irq(*GPIO*) Signed-off-by:
Dmitry Artamonow <mad_soft@inbox.ru> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Jean Delvare authored
Add a module parameter to override the functionality bitfield. This lets the user disable some commands. This can be used to force a chip driver to take different code paths. Signed-off-by:
Jean Delvare <khali@linux-fr.org>
-