aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ti
Commit message (Collapse)AuthorAge
...
| * | wlcore: fix sparse warnings related to static functionsArik Nemtsov2012-06-05
| | | | | | | | | | | | | | | | | | | | | The "static" modifier was mistakenly forgotten for some functions. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * | wlcore/wl12xx/wl18xx: don't use TX align quirk for wl127xLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 4afc37 (wlcore: reorder identify_chip and get_hw_info) broke support for wl127x chips. When we moved the identify_chip operation to an earlier stage (ie. to the probe function), we broke wl127x support because during HW init we would set the WLCORE_QUIRK_TX_BLOCKSIZE_ALIGN. To avoid this, set this quirk in the identify_chip operations and only force it to be unset if the bus module doesn't support it. We were doing the opposite and setting the flag if the bus module supports it. Signed-off-by: Luciano Coelho <coelho@ti.com>
| * | wl18xx: change default tcp_checksum to falseAssaf Azulay2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | as tcp check sum is going to be removed from firmware, and as there is a problem with getting dns in security when checksum is enabled, it was decided to disable it by default. for none security modes it can be enabled by module paramenter. Signed-off-by: Assaf Azulay <assaf@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * | wl18xx: use new fw stats structuresLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the structures were updated, other structures had a few missing values and a few new ones were added. Change the driver structs accordingly. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: increase tx_ba_win_size to 64Luciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | Now the firmware can support TX block ack sessions with 64 frames. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wlcore: increase aggregation buffer size by one pageLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | With 4 pages (16Kb), we can't fit 10 frames in the aggregation buffer during iperf. This is the optimal for the firmware. Thus, increase the buffer size by one page. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wlcore/wl12xx/wl18xx: move lower driver debugfs to a subdirLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of adding more files from the lower drivers into the same directory in debugfs as wlcore, we now add a subdirectory for the lower driver. This makes things a bit easier, because we can quickly see where the debugfs entry is implemented and what is specific to the lower driver. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: export pwr_limit_reference_11_abg value as a module parameterLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | Yet another temporary module parameter requested by the firmware team. This will be replaced by the conf binary. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: export low/high band component values as module paramsLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We use hardcoded values for the different board types. In some cases we may need to override the defaults, so export the values as module params. If not defined, the defaults for the specified board type will be used. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: add power limit reference value to mac_and_phy settingsLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With more recent PHY firmware versions (>8.1.0.0.116), we need to use the correct value for the pwr_limit_reference_11_abg parameter when setting the mac_and_phy options. For now we use a hardcoded 0xc8 as the value. This will be moved to the configuration binary when it gets implemented. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: add module parameter to force SISO 20MHzLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | In some cases it may be useful to force narrow-band SISO channels. Add a new value to the ht_mode module parameter to force the device to operate in SISO 20MHz. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wlcore: use proper values for supported local ratesLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were setting all the rates bits when starting the AP role. Instead of doing this, we should set only the rates we really support (eg. MIMO rates or wide-channel rates). This commit changes that so that we always use the default rates (basic rates + MCS0-7) and add the values returned by the ap_get_mimo_wide_rate_mask operation. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: don't use MIMO when ht_mode is set to wideLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the wl18xx module is loaded with ht_mode=wide (the default), we shouldn't use MIMO rates when the channel type is not HT40. Fix this by checking the ht_mode before deciding which rates to used. Additionally, set the ht_mode parameter explicitly to "wide" as the default. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wlcore: print the interrupt status when recovery is triggeredLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In some cases it may be useful for debugging to check what is the status of the interrupt register when a hardware recovery happens. Print the contents of REG_INTERRUPT_NO_CLEAR (aka. HINT_STS_RAW) when recovery starts. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: print the PHY firmware version from the private static dataLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | The wl18xx firmware writes the PHY firmware version in the static data. Add an operation to parse the static data and print the PHY firmware version when booting. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wlcore: create private static_data area and add operation to parse itLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The wl18xx firmware has more information in the static_data than wl12xx. To be able to parse that in an abstracted way, this patch adds a priv area to the static data struct and an operation that allows the lower driver to parse it if necessary. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: implement fw status debugfs entriesLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | Implement the operations that are necessary to fetch the wl18xx-specific FW statistics and export them in debugfs. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl12xx: implement fw status debugfs entriesLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | Implement the operations that are necessary to fetch the wl12xx-specific FW statistics. Re-add some of the code removed from wlcore. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wlcore: add debugfs macro to help print fw statistics arraysLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add a macro to make it easy to print arrays from the FW statistics array in debugfs. At the same time, increase the buffer size so arrays fit more easily. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wlcore: abstract debugfs fw_stats to be handled by the lower driversLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | The FW statistics differ from hardware to hardware. This commit prepares for hardware-specific implementation of the FW statistics debugfs entries. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wlcore: use all AP basic rates as defaultLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes we get a BSS_CHANGED_BEACON_ENABLED event before the basic rates have been properly set. To avoid problems with the firmware not expecting to receive frames at rates that are not set during CMD_START_ROLE, we now start with all basic rates by default. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wlcore: update beacon and probe_resp templates when rates changeLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the data rates change, we get BSS_CHANGED_BASIC_RATES. At this point, we should update all the templates to match the new rates. We were changing some of the templates, but the beacon and the probe response templates were missing. [Remove redundant min_rate variable - Arik] Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: disable MCS_13 for wl18xx PG 1.0Luciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | There are some problems with MCS_13 in PG 1.0 hardware. So we disable it when PG 1.0 is detected. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wlcore: reorder identify_chip and get_hw_infoLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | We can do get the HW information and identify the chip already at probe time. This makes it easier to mangle with the parameters during identify chip before registering the hardware with mac80211. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: change low_band_component_type value for COM8Luciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | Like HDK, COM8 uses 0x06 for the low_band_component_type as well. Hardcode the value for COM8 until this configuration can be done in the external configuration binary (to be implemented). Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wlcore: add space for private area when allocating fw_statusLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When allocating the fw_status structure, the space for the lower-driver private area was missing. This was causing an illegal write outside the allocated area, which was causing random oopses around the kernel. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: changed default board_type to HDKLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | Since the most common board we're using now is an HDK board, change the default board_type to hdk. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: copy the default configuration before checking the board_typeLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were changing the low_band_component_type in the private configuration structure before copying the default values to it, so the change was overwritten and only took effect after HW recovery. Reported-by: Dror Erez <drorer@ti.com> Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wlcore: add module parameter to dump SDIO reads and writesLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In some cases we may want to dump all the SDIO data in order to get detailed information for debugging the communication with the firmware. Add printks to dump the data and a module parameter to enable/disable it. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: add a module parameter to control 11a supportLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In wl18xx we don't have an NVS yet, so we need to control whether 11a is supported with a module parameter for now. 11a support is enabled by default and can be changed by setting enable_11a to false when loading the module. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: derive the MAC address from the BD_ADDR in fuse ROMLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | Add the get_mac operation in order to fetch the BD_ADDR from fuse ROM, so that we can derive the WLAN MAC addresses from it. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wlcore/wl12xx/18xx: split fw_status struct into twoArik Nemtsov2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The number of RX packet descriptors may vary from chip to chip and in different firmware versions. Unfortunately, the array that contains the actual descriptors is in the middle of the fw_status structure. To manage this, we split the struct into two so we can calculate the offset of what comes after the array and access the last elements more easily. [Changed the STATUS_LEN macro to be placement agnostic - Arik] Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: add module parameter to disable TCP checksumLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | Add a new module parameter to disable TCP checksum offload. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: add number of antennas and dc2dc type as module paramsLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to specify the number of 2.4GHz and 5GHz antennas and whether the board has an internal or external DC2DC. Add some module parameters that allow changing that. In the future this will come from the "NVS" file. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: change the low_band_component_type for HDK boardsLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, all HDK boards use low_band_component_type 0x06. In the future this may change, but for now, we hardcode this value when the board_type is set to HDK. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: add plt_init operationLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | Add the correct FW name for PLT (which is the same as the normal firmware) and implement the plt_init operation. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wlcore/wl12xx: add plt_init op and move the code to wl12xxLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | PLT mode needs to be initialized differently for each chip. This patch adds an operation to init PLT and moves the existing PLT initialization into the wl12xx driver. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: change board type enum according to new FWArik Nemtsov2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | Add more board types and remove a now unneeded write to SCR_PAD2 setting the board type. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * | wl18xx: don't upload NVS to FWArik Nemtsov2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | In this chip family the NVS file should not be uploaded to FW. In fact, we encounter strange bugs (sdio errors) when trying to upload it with certain parameters. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * | wl18xx: init Tx-released index to 0 on HW initArik Nemtsov2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | This ensures the index is 0 on FW recovery and prevents spurious error prints - "WARNING illegal id in tx completion". Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * | wlcore/wl12xx: move rx_mem_pool_addr element to wl12xxLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | Only wl127x chips use the rx_mem_pool_addr values, which need to be given to the firmware as part of the RX path. Move this from core to the wl12xx driver. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: implement hw op to read PG versionArik Nemtsov2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | Read the HW PG version of the 18xx chip from FUSE. Based on an earlier patch by Luciano Coelho <coelho@ti.com>. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * | wlcore/wl12xx: move ref_clock and tcxo_clock elements to wl12xxLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | Only wl12xx needs to get the ref_clock anc tcxo_clock values from the platform data. Move these elements from the wl1271 structure to wl12xx's private data. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wlcore: rename wl12xx.h to wlcore_i.hLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | The wl12xx.h file now contains mostly definitions that are internal to wlcore. Still, some things need to me moved to the public header, so for now we keep including it in wlcore.h. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: read clock frequency and do top init accordinglyLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of using hardcoded values for a single frequency, we need to read the frequency and use the appropriate values for it in the top initialization. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: disable FW log functionalityArik Nemtsov2012-06-05
| | | | | | | | | | | | | | | | | | | | | Currently (Fw .67) appears to do more harm than good. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * | wl18xx: read FW pc on recoveryArik Nemtsov2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Define the FW pc in the 18xx register translation table. This specific register is only valid in the boot partition, so change the momentarily change partitions. This doesn't damage 12xx cards, where the FW pc is accessible via boot partition as well. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * | wl18xx: translate and write the board type to SCR_PAD2Luciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The firmware uses the SCR_PAD2 register to read the board type passed from the driver. The values don't match the ones used in the mac and phy configuration, so we need to map them before writing. This commit adds a translation table that is used when writing the board type to SCR_PAD2. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: add board type module argumentLuciano Coelho2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Different board types (ie. FPGA, HDK and DVP/EVB) require slightly different init configuration options. Since we cannot probe the type of board from the actual hardware, we need to pass it as an option during module load. This patch adds a module parameters that accepts the 3 different board types, with DVP/EVB as the default, and uses this value where needed. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
| * | wl18xx: add module param for overriding HT capsArik Nemtsov2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | Set an alternate HT cap allowing MIMO rates (but only 20mhz) channels, when the module is loaded with ht_mode=mimo. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>