On Tue, Oct 29, 2024 at 07:23:46PM +0200, Michael Nemanov wrote: > General code and structures. > Notably: > > cc33xx_irq - Handles IRQs received from the device. > > process_core_status - Core status is a new concept in CC33xx. > it's a structure that is appended to each transfer from the device and > contains its most up-to-date status report (IRQs, buffers, etc.). > See struct core_status for details. > > process_event_and_cmd_result - Responses to driver commands and > FW events both arrive asynchronously. Therefore, driver cannot know what > he read from HW until inspecting the payload. This code reads and > dispatches the data accordingly. > > cc33xx_recovery_work - Driver supports basic recovery on FW crash and > other illegal conditions. This implements the recovery flow > (Remove all vifs, turn device off and on, download FW, > let ieee80211_restart_hw do the rest). > > irq_deferred_work - Does irq-related work that requires holding the > cc->mutex. Thisd is mostly in response to HW's Tx/Rx IRQs. > > cc33xx_nvs_cb - Callback for the NVS FW request API. Similar to wlcore, > this is where the init of the HW is performed. > > cc33xx_load_ini_bin_file - Loads a configuration file from user-space > via the request FW API. The structure is described in a separate patch. > > cc33xx_op_X - MAC80211 operation handlers. > > Signed-off-by: Michael Nemanov <michael.nemanov@xxxxxx> > --- > drivers/net/wireless/ti/cc33xx/main.c | 5689 +++++++++++++++++++++++++ > 1 file changed, 5689 insertions(+) > create mode 100644 drivers/net/wireless/ti/cc33xx/main.c > > diff --git a/drivers/net/wireless/ti/cc33xx/main.c b/drivers/net/wireless/ti/cc33xx/main.c ... > +static struct ieee80211_sband_iftype_data iftype_data_2ghz[] = {{ Hi Michael, Sparse seems a bit unhappy about this: .../main.c:332:24: warning: incorrect type in initializer (different address spaces) .../main.c:332:24: expected struct ieee80211_sband_iftype_data const [noderef] __iftype_data *iftype_data .../main.c:332:24: got struct ieee80211_sband_iftype_data * So perhaps it should be: static const struct ieee80211_sband_iftype_data __iftd iftype_data_2ghz[] = {{ Likewise for iftype_data_5ghz. ...