Commit 9597ebac authored by Johannes Berg's avatar Johannes Berg Committed by Wey-Yi Guy

iwlwifi: remove set_pwr_src operation

The set_pwr_src operation is only ever used from
within the same sub-driver that it is declared
in, so it can just be called directly instead of
being an operation. Also, it is never called to
set the power source to V_aux, so change the two
functions accordingly (but keep the V_aux code
for documentation purposes in a comment).
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
parent 0453674c
...@@ -196,7 +196,6 @@ static struct iwl_lib_ops iwl1000_lib = { ...@@ -196,7 +196,6 @@ static struct iwl_lib_ops iwl1000_lib = {
.init = iwl_apm_init, .init = iwl_apm_init,
.stop = iwl_apm_stop, .stop = iwl_apm_stop,
.config = iwl1000_nic_config, .config = iwl1000_nic_config,
.set_pwr_src = iwl_set_pwr_src,
}, },
.eeprom_ops = { .eeprom_ops = {
.regulatory_bands = { .regulatory_bands = {
......
...@@ -816,9 +816,12 @@ static u8 iwl3945_sync_sta(struct iwl_priv *priv, int sta_id, u16 tx_rate) ...@@ -816,9 +816,12 @@ static u8 iwl3945_sync_sta(struct iwl_priv *priv, int sta_id, u16 tx_rate)
return sta_id; return sta_id;
} }
static int iwl3945_set_pwr_src(struct iwl_priv *priv, enum iwl_pwr_src src) static void iwl3945_set_pwr_vmain(struct iwl_priv *priv)
{ {
if (src == IWL_PWR_SRC_VAUX) { /*
* (for documentation purposes)
* to set power to V_AUX, do
if (pci_pme_capable(priv->pci_dev, PCI_D3cold)) { if (pci_pme_capable(priv->pci_dev, PCI_D3cold)) {
iwl_set_bits_mask_prph(priv, APMG_PS_CTRL_REG, iwl_set_bits_mask_prph(priv, APMG_PS_CTRL_REG,
APMG_PS_CTRL_VAL_PWR_SRC_VAUX, APMG_PS_CTRL_VAL_PWR_SRC_VAUX,
...@@ -828,16 +831,14 @@ static int iwl3945_set_pwr_src(struct iwl_priv *priv, enum iwl_pwr_src src) ...@@ -828,16 +831,14 @@ static int iwl3945_set_pwr_src(struct iwl_priv *priv, enum iwl_pwr_src src)
CSR_GPIO_IN_VAL_VAUX_PWR_SRC, CSR_GPIO_IN_VAL_VAUX_PWR_SRC,
CSR_GPIO_IN_BIT_AUX_POWER, 5000); CSR_GPIO_IN_BIT_AUX_POWER, 5000);
} }
} else { */
iwl_set_bits_mask_prph(priv, APMG_PS_CTRL_REG,
APMG_PS_CTRL_VAL_PWR_SRC_VMAIN,
~APMG_PS_CTRL_MSK_PWR_SRC);
iwl_poll_bit(priv, CSR_GPIO_IN, CSR_GPIO_IN_VAL_VMAIN_PWR_SRC, iwl_set_bits_mask_prph(priv, APMG_PS_CTRL_REG,
CSR_GPIO_IN_BIT_AUX_POWER, 5000); /* uS */ APMG_PS_CTRL_VAL_PWR_SRC_VMAIN,
} ~APMG_PS_CTRL_MSK_PWR_SRC);
return 0; iwl_poll_bit(priv, CSR_GPIO_IN, CSR_GPIO_IN_VAL_VMAIN_PWR_SRC,
CSR_GPIO_IN_BIT_AUX_POWER, 5000); /* uS */
} }
static int iwl3945_rx_init(struct iwl_priv *priv, struct iwl_rx_queue *rxq) static int iwl3945_rx_init(struct iwl_priv *priv, struct iwl_rx_queue *rxq)
...@@ -1031,9 +1032,7 @@ int iwl3945_hw_nic_init(struct iwl_priv *priv) ...@@ -1031,9 +1032,7 @@ int iwl3945_hw_nic_init(struct iwl_priv *priv)
priv->cfg->ops->lib->apm_ops.init(priv); priv->cfg->ops->lib->apm_ops.init(priv);
spin_unlock_irqrestore(&priv->lock, flags); spin_unlock_irqrestore(&priv->lock, flags);
rc = priv->cfg->ops->lib->apm_ops.set_pwr_src(priv, IWL_PWR_SRC_VMAIN); iwl3945_set_pwr_vmain(priv);
if (rc)
return rc;
priv->cfg->ops->lib->apm_ops.config(priv); priv->cfg->ops->lib->apm_ops.config(priv);
...@@ -2707,7 +2706,6 @@ static struct iwl_lib_ops iwl3945_lib = { ...@@ -2707,7 +2706,6 @@ static struct iwl_lib_ops iwl3945_lib = {
.init = iwl3945_apm_init, .init = iwl3945_apm_init,
.stop = iwl_apm_stop, .stop = iwl_apm_stop,
.config = iwl3945_nic_config, .config = iwl3945_nic_config,
.set_pwr_src = iwl3945_set_pwr_src,
}, },
.eeprom_ops = { .eeprom_ops = {
.regulatory_bands = { .regulatory_bands = {
......
...@@ -2268,7 +2268,6 @@ static struct iwl_lib_ops iwl4965_lib = { ...@@ -2268,7 +2268,6 @@ static struct iwl_lib_ops iwl4965_lib = {
.init = iwl_apm_init, .init = iwl_apm_init,
.stop = iwl_apm_stop, .stop = iwl_apm_stop,
.config = iwl4965_nic_config, .config = iwl4965_nic_config,
.set_pwr_src = iwl_set_pwr_src,
}, },
.eeprom_ops = { .eeprom_ops = {
.regulatory_bands = { .regulatory_bands = {
......
...@@ -370,7 +370,6 @@ static struct iwl_lib_ops iwl5000_lib = { ...@@ -370,7 +370,6 @@ static struct iwl_lib_ops iwl5000_lib = {
.init = iwl_apm_init, .init = iwl_apm_init,
.stop = iwl_apm_stop, .stop = iwl_apm_stop,
.config = iwl5000_nic_config, .config = iwl5000_nic_config,
.set_pwr_src = iwl_set_pwr_src,
}, },
.eeprom_ops = { .eeprom_ops = {
.regulatory_bands = { .regulatory_bands = {
...@@ -440,7 +439,6 @@ static struct iwl_lib_ops iwl5150_lib = { ...@@ -440,7 +439,6 @@ static struct iwl_lib_ops iwl5150_lib = {
.init = iwl_apm_init, .init = iwl_apm_init,
.stop = iwl_apm_stop, .stop = iwl_apm_stop,
.config = iwl5000_nic_config, .config = iwl5000_nic_config,
.set_pwr_src = iwl_set_pwr_src,
}, },
.eeprom_ops = { .eeprom_ops = {
.regulatory_bands = { .regulatory_bands = {
......
...@@ -310,7 +310,6 @@ static struct iwl_lib_ops iwl6000_lib = { ...@@ -310,7 +310,6 @@ static struct iwl_lib_ops iwl6000_lib = {
.init = iwl_apm_init, .init = iwl_apm_init,
.stop = iwl_apm_stop, .stop = iwl_apm_stop,
.config = iwl6000_nic_config, .config = iwl6000_nic_config,
.set_pwr_src = iwl_set_pwr_src,
}, },
.eeprom_ops = { .eeprom_ops = {
.regulatory_bands = { .regulatory_bands = {
...@@ -383,7 +382,6 @@ static struct iwl_lib_ops iwl6000g2b_lib = { ...@@ -383,7 +382,6 @@ static struct iwl_lib_ops iwl6000g2b_lib = {
.init = iwl_apm_init, .init = iwl_apm_init,
.stop = iwl_apm_stop, .stop = iwl_apm_stop,
.config = iwl6000_nic_config, .config = iwl6000_nic_config,
.set_pwr_src = iwl_set_pwr_src,
}, },
.eeprom_ops = { .eeprom_ops = {
.regulatory_bands = { .regulatory_bands = {
......
...@@ -685,6 +685,23 @@ int iwlagn_rx_init(struct iwl_priv *priv, struct iwl_rx_queue *rxq) ...@@ -685,6 +685,23 @@ int iwlagn_rx_init(struct iwl_priv *priv, struct iwl_rx_queue *rxq)
return 0; return 0;
} }
static void iwlagn_set_pwr_vmain(struct iwl_priv *priv)
{
/*
* (for documentation purposes)
* to set power to V_AUX, do:
if (pci_pme_capable(priv->pci_dev, PCI_D3cold))
iwl_set_bits_mask_prph(priv, APMG_PS_CTRL_REG,
APMG_PS_CTRL_VAL_PWR_SRC_VAUX,
~APMG_PS_CTRL_MSK_PWR_SRC);
*/
iwl_set_bits_mask_prph(priv, APMG_PS_CTRL_REG,
APMG_PS_CTRL_VAL_PWR_SRC_VMAIN,
~APMG_PS_CTRL_MSK_PWR_SRC);
}
int iwlagn_hw_nic_init(struct iwl_priv *priv) int iwlagn_hw_nic_init(struct iwl_priv *priv)
{ {
unsigned long flags; unsigned long flags;
...@@ -700,7 +717,7 @@ int iwlagn_hw_nic_init(struct iwl_priv *priv) ...@@ -700,7 +717,7 @@ int iwlagn_hw_nic_init(struct iwl_priv *priv)
spin_unlock_irqrestore(&priv->lock, flags); spin_unlock_irqrestore(&priv->lock, flags);
ret = priv->cfg->ops->lib->apm_ops.set_pwr_src(priv, IWL_PWR_SRC_VMAIN); iwlagn_set_pwr_vmain(priv);
priv->cfg->ops->lib->apm_ops.config(priv); priv->cfg->ops->lib->apm_ops.config(priv);
......
...@@ -935,22 +935,6 @@ static void iwl_rx_card_state_notif(struct iwl_priv *priv, ...@@ -935,22 +935,6 @@ static void iwl_rx_card_state_notif(struct iwl_priv *priv,
wake_up_interruptible(&priv->wait_command_queue); wake_up_interruptible(&priv->wait_command_queue);
} }
int iwl_set_pwr_src(struct iwl_priv *priv, enum iwl_pwr_src src)
{
if (src == IWL_PWR_SRC_VAUX) {
if (pci_pme_capable(priv->pci_dev, PCI_D3cold))
iwl_set_bits_mask_prph(priv, APMG_PS_CTRL_REG,
APMG_PS_CTRL_VAL_PWR_SRC_VAUX,
~APMG_PS_CTRL_MSK_PWR_SRC);
} else {
iwl_set_bits_mask_prph(priv, APMG_PS_CTRL_REG,
APMG_PS_CTRL_VAL_PWR_SRC_VMAIN,
~APMG_PS_CTRL_MSK_PWR_SRC);
}
return 0;
}
static void iwl_bg_tx_flush(struct work_struct *work) static void iwl_bg_tx_flush(struct work_struct *work)
{ {
struct iwl_priv *priv = struct iwl_priv *priv =
......
...@@ -119,7 +119,6 @@ struct iwl_apm_ops { ...@@ -119,7 +119,6 @@ struct iwl_apm_ops {
int (*init)(struct iwl_priv *priv); int (*init)(struct iwl_priv *priv);
void (*stop)(struct iwl_priv *priv); void (*stop)(struct iwl_priv *priv);
void (*config)(struct iwl_priv *priv); void (*config)(struct iwl_priv *priv);
int (*set_pwr_src)(struct iwl_priv *priv, enum iwl_pwr_src src);
}; };
struct iwl_debugfs_ops { struct iwl_debugfs_ops {
......
...@@ -282,13 +282,6 @@ struct iwl_channel_info { ...@@ -282,13 +282,6 @@ struct iwl_channel_info {
*/ */
#define IWL_IPAN_MCAST_QUEUE 8 #define IWL_IPAN_MCAST_QUEUE 8
/* Power management (not Tx power) structures */
enum iwl_pwr_src {
IWL_PWR_SRC_VMAIN,
IWL_PWR_SRC_VAUX,
};
#define IEEE80211_DATA_LEN 2304 #define IEEE80211_DATA_LEN 2304
#define IEEE80211_4ADDR_LEN 30 #define IEEE80211_4ADDR_LEN 30
#define IEEE80211_HLEN (IEEE80211_4ADDR_LEN) #define IEEE80211_HLEN (IEEE80211_4ADDR_LEN)
...@@ -732,7 +725,6 @@ struct iwl_hw_params { ...@@ -732,7 +725,6 @@ struct iwl_hw_params {
* *
****************************************************************************/ ****************************************************************************/
extern void iwl_update_chain_flags(struct iwl_priv *priv); extern void iwl_update_chain_flags(struct iwl_priv *priv);
extern int iwl_set_pwr_src(struct iwl_priv *priv, enum iwl_pwr_src src);
extern const u8 iwl_bcast_addr[ETH_ALEN]; extern const u8 iwl_bcast_addr[ETH_ALEN];
extern int iwl_rxq_stop(struct iwl_priv *priv); extern int iwl_rxq_stop(struct iwl_priv *priv);
extern void iwl_txq_ctx_stop(struct iwl_priv *priv); extern void iwl_txq_ctx_stop(struct iwl_priv *priv);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment