treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / drivers / staging / wfx / TODO
blobefcb7c6a5aa75f3ee40e5667798d7e6ad4c09bdb
1 This is a list of things that need to be done to get this driver out of the
2 staging directory.
4   - All structures defined in hif_api_*.h are intended to sent/received to/from
5     hardware. All their members whould be declared __le32 or __le16.
6     See:
7        https://lore.kernel.org/lkml/20191111202852.GX26530@ZenIV.linux.org.uk
9   - Once previous item done, it will be possible to audit the driver with
10     `sparse'. It will probably find tons of problems with big endian
11     architectures.
13   - hif_api_*.h whave been imported from firmware code. Some of the structures
14     are never used in driver.
16   - Driver try to maintains power save status of the stations. However, this
17     work is already done by mac80211. sta_asleep_mask and pspoll_mask should be
18     dropped.
20   - wfx_tx_queues_get() should be reworked. It currently try compute itself the
21     QoS policy. However, firmware already do the job. Firmware would prefer to
22     have a few packets in each queue and be able to choose itself which queue to
23     use.
25   - As suggested by Felix, rate control could be improved following this idea:
26         https://lore.kernel.org/lkml/3099559.gv3Q75KnN1@pc-42/
28   - When driver is about to loose BSS, it forge its own Null Func request (see
29     wfx_cqm_bssloss_sm()). It should use mechanism provided by mac80211.
31   - AP is actually is setup after a call to wfx_bss_info_changed(). Yet,
32     ieee80211_ops provide callback start_ap().
34   - The current process for joining a network is incredibly complex. Should be
35     reworked.
37   - Monitoring mode is not implemented despite being mandatory by mac80211.
39   - "compatible" value are not correct. They should be "vendor,chip". See:
40        https://lore.kernel.org/driverdev-devel/5226570.CMH5hVlZcI@pc-42
42   - The "state" field from wfx_vif should be replaced by "vif->type".
44   - It seems that wfx_upload_keys() is useless.
46   - "event_queue" from wfx_vif seems overkill. These event are rare and they
47      probably could be handled in a simpler fashion.
49   - Feature called "secure link" should be either developed (using kernel
50     crypto API) or dropped.
52   - In wfx_cmd_send(), "async" allow to send command without waiting the reply.
53     It may help in some situation, but it is not yet used. In add, it may cause
54     some trouble:
55       https://lore.kernel.org/driverdev-devel/alpine.DEB.2.21.1910041317381.2992@hadrien/
56     So, fix it (by replacing the mutex with a semaphore) or drop it.
58   - Chip support P2P, but driver does not implement it.
60   - Chip support kind of Mesh, but driver does not implement it.