aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ti/wl18xx
Commit message (Collapse)AuthorAge
...
* 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>
* 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>
* 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>
* 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>
* wl18xx: set HT capabilitiesArik Nemtsov2012-06-05
| | | | | | | | Define the default HT capabilities of the 18xx chip family - these include support for wide-channel. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wlcore/wl18xx: enable MIMO/wide-chan rates in AP-mode rate configArik Nemtsov2012-06-05
| | | | | | | | | | | | Add a HW op to add extra enabled rates for AP-mode data-rates. Since the rates might depend on channel properties, reconfigure AP-mode rates when these change. Implement the HW op for the 18xx family, where MIMO or wide-chan rates can be added. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wl18xx: ipmlement ap_rate_mask hw opArik Nemtsov2012-06-05
| | | | | | | Enable wide-chan or MIMO rates when appropriate. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wl18xx: add runtime configuration parametersLuciano Coelho2012-06-05
| | | | | | | | | | | Now wlcore requires the lower drivers to set the correct configuration. Move the existing private configuration to the proper place and add all generic configuration parameters. The important changes are in Tx interrupt pacing and Rx BA window size. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
* wlcore/wl18xx: add hw op for Rx HW checksumArik Nemtsov2012-06-05
| | | | | | | | | Some chip families can checksum certain classes of Rx packets in FW. Implement the Rx-checksum feature as a HW-op. For the 18xx chip-family, set Rx-checsum according to indication from FW. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wlcore/wl18xx: add hw op for setting Tx HW checksumArik Nemtsov2012-06-05
| | | | | | | | | | | | Some chip families are capable of checksumming certain classes of Tx packets in HW. Indicate this fact in the netdev features and perform the HW checksum by protocol type for the 18xx family. Fix the location of the skb network header when we move it so we can rely on it when setting the checksum. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wl18xx: add hw_init operationLuciano Coelho2012-06-05
| | | | | | | | Add wl18xx-specific HW initialization operation and create acx.[ch] files to support that. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
* wl18xx: implement immediate Tx completionArik Nemtsov2012-06-05
| | | | | | | | | Implement immediate Tx completion for the 18xx family. Move 18xx specific Tx code to new tx.c/h files and create helper header files for definitions. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wl18xx: implement hw op for getting rx packet data lengthArik Nemtsov2012-06-05
| | | | | | | Implement the 18xx-specific way for getting the length of a Rx packet. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wl18xx: implement hw op for getting rx buffer data alignmentArik Nemtsov2012-06-05
| | | | | | | | Implement the HW op for getting alignment state in wl18xx. The FW aligns the Rx Ethernet payload data. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wl18xx: set Rx block-size alignment quirkArik Nemtsov2012-06-05
| | | | | | | The 18xx FW sends Rx blocks with aligned length. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wl18xx: add fw_status private dataArik Nemtsov2012-06-05
| | | | | | | | The wl18xx chip passes extra information in the firmware status to the driver. Add a private data section to handle that. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
* wl18xx: define HW-rate translation elements/tablesArik Nemtsov2012-06-05
| | | | | | | | | Define HW-rate conversion tables for the 18xx chip. Initialize the appropriate wlcore elements with these tables and values to allow conversion of HW-rates. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wl18xx: implement hw op for setting frame length in tx_hw_descArik Nemtsov2012-06-05
| | | | | | | Set the frame length during Tx in a way compatible with the 18xx FW. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wl18xx: implement hw op for setting blocks in hw_tx_descArik Nemtsov2012-06-05
| | | | | | | | Add the 18xx variant to the HW Tx descriptor union and set the 18xx specific values during Tx. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wl18xx: implement hw op for calculating hw block count per packetArik Nemtsov2012-06-05
| | | | | | | Implement the calc_tx_blocks op for the 18xx family. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wl18xx: set normal/GEM Tx spare block countsArik Nemtsov2012-06-05
| | | | | | | | Initialize the Tx spare block counts for all operating modes in the 18xx card. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wl18xx: set the number of Tx descriptorsArik Nemtsov2012-06-05
| | | | | | | Initialize the number of Tx-descriptors for the 18xx family. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wl18xx: create per-chip-family private storageArik Nemtsov2012-06-05
| | | | | | | | Make use of the wlcore provided private storage in the 18xx low-level driver. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* wl18xx: add trigger command and ack event operationsLuciano Coelho2012-06-05
| | | | | | | | | | | | Add the operations that allow wlcore to trigger commands to the firmware and acknowledge when an event has been fully received. Allocate a private buffer to hold the maximum sized cmd. Send the entire length of the buffer each time a command is sent to signal EOT. Remove the previous EOT mechanism. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
* wl18xx: add some boot operations and hw-specific configurationsLuciano Coelho2012-06-05
| | | | | | | | | | Implement the boot operation. Add a wl18xx-specific configuration structure (namely to configure the mac and phy parameters). The default hw configuration matches the DVP board. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
* wl18xx: add identify chip operationLuciano Coelho2012-06-05
| | | | | | | | Add identify_chip operation to detect the chip ID for wl185x and set the correct firmware name. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
* wl18xx: add register tableLuciano Coelho2012-06-05
| | | | | | | Add the register table with the appropriate values for wl18xx. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
* wl18xx: add partition tableLuciano Coelho2012-06-05
| | | | | | | Define and add the partition table in the wlcore struct. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
* wl18xx: add empty operations structLuciano Coelho2012-06-05
| | | | | | | | We don't have any chip-specific operations yet, but now wlcore has defined an operations structure and requires the pointer to be set. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
* wl18xx: add new moduleLuciano Coelho2012-06-05
Add the wl18xx module and the probe functions. Use wlcore for the main parts (not functional at this point due to differences in the wl18xx initialization). Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>