summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/quantenna/qtnfmac/pcie
Commit message (Collapse)AuthorAgeFilesLines
* qtnfmac: send EAPOL frames via control pathIgor Mitsyanko2019-04-043-0/+10
| | | | | | | | Use control path to send EAPOL frames to make sure they are sent with higher priority with aggregation disabled. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac: simplify firmware state trackingSergey Matyukevich2019-04-041-6/+4Star
| | | | | | | | | | | | | This patch streamlines firmware state tracking. In particular, state QTNF_FW_STATE_FW_DNLD_DONE is removed, states QTNF_FW_STATE_RESET and QTNF_FW_STATE_DETACHED are merged into a single state. Besides, new state QTNF_FW_STATE_RUNNING is introduced to distinguish between the following two cases: - firmware load succeeded, firmware init process is ongoing - firmware init succeeded, firmware is fully functional Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac: fix core attach error path in pcie backendSergey Matyukevich2019-04-044-39/+34Star
| | | | | | | | | | | Report that firmware is up and running only for successful firmware download. Simplify qtnf_pcie_fw_boot_done: modify error path so that no need to pass firmware dowload result to this function. Finally, do not create debugfs entries if firmware download succeeded, but core attach failed. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac: fix INTx interrupt handlingSergey Matyukevich2019-02-011-3/+3
| | | | | | | | | | | In the current implementation INTx interrupt is deasserted after the control path processing. However this may lead to missed interrupts from the wireless card. For instance, this may happen as a result of control path activity, when another interrupt arrives before INTx is deasserted. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac: add support for Topaz chipsetsSergey Matyukevich2018-11-065-1/+1363
| | | | | | | | | | | | | | | | | | This patch adds support for QSR1000/QSR2000 family of chipsets to qtnfmac_pcie platform driver. QSR1000/QSR2000 (aka Topaz) is a family of 80MHz, 11ac Wave2, 4x4/2x4/2x2 chips, including single and dual band devices. Depending on specific chip model and firmware in use, either STA or both STA and AP modes are supported. Patch adds Topaz support to qtnfmac_pcie driver. Proper platform bus will be selected on probing based on chip ID. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Andrey Shevchenko <ashevchenko@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac_pcie: use single PCIe driver for all platformsIgor Mitsyanko2018-11-063-243/+266
| | | | | | | | Single PCIe driver can identify hardware type by reading CHIP ID at probe time and invoking a correct initialization sequence. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac_pcie: cleanup Pearl platform headersSergey Matyukevich2018-10-132-230/+3Star
| | | | | | | Remove redundant information from Pearl platform headers. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac: use SPDX identifier for pcie bus layer filesSergey Matyukevich2018-10-133-45/+6Star
| | | | | | | Change pcie bus layer licensing information to SPDX format. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac: drop redundant data copy in control pathSergey Matyukevich2018-10-051-2/+3
| | | | | | | | | | | Command responses and events from the firmware are copied twice in control path: at first in shm core (qtnf_shm_handle_new_data) and then in pcie bus drivers (qtnf_pcie_control_rx_callback). There is no need to copy this data twice, it can be done only once in rx callbacks. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac_pcie: check for correct CHIP ID at pcie probeIgor Mitsyanko2018-10-011-0/+24
| | | | | | | | Make sure that wifi device is of supported variant by checking it's CHIP ID before completing a probe sequence. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac: wait for FW load work to finish at PCIe removeIgor Mitsyanko2018-10-011-3/+1Star
| | | | | | | | | Waiting for "completion" to be set in FW load thread can not be used in case PCIe remove is called before FW load work was scheduled. Just wait for work completion instead to avoid problems. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac_pcie: extract platform-independent PCIe codeIgor Mitsyanko2018-10-014-383/+454
| | | | | | | | Extract platform-independent PCIe driver code into a separate file, and use it from platform-specific modules. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac_pcie: rename platform-specific functionsIgor Mitsyanko2018-10-011-49/+52
| | | | | | | Rename several functions to indicate that they are platform specific. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac_pcie: separate platform-independent PCIe structureIgor Mitsyanko2018-10-013-261/+287
| | | | | | | | Move platform-independent PCIe data structure to a separate header file so it can be reused by different devices. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac_pcie: pearl: rename spinlock tx0_lock to tx_lockIgor Mitsyanko2018-10-011-5/+5
| | | | | | | | tx_lock name will later be reused when common pcie code is extracted to separate files. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac_pcie: indicate pearl-specific structures by their namesIgor Mitsyanko2018-10-012-68/+68
| | | | | | | | | In preparation to extract common PCIe driver state, indicate PEARL-specific structures by their name and move them to pearl-specific source file. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac_pcie: rename private Pearl PCIe state structureIgor Mitsyanko2018-10-012-138/+111Star
| | | | | | | | | In preparation to extract common pcie driver state into a separate structure, rename Pearl-specific state to qtnf_pcie_pearl_state and move it directly to pearl-specific PCIe source file. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
* qtnfmac_pcie: move Pearl pcie sources to pcie-specific directoryIgor Mitsyanko2018-10-014-0/+2099
In preparation to extract common qtnfmac PCIe driver sources into a separate file, move existing Pearl-specific pcie driver sources to pcie/ directory. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>