Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6d0e9be authored by Emmanuel Grumbach's avatar Emmanuel Grumbach Committed by Wey-Yi Guy
Browse files

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: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
parent af634bee
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -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)
{
+0 −20
Original line number Diff line number Diff line
@@ -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,
};
+1 −1
Original line number Diff line number Diff line
@@ -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;

+1 −0
Original line number Diff line number Diff line
@@ -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);
}

/*
+2 −0
Original line number Diff line number Diff line
@@ -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;