mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 10:29:37 +00:00
iwlwifi: kill bus_is_pm_supported
Get this information from the transport layer which is now in charge of the APM too. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
This commit is contained in:
parent
af634bee8c
commit
f6d0e9be65
5 changed files with 4 additions and 28 deletions
|
@ -120,12 +120,10 @@ struct iwl_bus;
|
|||
|
||||
/**
|
||||
* struct iwl_bus_ops - bus specific operations
|
||||
* @get_pm_support: must returns true if the bus can go to sleep
|
||||
* @get_hw_id_string: prints the hw_id in the provided buffer
|
||||
* @get_hw_id: get hw_id in u32
|
||||
*/
|
||||
struct iwl_bus_ops {
|
||||
bool (*get_pm_support)(struct iwl_bus *bus);
|
||||
void (*get_hw_id_string)(struct iwl_bus *bus, char buf[], int buf_len);
|
||||
u32 (*get_hw_id)(struct iwl_bus *bus);
|
||||
};
|
||||
|
@ -149,11 +147,6 @@ struct iwl_bus {
|
|||
char bus_specific[0] __attribute__((__aligned__(sizeof(void *))));
|
||||
};
|
||||
|
||||
static inline bool bus_get_pm_support(struct iwl_bus *bus)
|
||||
{
|
||||
return bus->ops->get_pm_support(bus);
|
||||
}
|
||||
|
||||
static inline void bus_get_hw_id_string(struct iwl_bus *bus, char buf[],
|
||||
int buf_len)
|
||||
{
|
||||
|
|
|
@ -87,25 +87,6 @@ struct iwl_pci_bus {
|
|||
#define IWL_BUS_GET_PCI_DEV(_iwl_bus) \
|
||||
((IWL_BUS_GET_PCI_BUS(_iwl_bus))->pci_dev)
|
||||
|
||||
static u16 iwl_pciexp_link_ctrl(struct iwl_bus *bus)
|
||||
{
|
||||
int pos;
|
||||
u16 pci_lnk_ctl;
|
||||
|
||||
struct pci_dev *pci_dev = IWL_BUS_GET_PCI_DEV(bus);
|
||||
|
||||
pos = pci_pcie_cap(pci_dev);
|
||||
pci_read_config_word(pci_dev, pos + PCI_EXP_LNKCTL, &pci_lnk_ctl);
|
||||
return pci_lnk_ctl;
|
||||
}
|
||||
|
||||
static bool iwl_pci_is_pm_supported(struct iwl_bus *bus)
|
||||
{
|
||||
u16 lctl = iwl_pciexp_link_ctrl(bus);
|
||||
|
||||
return !(lctl & PCI_CFG_LINK_CTRL_VAL_L0S_EN);
|
||||
}
|
||||
|
||||
static void iwl_pci_get_hw_id_string(struct iwl_bus *bus, char buf[],
|
||||
int buf_len)
|
||||
{
|
||||
|
@ -123,7 +104,6 @@ static u32 iwl_pci_get_hw_id(struct iwl_bus *bus)
|
|||
}
|
||||
|
||||
static const struct iwl_bus_ops bus_ops_pci = {
|
||||
.get_pm_support = iwl_pci_is_pm_supported,
|
||||
.get_hw_id_string = iwl_pci_get_hw_id_string,
|
||||
.get_hw_id = iwl_pci_get_hw_id,
|
||||
};
|
||||
|
|
|
@ -436,7 +436,7 @@ int iwl_power_update_mode(struct iwl_priv *priv, bool force)
|
|||
/* initialize to default */
|
||||
void iwl_power_initialize(struct iwl_priv *priv)
|
||||
{
|
||||
priv->power_data.bus_pm = bus_get_pm_support(bus(priv));
|
||||
priv->power_data.bus_pm = trans(priv)->pm_support;
|
||||
|
||||
priv->power_data.debug_sleep_level_override = -1;
|
||||
|
||||
|
|
|
@ -676,6 +676,7 @@ static void iwl_apm_config(struct iwl_trans *trans)
|
|||
dev_printk(KERN_INFO, trans->dev,
|
||||
"L1 Disabled; Enabling L0S\n");
|
||||
}
|
||||
trans->pm_support = !(lctl & PCI_CFG_LINK_CTRL_VAL_L0S_EN);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -239,6 +239,7 @@ struct iwl_calib_result {
|
|||
* @ucode_init: init ucode image
|
||||
* @ucode_wowlan: wake on wireless ucode image (optional)
|
||||
* @nvm_device_type: indicates OTP or eeprom
|
||||
* @pm_support: set to true in start_hw if link pm is supported
|
||||
* @calib_results: list head for init calibration results
|
||||
*/
|
||||
struct iwl_trans {
|
||||
|
@ -257,6 +258,7 @@ struct iwl_trans {
|
|||
|
||||
/* eeprom related variables */
|
||||
int nvm_device_type;
|
||||
bool pm_support;
|
||||
|
||||
/* init calibration results */
|
||||
struct list_head calib_results;
|
||||
|
|
Loading…
Reference in a new issue