#
10d2b4f4 |
| 03-May-2024 |
Breno Leitao <leitao@debian.org> |
wifi: wil6210: Do not use embedded netdev in wil6210_priv
Embedding net_device into structures prohibits the usage of flexible arrays in the net_device structure. For more details, see the discussio
wifi: wil6210: Do not use embedded netdev in wil6210_priv
Embedding net_device into structures prohibits the usage of flexible arrays in the net_device structure. For more details, see the discussion at [1].
Un-embed the net_device from struct wil6210_priv by converting it into a pointer. Then use the leverage alloc_netdev_dummy() to allocate the net_device object at wil_if_add(). The free of the device occurs at wil_if_remove().
Link: https://lore.kernel.org/all/20240229225910.79e224cf@kernel.org/ [1] Signed-off-by: Breno Leitao <leitao@debian.org> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://msgid.link/20240503103304.339489-1-leitao@debian.org
show more ...
|
#
b48b89f9 |
| 27-Sep-2022 |
Jakub Kicinski <kuba@kernel.org> |
net: drop the weight argument from netif_napi_add
We tell driver developers to always pass NAPI_POLL_WEIGHT as the weight to netif_napi_add(). This may be confusing to newcomers, drop the weight arg
net: drop the weight argument from netif_napi_add
We tell driver developers to always pass NAPI_POLL_WEIGHT as the weight to netif_napi_add(). This may be confusing to newcomers, drop the weight argument, those who really need to tweak the weight can use netif_napi_add_weight().
Acked-by: Marc Kleine-Budde <mkl@pengutronix.de> # for CAN Link: https://lore.kernel.org/r/20220927132753.750069-1-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
bf99f11d |
| 30-Aug-2022 |
Wolfram Sang <wsa+renesas@sang-engineering.com> |
wifi: move from strlcpy with unused retval to strscpy
Follow the advice of the below link and prefer 'strscpy' in this subsystem. Conversion is 1:1 because the return value is not used. Generated by
wifi: move from strlcpy with unused retval to strscpy
Follow the advice of the below link and prefer 'strscpy' in this subsystem. Conversion is 1:1 because the return value is not used. Generated by a coccinelle script.
Link: https://lore.kernel.org/r/CAHk-=wgfRnXz0W3D37d01q3JFkr_i_uTL=V6A6G1oUZcprmknw@mail.gmail.com/ Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20220830201457.7984-2-wsa+renesas@sang-engineering.com
show more ...
|
#
f1c5d4de |
| 04-May-2022 |
Jakub Kicinski <kuba@kernel.org> |
wil6210: switch to netif_napi_add_tx()
Switch to the new API not requiring passing in NAPI_POLL_WEIGHT.
Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Kalle Valo <kvalo@kernel.org>
wil6210: switch to netif_napi_add_tx()
Switch to the new API not requiring passing in NAPI_POLL_WEIGHT.
Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20220504163316.549648-2-kuba@kernel.org
show more ...
|
#
3b3299a1 |
| 29-Apr-2022 |
Jakub Kicinski <kuba@kernel.org> |
wil6210: use NAPI_POLL_WEIGHT for napi budget
The comment next to WIL6210_NAPI_BUDGET says "arbitrary". If we're picking arbitrary values let's pick the recommended default which is NAPI_POLL_WEIGHT
wil6210: use NAPI_POLL_WEIGHT for napi budget
The comment next to WIL6210_NAPI_BUDGET says "arbitrary". If we're picking arbitrary values let's pick the recommended default which is NAPI_POLL_WEIGHT.
Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20220429174643.196994-4-kuba@kernel.org
show more ...
|
#
a05829a7 |
| 22-Jan-2021 |
Johannes Berg <johannes.berg@intel.com> |
cfg80211: avoid holding the RTNL when calling the driver
Currently, _everything_ in cfg80211 holds the RTNL, and if you have a slow USB device (or a few) you can get some bad lock contention on that
cfg80211: avoid holding the RTNL when calling the driver
Currently, _everything_ in cfg80211 holds the RTNL, and if you have a slow USB device (or a few) you can get some bad lock contention on that.
Fix that by re-adding a mutex to each wiphy/rdev as we had at some point, so we have locking for the wireless_dev lists and all the other things in there, and also so that drivers still don't have to worry too much about it (they still won't get parallel calls for a single device).
Then, we can restrict the RTNL to a few cases where we add or remove interfaces and really need the added protection. Some of the global list management still also uses the RTNL, since we need to have it anyway for netdev management, but we only hold the RTNL for very short periods of time here.
Link: https://lore.kernel.org/r/20210122161942.81df9f5e047a.I4a8e1a60b18863ea8c5e6d3a0faeafb2d45b2f40@changeid Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> [marvell driver issues] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
show more ...
|
#
2fe8ef10 |
| 22-Jan-2021 |
Johannes Berg <johannes.berg@intel.com> |
cfg80211: change netdev registration/unregistration semantics
We used to not require anything in terms of registering netdevs with cfg80211, using a netdev notifier instead. However, in the next pat
cfg80211: change netdev registration/unregistration semantics
We used to not require anything in terms of registering netdevs with cfg80211, using a netdev notifier instead. However, in the next patch reducing RTNL locking, this causes big problems, and the simplest way is to just require drivers to do things better.
Change the registration/unregistration semantics to require the drivers to call cfg80211_(un)register_netdevice() when this is happening due to a cfg80211 request, i.e. add_virtual_intf() or del_virtual_intf() (or if it somehow has to happen in any other cfg80211 callback).
Otherwise, in other contexts, drivers may continue to use the normal netdev (un)registration functions as usual.
Internally, we still use the netdev notifier and track (by the new wdev->registered bool) if the wdev had already been added to cfg80211 or not.
Link: https://lore.kernel.org/r/20210122161942.cf2f4b65e4e9.Ida8234e50da13eb675b557bac52a713ad4eddf71@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
show more ...
|
#
85630469 |
| 28-Oct-2019 |
Lior David <liord@codeaurora.org> |
wil6210: add SPDX license identifiers
Change all files to add SPDX license identifiers and remove license text. This is only an administrative change, there is no change in actual license or copyrig
wil6210: add SPDX license identifiers
Change all files to add SPDX license identifiers and remove license text. This is only an administrative change, there is no change in actual license or copyright for any file.
Signed-off-by: Lior David <liord@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
068f359a |
| 10-Sep-2019 |
Dedy Lansky <dlansky@codeaurora.org> |
wil6210: properly initialize discovery_expired_work
Upon driver rmmod, cancel_work_sync() can be invoked on p2p.discovery_expired_work before this work struct was initialized. This causes a WARN_ON
wil6210: properly initialize discovery_expired_work
Upon driver rmmod, cancel_work_sync() can be invoked on p2p.discovery_expired_work before this work struct was initialized. This causes a WARN_ON with newer kernel version.
Add initialization of discovery_expired_work inside wil_vif_init().
Signed-off-by: Dedy Lansky <dlansky@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
42fe1e51 |
| 10-Sep-2019 |
Ahmad Masri <amasri@codeaurora.org> |
wil6210: fix PTK re-key race
Fix a race between cfg80211 add_key call and transmitting of 4/4 EAP packet. In case the transmit is delayed until after the add key takes place, message 4/4 will be enc
wil6210: fix PTK re-key race
Fix a race between cfg80211 add_key call and transmitting of 4/4 EAP packet. In case the transmit is delayed until after the add key takes place, message 4/4 will be encrypted with the new key, and the receiver side (AP) will drop it due to MIC error.
Wil6210 will monitor and look for the transmitted packet 4/4 eap key. In case add_key takes place before the transmission completed, then wil6210 will let the FW store the key and wil6210 will notify the FW to use the PTK key only after 4/4 eap packet transmission was completed.
Signed-off-by: Ahmad Masri <amasri@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
e4a29bdd |
| 28-Feb-2019 |
Ahmad Masri <amasri@codeaurora.org> |
wil6210: check mid is valid
Check that the mid is valid and that it does not exceed the memory size allocated to vifs array.
Signed-off-by: Ahmad Masri <amasri@codeaurora.org> Signed-off-by: Maya E
wil6210: check mid is valid
Check that the mid is valid and that it does not exceed the memory size allocated to vifs array.
Signed-off-by: Ahmad Masri <amasri@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
e1b43407 |
| 31-Oct-2018 |
Ahmad Masri <amasri@codeaurora.org> |
wil6210: refactor disconnect flow
Separate sending command to the fw from the event handling function to simplify the disconnect flow and track the from_event flag correctly.
Signed-off-by: Ahmad M
wil6210: refactor disconnect flow
Separate sending command to the fw from the event handling function to simplify the disconnect flow and track the from_event flag correctly.
Signed-off-by: Ahmad Masri <amasri@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
a078c4cf |
| 31-Oct-2018 |
Hamad Kadmany <hkadmany@codeaurora.org> |
wil6210: remove fake support for RXHASH
Setting the same fake hash to all skbs prevents distributing different flows to different CPU cores.
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org> S
wil6210: remove fake support for RXHASH
Setting the same fake hash to all skbs prevents distributing different flows to different CPU cores.
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org> Signed-off-by: Lior David <liord@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
7be13fc3 |
| 29-Jun-2018 |
Gidon Studinski <gidons@codeaurora.org> |
wil6210: add support for enhanced DMA RX data flows
Enhanced DMA RX data path is handled using a single RX descriptor ring for all VIFs. Multiple RX status rings are supported, to allow RSS and mult
wil6210: add support for enhanced DMA RX data flows
Enhanced DMA RX data path is handled using a single RX descriptor ring for all VIFs. Multiple RX status rings are supported, to allow RSS and multi MSI support. The driver gets the RX completions via the RX status rings. The RX status message includes the completed RX buffer ID, which points to the allocated SKB.
The enhanced DMA RX data flow supports RX chaining, where multiple SKBs are merged into a single packet.
Enhanced DMA HW supports RX HW reorder offload, enabled by default for Talyn-MB.
amsdu_en debugfs entry was added to allow control MSDU aggregation. Use the following command to disable AMSDU (enabled by default): echo 0 > amsdu_en
Signed-off-by: Gidon Studinski <gidons@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
9202d7b6 |
| 29-Jun-2018 |
Maya Erez <merez@codeaurora.org> |
wil6210: add support for enhanced DMA TX data flows
The enhanced DMA TX data path is handled using a descriptor ring per connection and a single status ring.
The driver gets TX completions via the
wil6210: add support for enhanced DMA TX data flows
The enhanced DMA TX data path is handled using a descriptor ring per connection and a single status ring.
The driver gets TX completions via the TX status ring. Each status message points to the completed descriptor ring and includes the number of completed descriptors in this ring.
Non TSO enhanced DMA TX descriptors are similar to legacy DMA TX descriptors, hence the same transmit function can be used.
However, enhanced DMA TSO frames division is performed by the HW, hence a new function is added to handle enhanced DMA TSO.
Signed-off-by: Gidon Studinski <gidons@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
10590c6a |
| 29-Jun-2018 |
Gidon Studinski <gidons@codeaurora.org> |
wil6210: add support for enhanced DMA structures
In enhanced DMA the vrings are handled internally by the FW and are not exposed to the driver. Instead, the driver handles descriptor rings, which ar
wil6210: add support for enhanced DMA structures
In enhanced DMA the vrings are handled internally by the FW and are not exposed to the driver. Instead, the driver handles descriptor rings, which are mapped by the FW to vrings. The completions of the TX and RX descriptors are notified to the driver using status rings. Each status ring descriptor includes information of the completed descriptors and the ring id of their descriptor ring.
This patch changes struct vring to generic wil_ring to allow its reuse for enhanced DMA descriptor rings and adds the descriptor and status rings specific descriptors.
The vring debugfs entries have changed as follows: - dbg_vring_index has changed to dbg_ring_index - vrings has changed to rings - vring_idle_trsh has changed to ring_idle_trsh - vring_index has changed to ring_index
Signed-off-by: Gidon Studinski <gidons@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
9861bf3b |
| 09-May-2018 |
Lior David <liord@codeaurora.org> |
wil6210: fix call to wil6210_disconnect during unload
Move the call to wil6210_disconnect so it will be called before unregister_netdevice. This is because it calls netif_carrier_off which is forbid
wil6210: fix call to wil6210_disconnect during unload
Move the call to wil6210_disconnect so it will be called before unregister_netdevice. This is because it calls netif_carrier_off which is forbidden to call on an unregistered net device. Calling netif_carrier_off can add a link watch event which might be handled after net device was freed, causing a kernel oops.
Signed-off-by: Lior David <liord@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
5bd60982 |
| 26-Feb-2018 |
Lior David <liord@codeaurora.org> |
wil6210: multiple VIFs support for connections and data path
Track the connection status per-VIF. The data path code is also updated to support multiple VIFs. This includes RX and TX VRING managemen
wil6210: multiple VIFs support for connections and data path
Track the connection status per-VIF. The data path code is also updated to support multiple VIFs. This includes RX and TX VRING management, NAPI poll loops, RX reordering and related code. Power management code used to check if the main interface is up or based on connection state of the main interface, adapt this code to take all VIFs into account.
Signed-off-by: Lior David <liord@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
3ada9314 |
| 26-Feb-2018 |
Lior David <liord@codeaurora.org> |
wil6210: multiple VIFs support for start/stop AP
Add support for multiple VIFs in the cfg80211 operations start_ap, stop_ap and change_beacon. This change allows starting multiple APs using virtual
wil6210: multiple VIFs support for start/stop AP
Add support for multiple VIFs in the cfg80211 operations start_ap, stop_ap and change_beacon. This change allows starting multiple APs using virtual interfaces. The data path and most other operations are still working only on the main interface.
Signed-off-by: Lior David <liord@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
4aebd3bd |
| 26-Feb-2018 |
Lior David <liord@codeaurora.org> |
wil6210: add support for adding and removing virtual interfaces
Add generic support in cfg80211 operations add_virtual_intf and del_virtual_intf for adding/removing VIFs of any interface type, and f
wil6210: add support for adding and removing virtual interfaces
Add generic support in cfg80211 operations add_virtual_intf and del_virtual_intf for adding/removing VIFs of any interface type, and fix change_virtual_intf to allow changing the interface type of a VIF. Previously these operations only worked for the P2P_DEVICE interface which is not a real VIF(it is management-only and shares radio with the main interface). Currently the interface combination is validated, the VIF is added/removed in the firmware and the appropriate net/wireless device is also added/removed. Added minimal support for proper interface up/down and module unload but most operations still work only on the main interface.
Signed-off-by: Lior David <liord@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
e00243fa |
| 26-Feb-2018 |
Lior David <liord@codeaurora.org> |
wil6210: infrastructure for multiple virtual interfaces
Simple infrastructure changes for supporting multiple virtual interfaces (multiple VIFs). It is still not possible to add new VIFs so the only
wil6210: infrastructure for multiple virtual interfaces
Simple infrastructure changes for supporting multiple virtual interfaces (multiple VIFs). It is still not possible to add new VIFs so the only VIF belongs to the main interface. Main changes: 1. Add MAC ID(mid) argument to wmi_send and wmi_call to allow invoking WMI commands on different VIFs. 2. Similarly, in WMI event handler look at the mid reported by FW and extract VIF structure (currently only for main interface). All WMI event handlers operate on wil6210_vif structure so they know on which VIF they were called. 3. Trivial changes to use wil6210_vif structure and MID throughout the code. 4. Various changes to logging to report MID.
More complete multiple VIFs support will be added gradually in next patches.
Signed-off-by: Lior David <liord@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
9f38f286 |
| 26-Feb-2018 |
Lior David <liord@codeaurora.org> |
wil6210: add wil6210_vif structure for per-VIF data
For supporting multiple virtual interfaces in the future, introduce a wil6210_vif structure which will hold per-VIF data. Change the module initia
wil6210: add wil6210_vif structure for per-VIF data
For supporting multiple virtual interfaces in the future, introduce a wil6210_vif structure which will hold per-VIF data. Change the module initialization so wil6210_vif will be part of net_device structure, and wireless_dev will be embedded inside the wil6210_vif structure. This will allow us to find the appropriate wil6210_vif structure when we only have access to wireless_dev or net_device.
Signed-off-by: Lior David <liord@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
7d3e4dbe |
| 14-Dec-2017 |
Lior David <qca_liord@qca.qualcomm.com> |
wil6210: remove reference to preset_chandef
The field preset_chandef of wireless_dev must not be accessed by the driver because it is private to cfg80211. Store the monitor channel locally in wil621
wil6210: remove reference to preset_chandef
The field preset_chandef of wireless_dev must not be accessed by the driver because it is private to cfg80211. Store the monitor channel locally in wil6210_priv instead.
Signed-off-by: Lior David <qca_liord@qca.qualcomm.com> Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
94162666 |
| 14-Nov-2017 |
Lazar Alexei <qca_ailizaro@qca.qualcomm.com> |
wil6210: run-time PM when interface down
Allow run-time suspend when interface is down, keep card alive when interface is up. If driver is in wmi only or debug_fw mode run-time PM won't suspend.
Si
wil6210: run-time PM when interface down
Allow run-time suspend when interface is down, keep card alive when interface is up. If driver is in wmi only or debug_fw mode run-time PM won't suspend.
Signed-off-by: Lazar Alexei <qca_ailizaro@qca.qualcomm.com> Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
a520b49e |
| 16-Jun-2017 |
Maya Erez <qca_merez@qca.qualcomm.com> |
wil6210: remove ioctl interface
Wireless drivers should not be using ioctl interface, hence remove this interface for wil6210 driver.
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com> Signed-of
wil6210: remove ioctl interface
Wireless drivers should not be using ioctl interface, hence remove this interface for wil6210 driver.
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|