Merge tag 'pci-v3.14-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
Pull PCI updates from Bjorn Helgaas: "PCI changes for the v3.14 merge window: Resource management - Change pci_bus_region addresses to dma_addr_t (Bjorn Helgaas) - Support 64-bit AGP BARs (Bjorn Helgaas, Yinghai Lu) - Add pci_bus_address() to get bus address of a BAR (Bjorn Helgaas) - Use pci_resource_start() for CPU address of AGP BARs (Bjorn Helgaas) - Enforce bus address limits in resource allocation (Yinghai Lu) - Allocate 64-bit BARs above 4G when possible (Yinghai Lu) - Convert pcibios_resource_to_bus() to take pci_bus, not pci_dev (Yinghai Lu) PCI device hotplug - Major rescan/remove locking update (Rafael J. Wysocki) - Make ioapic builtin only (not modular) (Yinghai Lu) - Fix release/free issues (Yinghai Lu) - Clean up pciehp (Bjorn Helgaas) - Announce pciehp slot info during enumeration (Bjorn Helgaas) MSI - Add pci_msi_vec_count(), pci_msix_vec_count() (Alexander Gordeev) - Add pci_enable_msi_range(), pci_enable_msix_range() (Alexander Gordeev) - Deprecate "tri-state" interfaces: fail/success/fail+info (Alexander Gordeev) - Export MSI mode using attributes, not kobjects (Greg Kroah-Hartman) - Drop "irq" param from *_restore_msi_irqs() (DuanZhenzhong) SR-IOV - Clear NumVFs when disabling SR-IOV in sriov_init() (ethan.zhao) Virtualization - Add support for save/restore of extended capabilities (Alex Williamson) - Add Virtual Channel to save/restore support (Alex Williamson) - Never treat a VF as a multifunction device (Alex Williamson) - Add pci_try_reset_function(), et al (Alex Williamson) AER - Ignore non-PCIe error sources (Betty Dall) - Support ACPI HEST error sources for domains other than 0 (Betty Dall) - Consolidate HEST error source parsers (Bjorn Helgaas) - Add a TLP header print helper (Borislav Petkov) Freescale i.MX6 - Remove unnecessary code (Fabio Estevam) - Make reset-gpio optional (Marek Vasut) - Report "link up" only after link training completes (Marek Vasut) - Start link in Gen1 before negotiating for Gen2 mode (Marek Vasut) - Fix PCIe startup code (Richard Zhu) Marvell MVEBU - Remove duplicate of_clk_get_by_name() call (Andrew Lunn) - Drop writes to bridge Secondary Status register (Jason Gunthorpe) - Obey bridge PCI_COMMAND_MEM and PCI_COMMAND_IO bits (Jason Gunthorpe) - Support a bridge with no IO port window (Jason Gunthorpe) - Use max_t() instead of max(resource_size_t,) (Jingoo Han) - Remove redundant of_match_ptr (Sachin Kamat) - Call pci_ioremap_io() at startup instead of dynamically (Thomas Petazzoni) NVIDIA Tegra - Disable Gen2 for Tegra20 and Tegra30 (Eric Brower) Renesas R-Car - Add runtime PM support (Valentine Barshak) - Fix rcar_pci_probe() return value check (Wei Yongjun) Synopsys DesignWare - Fix crash in dw_msi_teardown_irq() (Bjørn Erik Nilsen) - Remove redundant call to pci_write_config_word() (Bjørn Erik Nilsen) - Fix missing MSI IRQs (Harro Haan) - Add dw_pcie prefix before cfg_read/write (Pratyush Anand) - Fix I/O transfers by using CPU (not realio) address (Pratyush Anand) - Whitespace cleanup (Jingoo Han) EISA - Call put_device() if device_register() fails (Levente Kurusa) - Revert EISA initialization breakage ((Bjorn Helgaas) Miscellaneous - Remove unused code, including PCIe 3.0 interfaces (Stephen Hemminger) - Prevent bus conflicts while checking for bridge apertures (Bjorn Helgaas) - Stop clearing bridge Secondary Status when setting up I/O aperture (Bjorn Helgaas) - Use dev_is_pci() to identify PCI devices (Yijing Wang) - Deprecate DEFINE_PCI_DEVICE_TABLE (Joe Perches) - Update documentation 00-INDEX (Erik Ekman)" * tag 'pci-v3.14-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (119 commits) Revert "EISA: Initialize device before its resources" Revert "EISA: Log device resources in dmesg" vfio-pci: Use pci "try" reset interface PCI: Check parent kobject in pci_destroy_dev() xen/pcifront: Use global PCI rescan-remove locking powerpc/eeh: Use global PCI rescan-remove locking PCI: Fix pci_check_and_unmask_intx() comment typos PCI: Add pci_try_reset_function(), pci_try_reset_slot(), pci_try_reset_bus() MPT / PCI: Use pci_stop_and_remove_bus_device_locked() platform / x86: Use global PCI rescan-remove locking PCI: hotplug: Use global PCI rescan-remove locking pcmcia: Use global PCI rescan-remove locking ACPI / hotplug / PCI: Use global PCI rescan-remove locking ACPI / PCI: Use global PCI rescan-remove locking in PCI root hotplug PCI: Add global pci_lock_rescan_remove() PCI: Cleanup pci.h whitespace PCI: Reorder so actual code comes before stubs PCI/AER: Support ACPI HEST AER error sources for PCI domains other than 0 ACPICA: Add helper macros to extract bus/segment numbers from HEST table. PCI: Make local functions static ...
This commit is contained in:
@@ -224,7 +224,8 @@ enum pci_bus_speed {
|
||||
};
|
||||
|
||||
struct pci_cap_saved_data {
|
||||
char cap_nr;
|
||||
u16 cap_nr;
|
||||
bool cap_extended;
|
||||
unsigned int size;
|
||||
u32 data[0];
|
||||
};
|
||||
@@ -351,7 +352,7 @@ struct pci_dev {
|
||||
struct bin_attribute *res_attr_wc[DEVICE_COUNT_RESOURCE]; /* sysfs file for WC mapping of resources */
|
||||
#ifdef CONFIG_PCI_MSI
|
||||
struct list_head msi_list;
|
||||
struct kset *msi_kset;
|
||||
const struct attribute_group **msi_irq_groups;
|
||||
#endif
|
||||
struct pci_vpd *vpd;
|
||||
#ifdef CONFIG_PCI_ATS
|
||||
@@ -375,7 +376,6 @@ static inline struct pci_dev *pci_physfn(struct pci_dev *dev)
|
||||
}
|
||||
|
||||
struct pci_dev *pci_alloc_dev(struct pci_bus *bus);
|
||||
struct pci_dev * __deprecated alloc_pci_dev(void);
|
||||
|
||||
#define to_pci_dev(n) container_of(n, struct pci_dev, dev)
|
||||
#define for_each_pci_dev(d) while ((d = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, d)) != NULL)
|
||||
@@ -385,8 +385,6 @@ static inline int pci_channel_offline(struct pci_dev *pdev)
|
||||
return (pdev->error_state != pci_channel_io_normal);
|
||||
}
|
||||
|
||||
extern struct resource busn_resource;
|
||||
|
||||
struct pci_host_bridge_window {
|
||||
struct list_head list;
|
||||
struct resource *res; /* host bridge aperture (CPU address) */
|
||||
@@ -551,8 +549,8 @@ int raw_pci_write(unsigned int domain, unsigned int bus, unsigned int devfn,
|
||||
int reg, int len, u32 val);
|
||||
|
||||
struct pci_bus_region {
|
||||
resource_size_t start;
|
||||
resource_size_t end;
|
||||
dma_addr_t start;
|
||||
dma_addr_t end;
|
||||
};
|
||||
|
||||
struct pci_dynids {
|
||||
@@ -634,8 +632,7 @@ struct pci_driver {
|
||||
* DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table
|
||||
* @_table: device table name
|
||||
*
|
||||
* This macro is used to create a struct pci_device_id array (a device table)
|
||||
* in a generic manner.
|
||||
* This macro is deprecated and should not be used in new code.
|
||||
*/
|
||||
#define DEFINE_PCI_DEVICE_TABLE(_table) \
|
||||
const struct pci_device_id _table[]
|
||||
@@ -737,9 +734,9 @@ void pci_fixup_cardbus(struct pci_bus *);
|
||||
|
||||
/* Generic PCI functions used internally */
|
||||
|
||||
void pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
|
||||
void pcibios_resource_to_bus(struct pci_bus *bus, struct pci_bus_region *region,
|
||||
struct resource *res);
|
||||
void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
|
||||
void pcibios_bus_to_resource(struct pci_bus *bus, struct resource *res,
|
||||
struct pci_bus_region *region);
|
||||
void pcibios_scan_specific_bus(int busn);
|
||||
struct pci_bus *pci_find_bus(int domain, int busnr);
|
||||
@@ -763,7 +760,6 @@ struct pci_slot *pci_create_slot(struct pci_bus *parent, int slot_nr,
|
||||
const char *name,
|
||||
struct hotplug_slot *hotplug);
|
||||
void pci_destroy_slot(struct pci_slot *slot);
|
||||
void pci_renumber_slot(struct pci_slot *slot, int slot_nr);
|
||||
int pci_scan_slot(struct pci_bus *bus, int devfn);
|
||||
struct pci_dev *pci_scan_single_device(struct pci_bus *bus, int devfn);
|
||||
void pci_device_add(struct pci_dev *dev, struct pci_bus *bus);
|
||||
@@ -779,6 +775,7 @@ struct pci_dev *pci_dev_get(struct pci_dev *dev);
|
||||
void pci_dev_put(struct pci_dev *dev);
|
||||
void pci_remove_bus(struct pci_bus *b);
|
||||
void pci_stop_and_remove_bus_device(struct pci_dev *dev);
|
||||
void pci_stop_and_remove_bus_device_locked(struct pci_dev *dev);
|
||||
void pci_stop_root_bus(struct pci_bus *bus);
|
||||
void pci_remove_root_bus(struct pci_bus *bus);
|
||||
void pci_setup_cardbus(struct pci_bus *bus);
|
||||
@@ -938,6 +935,7 @@ bool pci_check_and_unmask_intx(struct pci_dev *dev);
|
||||
void pci_msi_off(struct pci_dev *dev);
|
||||
int pci_set_dma_max_seg_size(struct pci_dev *dev, unsigned int size);
|
||||
int pci_set_dma_seg_boundary(struct pci_dev *dev, unsigned long mask);
|
||||
int pci_wait_for_pending(struct pci_dev *dev, int pos, u16 mask);
|
||||
int pci_wait_for_pending_transaction(struct pci_dev *dev);
|
||||
int pcix_get_max_mmrbc(struct pci_dev *dev);
|
||||
int pcix_get_mmrbc(struct pci_dev *dev);
|
||||
@@ -951,10 +949,13 @@ int pcie_get_minimum_link(struct pci_dev *dev, enum pci_bus_speed *speed,
|
||||
int __pci_reset_function(struct pci_dev *dev);
|
||||
int __pci_reset_function_locked(struct pci_dev *dev);
|
||||
int pci_reset_function(struct pci_dev *dev);
|
||||
int pci_try_reset_function(struct pci_dev *dev);
|
||||
int pci_probe_reset_slot(struct pci_slot *slot);
|
||||
int pci_reset_slot(struct pci_slot *slot);
|
||||
int pci_try_reset_slot(struct pci_slot *slot);
|
||||
int pci_probe_reset_bus(struct pci_bus *bus);
|
||||
int pci_reset_bus(struct pci_bus *bus);
|
||||
int pci_try_reset_bus(struct pci_bus *bus);
|
||||
void pci_reset_bridge_secondary_bus(struct pci_dev *dev);
|
||||
void pci_update_resource(struct pci_dev *dev, int resno);
|
||||
int __must_check pci_assign_resource(struct pci_dev *dev, int i);
|
||||
@@ -974,9 +975,14 @@ void __iomem __must_check *pci_platform_rom(struct pci_dev *pdev, size_t *size);
|
||||
int pci_save_state(struct pci_dev *dev);
|
||||
void pci_restore_state(struct pci_dev *dev);
|
||||
struct pci_saved_state *pci_store_saved_state(struct pci_dev *dev);
|
||||
int pci_load_saved_state(struct pci_dev *dev, struct pci_saved_state *state);
|
||||
int pci_load_and_free_saved_state(struct pci_dev *dev,
|
||||
struct pci_saved_state **state);
|
||||
struct pci_cap_saved_state *pci_find_saved_cap(struct pci_dev *dev, char cap);
|
||||
struct pci_cap_saved_state *pci_find_saved_ext_cap(struct pci_dev *dev,
|
||||
u16 cap);
|
||||
int pci_add_cap_save_buffer(struct pci_dev *dev, char cap, unsigned int size);
|
||||
int pci_add_ext_cap_save_buffer(struct pci_dev *dev,
|
||||
u16 cap, unsigned int size);
|
||||
int __pci_complete_power_transition(struct pci_dev *dev, pci_power_t state);
|
||||
int pci_set_power_state(struct pci_dev *dev, pci_power_t state);
|
||||
pci_power_t pci_choose_state(struct pci_dev *dev, pm_message_t state);
|
||||
@@ -985,7 +991,6 @@ void pci_pme_active(struct pci_dev *dev, bool enable);
|
||||
int __pci_enable_wake(struct pci_dev *dev, pci_power_t state,
|
||||
bool runtime, bool enable);
|
||||
int pci_wake_from_d3(struct pci_dev *dev, bool enable);
|
||||
pci_power_t pci_target_state(struct pci_dev *dev);
|
||||
int pci_prepare_to_sleep(struct pci_dev *dev);
|
||||
int pci_back_from_sleep(struct pci_dev *dev);
|
||||
bool pci_dev_run_wake(struct pci_dev *dev);
|
||||
@@ -998,21 +1003,10 @@ static inline int pci_enable_wake(struct pci_dev *dev, pci_power_t state,
|
||||
return __pci_enable_wake(dev, state, false, enable);
|
||||
}
|
||||
|
||||
#define PCI_EXP_IDO_REQUEST (1<<0)
|
||||
#define PCI_EXP_IDO_COMPLETION (1<<1)
|
||||
void pci_enable_ido(struct pci_dev *dev, unsigned long type);
|
||||
void pci_disable_ido(struct pci_dev *dev, unsigned long type);
|
||||
|
||||
enum pci_obff_signal_type {
|
||||
PCI_EXP_OBFF_SIGNAL_L0 = 0,
|
||||
PCI_EXP_OBFF_SIGNAL_ALWAYS = 1,
|
||||
};
|
||||
int pci_enable_obff(struct pci_dev *dev, enum pci_obff_signal_type);
|
||||
void pci_disable_obff(struct pci_dev *dev);
|
||||
|
||||
int pci_enable_ltr(struct pci_dev *dev);
|
||||
void pci_disable_ltr(struct pci_dev *dev);
|
||||
int pci_set_ltr(struct pci_dev *dev, int snoop_lat_ns, int nosnoop_lat_ns);
|
||||
/* PCI Virtual Channel */
|
||||
int pci_save_vc_state(struct pci_dev *dev);
|
||||
void pci_restore_vc_state(struct pci_dev *dev);
|
||||
void pci_allocate_vc_save_buffers(struct pci_dev *dev);
|
||||
|
||||
/* For use by arch with custom probe code */
|
||||
void set_pcie_port_type(struct pci_dev *pdev);
|
||||
@@ -1022,11 +1016,12 @@ void set_pcie_hotplug_bridge(struct pci_dev *pdev);
|
||||
int pci_bus_find_capability(struct pci_bus *bus, unsigned int devfn, int cap);
|
||||
unsigned int pci_rescan_bus_bridge_resize(struct pci_dev *bridge);
|
||||
unsigned int pci_rescan_bus(struct pci_bus *bus);
|
||||
void pci_lock_rescan_remove(void);
|
||||
void pci_unlock_rescan_remove(void);
|
||||
|
||||
/* Vital product data routines */
|
||||
ssize_t pci_read_vpd(struct pci_dev *dev, loff_t pos, size_t count, void *buf);
|
||||
ssize_t pci_write_vpd(struct pci_dev *dev, loff_t pos, size_t count, const void *buf);
|
||||
int pci_vpd_truncate(struct pci_dev *dev, size_t size);
|
||||
|
||||
/* Helper functions for low-level code (drivers/pci/setup-[bus,res].c) */
|
||||
resource_size_t pcibios_retrieve_fw_addr(struct pci_dev *dev, int idx);
|
||||
@@ -1078,6 +1073,14 @@ int __must_check pci_bus_alloc_resource(struct pci_bus *bus,
|
||||
resource_size_t),
|
||||
void *alignf_data);
|
||||
|
||||
static inline dma_addr_t pci_bus_address(struct pci_dev *pdev, int bar)
|
||||
{
|
||||
struct pci_bus_region region;
|
||||
|
||||
pcibios_resource_to_bus(pdev->bus, ®ion, &pdev->resource[bar]);
|
||||
return region.start;
|
||||
}
|
||||
|
||||
/* Proper probing supporting hot-pluggable devices */
|
||||
int __must_check __pci_register_driver(struct pci_driver *, struct module *,
|
||||
const char *mod_name);
|
||||
@@ -1115,7 +1118,6 @@ int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max,
|
||||
|
||||
void pci_walk_bus(struct pci_bus *top, int (*cb)(struct pci_dev *, void *),
|
||||
void *userdata);
|
||||
int pci_cfg_space_size_ext(struct pci_dev *dev);
|
||||
int pci_cfg_space_size(struct pci_dev *dev);
|
||||
unsigned char pci_bus_max_busnr(struct pci_bus *bus);
|
||||
void pci_setup_bridge(struct pci_bus *bus);
|
||||
@@ -1154,59 +1156,42 @@ struct msix_entry {
|
||||
};
|
||||
|
||||
|
||||
#ifndef CONFIG_PCI_MSI
|
||||
static inline int pci_enable_msi_block(struct pci_dev *dev, unsigned int nvec)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
pci_enable_msi_block_auto(struct pci_dev *dev, unsigned int *maxvec)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline void pci_msi_shutdown(struct pci_dev *dev)
|
||||
{ }
|
||||
static inline void pci_disable_msi(struct pci_dev *dev)
|
||||
{ }
|
||||
|
||||
static inline int pci_msix_table_size(struct pci_dev *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline int pci_enable_msix(struct pci_dev *dev,
|
||||
struct msix_entry *entries, int nvec)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline void pci_msix_shutdown(struct pci_dev *dev)
|
||||
{ }
|
||||
static inline void pci_disable_msix(struct pci_dev *dev)
|
||||
{ }
|
||||
|
||||
static inline void msi_remove_pci_irq_vectors(struct pci_dev *dev)
|
||||
{ }
|
||||
|
||||
static inline void pci_restore_msi_state(struct pci_dev *dev)
|
||||
{ }
|
||||
static inline int pci_msi_enabled(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
int pci_enable_msi_block(struct pci_dev *dev, unsigned int nvec);
|
||||
int pci_enable_msi_block_auto(struct pci_dev *dev, unsigned int *maxvec);
|
||||
#ifdef CONFIG_PCI_MSI
|
||||
int pci_msi_vec_count(struct pci_dev *dev);
|
||||
int pci_enable_msi_block(struct pci_dev *dev, int nvec);
|
||||
void pci_msi_shutdown(struct pci_dev *dev);
|
||||
void pci_disable_msi(struct pci_dev *dev);
|
||||
int pci_msix_table_size(struct pci_dev *dev);
|
||||
int pci_msix_vec_count(struct pci_dev *dev);
|
||||
int pci_enable_msix(struct pci_dev *dev, struct msix_entry *entries, int nvec);
|
||||
void pci_msix_shutdown(struct pci_dev *dev);
|
||||
void pci_disable_msix(struct pci_dev *dev);
|
||||
void msi_remove_pci_irq_vectors(struct pci_dev *dev);
|
||||
void pci_restore_msi_state(struct pci_dev *dev);
|
||||
int pci_msi_enabled(void);
|
||||
int pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec);
|
||||
int pci_enable_msix_range(struct pci_dev *dev, struct msix_entry *entries,
|
||||
int minvec, int maxvec);
|
||||
#else
|
||||
static inline int pci_msi_vec_count(struct pci_dev *dev) { return -ENOSYS; }
|
||||
static inline int pci_enable_msi_block(struct pci_dev *dev, int nvec)
|
||||
{ return -ENOSYS; }
|
||||
static inline void pci_msi_shutdown(struct pci_dev *dev) { }
|
||||
static inline void pci_disable_msi(struct pci_dev *dev) { }
|
||||
static inline int pci_msix_vec_count(struct pci_dev *dev) { return -ENOSYS; }
|
||||
static inline int pci_enable_msix(struct pci_dev *dev,
|
||||
struct msix_entry *entries, int nvec)
|
||||
{ return -ENOSYS; }
|
||||
static inline void pci_msix_shutdown(struct pci_dev *dev) { }
|
||||
static inline void pci_disable_msix(struct pci_dev *dev) { }
|
||||
static inline void msi_remove_pci_irq_vectors(struct pci_dev *dev) { }
|
||||
static inline void pci_restore_msi_state(struct pci_dev *dev) { }
|
||||
static inline int pci_msi_enabled(void) { return 0; }
|
||||
static inline int pci_enable_msi_range(struct pci_dev *dev, int minvec,
|
||||
int maxvec)
|
||||
{ return -ENOSYS; }
|
||||
static inline int pci_enable_msix_range(struct pci_dev *dev,
|
||||
struct msix_entry *entries, int minvec, int maxvec)
|
||||
{ return -ENOSYS; }
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PCIEPORTBUS
|
||||
@@ -1217,12 +1202,10 @@ extern bool pcie_ports_auto;
|
||||
#define pcie_ports_auto false
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_PCIEASPM
|
||||
static inline int pcie_aspm_enabled(void) { return 0; }
|
||||
static inline bool pcie_aspm_support_enabled(void) { return false; }
|
||||
#else
|
||||
int pcie_aspm_enabled(void);
|
||||
#ifdef CONFIG_PCIEASPM
|
||||
bool pcie_aspm_support_enabled(void);
|
||||
#else
|
||||
static inline bool pcie_aspm_support_enabled(void) { return false; }
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PCIEAER
|
||||
@@ -1233,15 +1216,12 @@ static inline void pci_no_aer(void) { }
|
||||
static inline bool pci_aer_available(void) { return false; }
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_PCIE_ECRC
|
||||
static inline void pcie_set_ecrc_checking(struct pci_dev *dev)
|
||||
{
|
||||
return;
|
||||
}
|
||||
static inline void pcie_ecrc_get_policy(char *str) {};
|
||||
#else
|
||||
#ifdef CONFIG_PCIE_ECRC
|
||||
void pcie_set_ecrc_checking(struct pci_dev *dev);
|
||||
void pcie_ecrc_get_policy(char *str);
|
||||
#else
|
||||
static inline void pcie_set_ecrc_checking(struct pci_dev *dev) { }
|
||||
static inline void pcie_ecrc_get_policy(char *str) { }
|
||||
#endif
|
||||
|
||||
#define pci_enable_msi(pdev) pci_enable_msi_block(pdev, 1)
|
||||
@@ -1265,15 +1245,8 @@ void pci_cfg_access_unlock(struct pci_dev *dev);
|
||||
extern int pci_domains_supported;
|
||||
#else
|
||||
enum { pci_domains_supported = 0 };
|
||||
static inline int pci_domain_nr(struct pci_bus *bus)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int pci_proc_domain(struct pci_bus *bus)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline int pci_domain_nr(struct pci_bus *bus) { return 0; }
|
||||
static inline int pci_proc_domain(struct pci_bus *bus) { return 0; }
|
||||
#endif /* CONFIG_PCI_DOMAINS */
|
||||
|
||||
/* some architectures require additional setup to direct VGA traffic */
|
||||
@@ -1302,180 +1275,88 @@ _PCI_NOP_ALL(write,)
|
||||
static inline struct pci_dev *pci_get_device(unsigned int vendor,
|
||||
unsigned int device,
|
||||
struct pci_dev *from)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
{ return NULL; }
|
||||
|
||||
static inline struct pci_dev *pci_get_subsys(unsigned int vendor,
|
||||
unsigned int device,
|
||||
unsigned int ss_vendor,
|
||||
unsigned int ss_device,
|
||||
struct pci_dev *from)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
{ return NULL; }
|
||||
|
||||
static inline struct pci_dev *pci_get_class(unsigned int class,
|
||||
struct pci_dev *from)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
{ return NULL; }
|
||||
|
||||
#define pci_dev_present(ids) (0)
|
||||
#define no_pci_devices() (1)
|
||||
#define pci_dev_put(dev) do { } while (0)
|
||||
|
||||
static inline void pci_set_master(struct pci_dev *dev)
|
||||
{ }
|
||||
|
||||
static inline int pci_enable_device(struct pci_dev *dev)
|
||||
{
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
static inline void pci_disable_device(struct pci_dev *dev)
|
||||
{ }
|
||||
|
||||
static inline void pci_set_master(struct pci_dev *dev) { }
|
||||
static inline int pci_enable_device(struct pci_dev *dev) { return -EIO; }
|
||||
static inline void pci_disable_device(struct pci_dev *dev) { }
|
||||
static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
|
||||
{
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
{ return -EIO; }
|
||||
static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
|
||||
{
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
{ return -EIO; }
|
||||
static inline int pci_set_dma_max_seg_size(struct pci_dev *dev,
|
||||
unsigned int size)
|
||||
{
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
{ return -EIO; }
|
||||
static inline int pci_set_dma_seg_boundary(struct pci_dev *dev,
|
||||
unsigned long mask)
|
||||
{
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
{ return -EIO; }
|
||||
static inline int pci_assign_resource(struct pci_dev *dev, int i)
|
||||
{
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
{ return -EBUSY; }
|
||||
static inline int __pci_register_driver(struct pci_driver *drv,
|
||||
struct module *owner)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
{ return 0; }
|
||||
static inline int pci_register_driver(struct pci_driver *drv)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void pci_unregister_driver(struct pci_driver *drv)
|
||||
{ }
|
||||
|
||||
{ return 0; }
|
||||
static inline void pci_unregister_driver(struct pci_driver *drv) { }
|
||||
static inline int pci_find_capability(struct pci_dev *dev, int cap)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
{ return 0; }
|
||||
static inline int pci_find_next_capability(struct pci_dev *dev, u8 post,
|
||||
int cap)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
{ return 0; }
|
||||
static inline int pci_find_ext_capability(struct pci_dev *dev, int cap)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
{ return 0; }
|
||||
|
||||
/* Power management related routines */
|
||||
static inline int pci_save_state(struct pci_dev *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void pci_restore_state(struct pci_dev *dev)
|
||||
{ }
|
||||
|
||||
static inline int pci_save_state(struct pci_dev *dev) { return 0; }
|
||||
static inline void pci_restore_state(struct pci_dev *dev) { }
|
||||
static inline int pci_set_power_state(struct pci_dev *dev, pci_power_t state)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
{ return 0; }
|
||||
static inline int pci_wake_from_d3(struct pci_dev *dev, bool enable)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
{ return 0; }
|
||||
static inline pci_power_t pci_choose_state(struct pci_dev *dev,
|
||||
pm_message_t state)
|
||||
{
|
||||
return PCI_D0;
|
||||
}
|
||||
|
||||
{ return PCI_D0; }
|
||||
static inline int pci_enable_wake(struct pci_dev *dev, pci_power_t state,
|
||||
int enable)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void pci_enable_ido(struct pci_dev *dev, unsigned long type)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void pci_disable_ido(struct pci_dev *dev, unsigned long type)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int pci_enable_obff(struct pci_dev *dev, unsigned long type)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void pci_disable_obff(struct pci_dev *dev)
|
||||
{
|
||||
}
|
||||
{ return 0; }
|
||||
|
||||
static inline int pci_request_regions(struct pci_dev *dev, const char *res_name)
|
||||
{
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
static inline void pci_release_regions(struct pci_dev *dev)
|
||||
{ }
|
||||
{ return -EIO; }
|
||||
static inline void pci_release_regions(struct pci_dev *dev) { }
|
||||
|
||||
#define pci_dma_burst_advice(pdev, strat, strategy_parameter) do { } while (0)
|
||||
|
||||
static inline void pci_block_cfg_access(struct pci_dev *dev)
|
||||
{ }
|
||||
|
||||
static inline void pci_block_cfg_access(struct pci_dev *dev) { }
|
||||
static inline int pci_block_cfg_access_in_atomic(struct pci_dev *dev)
|
||||
{ return 0; }
|
||||
|
||||
static inline void pci_unblock_cfg_access(struct pci_dev *dev)
|
||||
{ }
|
||||
static inline void pci_unblock_cfg_access(struct pci_dev *dev) { }
|
||||
|
||||
static inline struct pci_bus *pci_find_next_bus(const struct pci_bus *from)
|
||||
{ return NULL; }
|
||||
|
||||
static inline struct pci_dev *pci_get_slot(struct pci_bus *bus,
|
||||
unsigned int devfn)
|
||||
{ return NULL; }
|
||||
|
||||
static inline struct pci_dev *pci_get_bus_and_slot(unsigned int bus,
|
||||
unsigned int devfn)
|
||||
{ return NULL; }
|
||||
|
||||
static inline int pci_domain_nr(struct pci_bus *bus)
|
||||
{ return 0; }
|
||||
|
||||
static inline struct pci_dev *pci_dev_get(struct pci_dev *dev)
|
||||
{ return NULL; }
|
||||
static inline int pci_domain_nr(struct pci_bus *bus) { return 0; }
|
||||
static inline struct pci_dev *pci_dev_get(struct pci_dev *dev) { return NULL; }
|
||||
|
||||
#define dev_is_pci(d) (false)
|
||||
#define dev_is_pf(d) (false)
|
||||
@@ -1486,10 +1367,6 @@ static inline struct pci_dev *pci_dev_get(struct pci_dev *dev)
|
||||
|
||||
#include <asm/pci.h>
|
||||
|
||||
#ifndef PCIBIOS_MAX_MEM_32
|
||||
#define PCIBIOS_MAX_MEM_32 (-1)
|
||||
#endif
|
||||
|
||||
/* these helpers provide future and backwards compatibility
|
||||
* for accessing popular PCI BAR info */
|
||||
#define pci_resource_start(dev, bar) ((dev)->resource[(bar)].start)
|
||||
@@ -1635,7 +1512,7 @@ struct pci_dev *pci_get_dma_source(struct pci_dev *dev);
|
||||
int pci_dev_specific_acs_enabled(struct pci_dev *dev, u16 acs_flags);
|
||||
#else
|
||||
static inline void pci_fixup_device(enum pci_fixup_pass pass,
|
||||
struct pci_dev *dev) {}
|
||||
struct pci_dev *dev) { }
|
||||
static inline struct pci_dev *pci_get_dma_source(struct pci_dev *dev)
|
||||
{
|
||||
return pci_dev_get(dev);
|
||||
@@ -1707,32 +1584,17 @@ int pci_sriov_set_totalvfs(struct pci_dev *dev, u16 numvfs);
|
||||
int pci_sriov_get_totalvfs(struct pci_dev *dev);
|
||||
#else
|
||||
static inline int pci_enable_sriov(struct pci_dev *dev, int nr_virtfn)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
static inline void pci_disable_sriov(struct pci_dev *dev)
|
||||
{
|
||||
}
|
||||
{ return -ENODEV; }
|
||||
static inline void pci_disable_sriov(struct pci_dev *dev) { }
|
||||
static inline irqreturn_t pci_sriov_migration(struct pci_dev *dev)
|
||||
{
|
||||
return IRQ_NONE;
|
||||
}
|
||||
static inline int pci_num_vf(struct pci_dev *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
{ return IRQ_NONE; }
|
||||
static inline int pci_num_vf(struct pci_dev *dev) { return 0; }
|
||||
static inline int pci_vfs_assigned(struct pci_dev *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
{ return 0; }
|
||||
static inline int pci_sriov_set_totalvfs(struct pci_dev *dev, u16 numvfs)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
{ return 0; }
|
||||
static inline int pci_sriov_get_totalvfs(struct pci_dev *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
{ return 0; }
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_HOTPLUG_PCI) || defined(CONFIG_HOTPLUG_PCI_MODULE)
|
||||
|
Reference in New Issue
Block a user