diff options
Diffstat (limited to 'include/linux/pci.h')
| -rw-r--r-- | include/linux/pci.h | 24 | 
1 files changed, 17 insertions, 7 deletions
| diff --git a/include/linux/pci.h b/include/linux/pci.h index 9603094ed59b..211e9da8a7d7 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -29,6 +29,7 @@  #include <linux/atomic.h>  #include <linux/device.h>  #include <linux/io.h> +#include <linux/resource_ext.h>  #include <uapi/linux/pci.h>  #include <linux/pci_ids.h> @@ -177,6 +178,8 @@ enum pci_dev_flags {  	PCI_DEV_FLAG_PCIE_BRIDGE_ALIAS = (__force pci_dev_flags_t) (1 << 5),  	/* Do not use bus resets for device */  	PCI_DEV_FLAGS_NO_BUS_RESET = (__force pci_dev_flags_t) (1 << 6), +	/* Do not use PM reset even if device advertises NoSoftRst- */ +	PCI_DEV_FLAGS_NO_PM_RESET = (__force pci_dev_flags_t) (1 << 7),  };  enum pci_irq_reroute_variant { @@ -397,16 +400,10 @@ static inline int pci_channel_offline(struct pci_dev *pdev)  	return (pdev->error_state != pci_channel_io_normal);  } -struct pci_host_bridge_window { -	struct list_head list; -	struct resource *res;		/* host bridge aperture (CPU address) */ -	resource_size_t offset;		/* bus address + offset = CPU address */ -}; -  struct pci_host_bridge {  	struct device dev;  	struct pci_bus *bus;		/* root bus */ -	struct list_head windows;	/* pci_host_bridge_windows */ +	struct list_head windows;	/* resource_entry */  	void (*release_fn)(struct pci_host_bridge *);  	void *release_data;  }; @@ -562,6 +559,7 @@ static inline int pcibios_err_to_errno(int err)  /* Low-level architecture-dependent routines */  struct pci_ops { +	void __iomem *(*map_bus)(struct pci_bus *bus, unsigned int devfn, int where);  	int (*read)(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 *val);  	int (*write)(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 val);  }; @@ -859,6 +857,16 @@ int pci_bus_write_config_word(struct pci_bus *bus, unsigned int devfn,  			      int where, u16 val);  int pci_bus_write_config_dword(struct pci_bus *bus, unsigned int devfn,  			       int where, u32 val); + +int pci_generic_config_read(struct pci_bus *bus, unsigned int devfn, +			    int where, int size, u32 *val); +int pci_generic_config_write(struct pci_bus *bus, unsigned int devfn, +			    int where, int size, u32 val); +int pci_generic_config_read32(struct pci_bus *bus, unsigned int devfn, +			      int where, int size, u32 *val); +int pci_generic_config_write32(struct pci_bus *bus, unsigned int devfn, +			       int where, int size, u32 val); +  struct pci_ops *pci_bus_set_ops(struct pci_bus *bus, struct pci_ops *ops);  static inline int pci_read_config_byte(const struct pci_dev *dev, int where, u8 *val) @@ -1850,6 +1858,8 @@ static inline void pci_set_of_node(struct pci_dev *dev) { }  static inline void pci_release_of_node(struct pci_dev *dev) { }  static inline void pci_set_bus_of_node(struct pci_bus *bus) { }  static inline void pci_release_bus_of_node(struct pci_bus *bus) { } +static inline struct device_node * +pci_device_to_OF_node(const struct pci_dev *pdev) { return NULL; }  #endif  /* CONFIG_OF */  #ifdef CONFIG_EEH |