diff --git a/target_if/green_ap/inc/target_if_green_ap.h b/target_if/green_ap/inc/target_if_green_ap.h new file mode 100644 index 000000000000..f622d370b375 --- /dev/null +++ b/target_if/green_ap/inc/target_if_green_ap.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2017 The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all + * copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE + * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +/** + * DOC: offload lmac interface APIs for green ap + */ +#ifndef __TARGET_IF_GREEN_AP_H__ +#define __TARGET_IF_GREEN_AP_H__ + +#include + +/** + * target_if_green_ap_enable_egap() - Enable egap + * @pdev: pdev pointer + * + * @Return: None + */ +void target_if_green_ap_enable_egap(struct wlan_objmgr_pdev *pdev); + +/** + * target_if_green_ap_set_ps_on_off() - PS toggle + * @pdev: pdev pointer + * @value: Value to send PS on/off to FW + * + * @Return: None + */ +void target_if_green_ap_set_ps_on_off(struct wlan_objmgr_pdev *pdev, + uint32_t value); +#endif diff --git a/target_if/green_ap/src/target_if_green_ap.c b/target_if/green_ap/src/target_if_green_ap.c new file mode 100644 index 000000000000..8c7f9000e3e1 --- /dev/null +++ b/target_if/green_ap/src/target_if_green_ap.c @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2017 The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all + * copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE + * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +/** + * DOC: offload lmac interface APIs definitions for Green ap + */ + +#include +#include +#include + +void target_if_green_ap_enable_egap(struct wlan_objmgr_pdev *pdev) +{ + +} + +void target_if_green_ap_set_ps_on_off(struct wlan_objmgr_pdev *pdev, + uint32_t value) +{ + +} diff --git a/umac/green_ap/core/src/wlan_green_ap_main.c b/umac/green_ap/core/src/wlan_green_ap_main.c new file mode 100644 index 000000000000..97288bfcd248 --- /dev/null +++ b/umac/green_ap/core/src/wlan_green_ap_main.c @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2017 The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all + * copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE + * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +/** + * DOC: This file contains main green ap function definitions + */ + +#include +#include "wlan_green_ap_main_i.h" + +void wlan_green_ap_state_mc(struct wlan_objmgr_pdev *pdev, + enum wlan_green_ap_ps_event event) +{ + +} + +void wlan_green_ap_ps_event_state_update(struct wlan_objmgr_pdev *pdev, + enum wlan_green_ap_ps_state state, + enum wlan_green_ap_ps_event event) +{ + +} + +int wlan_green_ap_timer_fn(struct wlan_objmgr_pdev *pdev) +{ + + return 0; +} + diff --git a/umac/green_ap/core/src/wlan_green_ap_main_i.h b/umac/green_ap/core/src/wlan_green_ap_main_i.h new file mode 100644 index 000000000000..6b5b36f2e1bd --- /dev/null +++ b/umac/green_ap/core/src/wlan_green_ap_main_i.h @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2017 The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all + * copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE + * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + + +/** + * DOC: This file has main green ap structures. + */ + +#ifndef _WLAN_GREEN_AP_MAIN_I_H_ +#define _WLAN_GREEN_AP_MAIN_I_H_ + +/** + * enum wlan_green_ap_ps_state - PS states + * @WLAN_GREEN_AP_PS_IDLE_STATE - Idle + * @WLAN_GREEN_AP_PS_OFF_STATE - Off + * @WLAN_GREEN_AP_PS_WAIT_STATE - Wait + * @WLAN_GREEN_AP_PS_ON_STATE - On + */ +enum wlan_green_ap_ps_state { + WLAN_GREEN_AP_PS_IDLE_STATE = 1, + WLAN_GREEN_AP_PS_OFF_STATE, + WLAN_GREEN_AP_PS_WAIT_STATE, + WLAN_GREEN_AP_PS_ON_STATE, +}; + +/** + * enum wlan_green_ap_ps_event - PS event + * @WLAN_GREEN_AP_PS_START_EVENT - Start + * @WLAN_GREEN_AP_PS_STOP_EVENT - Stop + * @WLAN_GREEN_AP_ADD_STA_EVENT - Sta assoc + * @WLAN_GREEN_AP_DEL_STA_EVENT - Sta disassoc + * @WLAN_GREEN_AP_PS_ON_EVENT - PS on + * @WLAN_GREEN_AP_PS_OFF_EVENT - PS off + */ +enum wlan_green_ap_ps_event { + WLAN_GREEN_AP_PS_START_EVENT = 1, + WLAN_GREEN_AP_PS_STOP_EVENT, + WLAN_GREEN_AP_ADD_STA_EVENT, + WLAN_GREEN_AP_DEL_STA_EVENT, + WLAN_GREEN_AP_PS_ON_EVENT, + WLAN_GREEN_AP_PS_WAIT_EVENT, +}; + +/** + * struct wlan_pdev_green_ap_ctx - green ap context + * @pdev - Pdev pointer + * @green_ap_ps_enable - Enable PS + * @green_ap_ps_on_time - PS on time, once enabled + * @green_ap_ps_trans_time - PS transition time + * @green_ap_num_node - Number of nodes associated to radio + * @ps_state - PS state + * @ps_event - PS event + * @green_ap_ps_timer - Timer + * @green_ap_egap_support - Enhanced green ap support + */ +struct wlan_pdev_green_ap_ctx { + struct wlan_objmgr_pdev *pdev; + uint8_t green_ap_ps_enable; + uint8_t green_ap_ps_on_time; + uint32_t green_ap_ps_trans_time; + uint32_t green_ap_num_nodes; + enum wlan_green_ap_ps_state ps_state; + enum wlan_green_ap_ps_event ps_event; + qdf_timer_t green_ap_ps_timer; + bool green_ap_egap_support; +}; + +/** + * wlan_green_ap_state_mc() - Green ap state machine + * @pdev: pdev pointer + * @event: ps event + * + * @Return: None + */ +void wlan_green_ap_state_mc(struct wlan_objmgr_pdev *pdev, + enum wlan_green_ap_ps_event event); + +/** + * wlan_green_ap_ps_event_state_update() - Update PS state and event + * @pdev: pdev pointer + * @state: ps state + * @event: ps event + * + * @Return: None + */ +void wlan_green_ap_ps_event_state_update(struct wlan_objmgr_pdev *pdev, + enum wlan_green_ap_ps_state state, + enum wlan_green_ap_ps_event event); + +/** + * wlan_green_ap_timer_fn() - Green ap timer callback + * @pdev: pdev pointer + * + * @Return: status + */ +int wlan_green_ap_timer_fn(struct wlan_objmgr_pdev *pdev); +#endif /* _WLAN_GREEN_AP_MAIN_I_H_ */ diff --git a/umac/green_ap/dispatcher/inc/wlan_green_ap_api.h b/umac/green_ap/dispatcher/inc/wlan_green_ap_api.h new file mode 100644 index 000000000000..39c7e25d8278 --- /dev/null +++ b/umac/green_ap/dispatcher/inc/wlan_green_ap_api.h @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2017 The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all + * copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE + * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +/** + * DOC: Contains green ap north bound interface definitions + */ + +#ifndef _WLAN_GREEN_AP_API_H_ +#define _WLAN_GREEN_AP_API_H_ + +#include + +/** + * wlan_green_ap_init() - initialize green ap component + * + * Return: Success or Failure + */ +QDF_STATUS wlan_green_ap_init(void); + +/** + * wlan_green_ap_deinit() - De-initialize green ap component + * + * Return: Success or Failure + */ +QDF_STATUS wlan_green_ap_deinit(void); + +/** + * wlan_green_ap_start() - Start green ap + * @pdev: pdev pointer + * + * Call this function when the first vdev comes up + * + * Return: Success or Failure + */ +QDF_STATUS wlan_green_ap_start(struct wlan_objmgr_pdev *pdev); + +/** + * wlan_green_ap_stop() - Stop green ap + * @pdev: pdev pointer + * + * Call this function when the last vdev goes down + * + * Return: Success or Failure + */ +QDF_STATUS wlan_green_ap_stop(struct wlan_objmgr_pdev *pdev); + +/** + * wlan_green_ap_add_sta() - On association + * @pdev: pdev pointer + * + * Call this function when new node is associated + * + * Return: Success or Failure + */ +QDF_STATUS wlan_green_ap_add_sta(struct wlan_objmgr_pdev *pdev); + +/** + * wlan_green_ap_del_sta() - On disassociation + * @pdev: pdev pointer + * + * Call this function when new node is associated + * + * Return: Success or Failure + */ +QDF_STATUS wlan_green_ap_del_sta(struct wlan_objmgr_pdev *pdev); + +#endif /* _WLAN_GREEN_AP_API_H_ */ diff --git a/umac/green_ap/dispatcher/inc/wlan_green_ap_ucfg_api.h b/umac/green_ap/dispatcher/inc/wlan_green_ap_ucfg_api.h new file mode 100644 index 000000000000..b31212c1f316 --- /dev/null +++ b/umac/green_ap/dispatcher/inc/wlan_green_ap_ucfg_api.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2017 The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all + * copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE + * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +/** + * DOC: Contains green ap north bound interface definitions + */ + +#ifndef _WLAN_GREEN_AP_UCFG_API_H_ +#define _WLAN_GREEN_AP_UCFG_API_H_ + +#include + + +#endif /* _WLAN_GREEN_AP_UCFG_API_H_ */ diff --git a/umac/green_ap/dispatcher/src/wlan_green_ap_api.c b/umac/green_ap/dispatcher/src/wlan_green_ap_api.c new file mode 100644 index 000000000000..5b1ef78ddbad --- /dev/null +++ b/umac/green_ap/dispatcher/src/wlan_green_ap_api.c @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2017 The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all + * copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE + * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +/** + * DOC: This file contains green ap north bound interface definitions + */ + +#include +#include + +QDF_STATUS wlan_green_ap_init(void) +{ + QDF_STATUS status = QDF_STATUS_SUCCESS; + + return status; +} + +QDF_STATUS wlan_green_ap_deinit(void) +{ + QDF_STATUS status = QDF_STATUS_SUCCESS; + + return status; +} + +QDF_STATUS wlan_green_ap_start(struct wlan_objmgr_pdev *pdev) +{ + QDF_STATUS status = QDF_STATUS_SUCCESS; + + return status; +} + +QDF_STATUS wlan_green_ap_stop(struct wlan_objmgr_pdev *pdev) +{ + QDF_STATUS status = QDF_STATUS_SUCCESS; + + return status; +} + +QDF_STATUS wlan_green_ap_add_sta(struct wlan_objmgr_pdev *pdev) +{ + QDF_STATUS status = QDF_STATUS_SUCCESS; + + return status; +} + +QDF_STATUS wlan_green_ap_del_sta(struct wlan_objmgr_pdev *pdev) +{ + QDF_STATUS status = QDF_STATUS_SUCCESS; + + return status; +} diff --git a/umac/green_ap/dispatcher/src/wlan_green_ap_ucfg_api.c b/umac/green_ap/dispatcher/src/wlan_green_ap_ucfg_api.c new file mode 100644 index 000000000000..1abc91d44679 --- /dev/null +++ b/umac/green_ap/dispatcher/src/wlan_green_ap_ucfg_api.c @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2017 The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all + * copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE + * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +/** + * DOC: This file contains green ap north bound interface definitions + */ + +#include +#include +