#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <net/mac80211.h>
#include "iwl-io.h"
#include "iwl-debug.h"
#include "iwl-trans.h"
#include "iwl-modparams.h"
#include "dev.h"
#include "agn.h"
#include "commands.h"
#include "power.h"
static bool force_cam = …;
module_param(force_cam, bool, 0644);
MODULE_PARM_DESC(…) …;
struct iwl_power_vec_entry { … };
#define IWL_DTIM_RANGE_0_MAX …
#define IWL_DTIM_RANGE_1_MAX …
#define NOSLP …
#define SLP …
#define ASLP …
#define ASLP_TOUT(T) …
#define TU_TO_USEC …
#define SLP_TOUT(T) …
#define SLP_VEC(X0, X1, X2, X3, X4) …
static const struct iwl_power_vec_entry range_0[IWL_POWER_NUM] = …;
static const struct iwl_power_vec_entry range_1[IWL_POWER_NUM] = …;
static const struct iwl_power_vec_entry range_2[IWL_POWER_NUM] = …;
static const struct iwl_power_vec_entry apm_range_0[IWL_POWER_NUM] = …;
static const struct iwl_power_vec_entry apm_range_1[IWL_POWER_NUM] = …;
static const struct iwl_power_vec_entry apm_range_2[IWL_POWER_NUM] = …;
static void iwl_static_sleep_cmd(struct iwl_priv *priv,
struct iwl_powertable_cmd *cmd,
enum iwl_power_level lvl, int period)
{ … }
static void iwl_power_sleep_cam_cmd(struct iwl_priv *priv,
struct iwl_powertable_cmd *cmd)
{ … }
static int iwl_set_power(struct iwl_priv *priv, struct iwl_powertable_cmd *cmd)
{ … }
static void iwl_power_build_cmd(struct iwl_priv *priv,
struct iwl_powertable_cmd *cmd)
{ … }
int iwl_power_set_mode(struct iwl_priv *priv, struct iwl_powertable_cmd *cmd,
bool force)
{ … }
int iwl_power_update_mode(struct iwl_priv *priv, bool force)
{ … }
void iwl_power_initialize(struct iwl_priv *priv)
{ … }