/* SPDX-License-Identifier: GPL-2.0-only */ /* * Power management interface for BES2600 mac80211 driver * * Copyright (c) 2010, ST-Ericsson * Author: Dmitry Tarnyagin * * Copyright (c) 2022, Bestechnic (Beijing) Co., Ltd. * */ #ifndef PM_H_INCLUDED #define PM_H_INCLUDED #ifdef CONFIG_PM /* extern */ struct bes2600_common; /* private */ struct bes2600_suspend_state; struct bes2600_pm_state_vif { struct bes2600_suspend_state *suspend_state; }; void bes2600_suspend_status_set(struct bes2600_common *hw_priv, bool status); bool bes2600_suspend_status_get(struct bes2600_common *hw_priv); void bes2600_pending_unjoin_reset(struct bes2600_common *hw_priv); void bes2600_pending_unjoin_set(struct bes2600_common *hw_priv, int if_id); bool bes2600_pending_unjoin_get(struct bes2600_common *hw_priv, int if_id); void bes2600_register_pm_notifier(struct bes2600_common *hw_priv); void bes2600_unregister_pm_notifier(struct bes2600_common *hw_priv); int bes2600_can_suspend(struct bes2600_common *priv); int bes2600_wow_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan); int bes2600_wow_resume(struct ieee80211_hw *hw); #else static inline int bes2600_can_suspend(struct bes2600_common *priv) { return 0; } #endif /* CONFIG_PM */ #endif