Contributors: 24
Author |
Tokens |
Token Proportion |
Commits |
Commit Proportion |
Jiang Liu |
271 |
39.11% |
5 |
10.64% |
Rafael J. Wysocki |
107 |
15.44% |
9 |
19.15% |
Kenji Kaneshige |
61 |
8.80% |
7 |
14.89% |
Yinghai Lu |
57 |
8.23% |
3 |
6.38% |
Jiri Slaby |
45 |
6.49% |
1 |
2.13% |
Tomasz Nowicki |
24 |
3.46% |
2 |
4.26% |
Kuppuswamy Sathyanarayanan |
23 |
3.32% |
1 |
2.13% |
Dely Sy |
19 |
2.74% |
1 |
2.13% |
Len Brown |
17 |
2.45% |
2 |
4.26% |
Shaohua Li |
12 |
1.73% |
1 |
2.13% |
Aaron Lu |
12 |
1.73% |
2 |
4.26% |
Takayoshi Kouchi |
10 |
1.44% |
1 |
2.13% |
Krzysztof Wilczynski |
5 |
0.72% |
1 |
2.13% |
Alexander Chiang |
5 |
0.72% |
1 |
2.13% |
Rui Zhang |
5 |
0.72% |
1 |
2.13% |
Linus Torvalds (pre-git) |
4 |
0.58% |
1 |
2.13% |
Andrew Patterson |
3 |
0.43% |
1 |
2.13% |
Benjamin Herrenschmidt |
3 |
0.43% |
1 |
2.13% |
Andy Shevchenko |
2 |
0.29% |
1 |
2.13% |
Mitch A Williams |
2 |
0.29% |
1 |
2.13% |
Yu Zhao |
2 |
0.29% |
1 |
2.13% |
David Brownell |
2 |
0.29% |
1 |
2.13% |
Rob Herring |
1 |
0.14% |
1 |
2.13% |
Greg Kroah-Hartman |
1 |
0.14% |
1 |
2.13% |
Total |
693 |
|
47 |
|
/* SPDX-License-Identifier: GPL-2.0 */
/*
* File pci-acpi.h
*
* Copyright (C) 2004 Intel
* Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
*/
#ifndef _PCI_ACPI_H_
#define _PCI_ACPI_H_
#include <linux/acpi.h>
#ifdef CONFIG_ACPI
extern acpi_status pci_acpi_add_bus_pm_notifier(struct acpi_device *dev);
static inline acpi_status pci_acpi_remove_bus_pm_notifier(struct acpi_device *dev)
{
return acpi_remove_pm_notifier(dev);
}
extern acpi_status pci_acpi_add_pm_notifier(struct acpi_device *dev,
struct pci_dev *pci_dev);
static inline acpi_status pci_acpi_remove_pm_notifier(struct acpi_device *dev)
{
return acpi_remove_pm_notifier(dev);
}
extern phys_addr_t acpi_pci_root_get_mcfg_addr(acpi_handle handle);
struct pci_ecam_ops;
extern int pci_mcfg_lookup(struct acpi_pci_root *root, struct resource *cfgres,
const struct pci_ecam_ops **ecam_ops);
static inline acpi_handle acpi_find_root_bridge_handle(struct pci_dev *pdev)
{
struct pci_bus *pbus = pdev->bus;
/* Find a PCI root bus */
while (!pci_is_root_bus(pbus))
pbus = pbus->parent;
return ACPI_HANDLE(pbus->bridge);
}
static inline acpi_handle acpi_pci_get_bridge_handle(struct pci_bus *pbus)
{
struct device *dev;
if (pci_is_root_bus(pbus))
dev = pbus->bridge;
else {
/* If pbus is a virtual bus, there is no bridge to it */
if (!pbus->self)
return NULL;
dev = &pbus->self->dev;
}
return ACPI_HANDLE(dev);
}
struct acpi_pci_root;
struct acpi_pci_root_ops;
struct acpi_pci_root_info {
struct acpi_pci_root *root;
struct acpi_device *bridge;
struct acpi_pci_root_ops *ops;
struct list_head resources;
char name[16];
};
struct acpi_pci_root_ops {
struct pci_ops *pci_ops;
int (*init_info)(struct acpi_pci_root_info *info);
void (*release_info)(struct acpi_pci_root_info *info);
int (*prepare_resources)(struct acpi_pci_root_info *info);
};
extern int acpi_pci_probe_root_resources(struct acpi_pci_root_info *info);
extern struct pci_bus *acpi_pci_root_create(struct acpi_pci_root *root,
struct acpi_pci_root_ops *ops,
struct acpi_pci_root_info *info,
void *sd);
void acpi_pci_add_bus(struct pci_bus *bus);
void acpi_pci_remove_bus(struct pci_bus *bus);
#ifdef CONFIG_PCI
void pci_acpi_setup(struct device *dev, struct acpi_device *adev);
void pci_acpi_cleanup(struct device *dev, struct acpi_device *adev);
#else
static inline void pci_acpi_setup(struct device *dev, struct acpi_device *adev) {}
static inline void pci_acpi_cleanup(struct device *dev, struct acpi_device *adev) {}
#endif
#ifdef CONFIG_ACPI_PCI_SLOT
void acpi_pci_slot_init(void);
void acpi_pci_slot_enumerate(struct pci_bus *bus);
void acpi_pci_slot_remove(struct pci_bus *bus);
#else
static inline void acpi_pci_slot_init(void) { }
static inline void acpi_pci_slot_enumerate(struct pci_bus *bus) { }
static inline void acpi_pci_slot_remove(struct pci_bus *bus) { }
#endif
#ifdef CONFIG_HOTPLUG_PCI_ACPI
void acpiphp_init(void);
void acpiphp_enumerate_slots(struct pci_bus *bus);
void acpiphp_remove_slots(struct pci_bus *bus);
void acpiphp_check_host_bridge(struct acpi_device *adev);
#else
static inline void acpiphp_init(void) { }
static inline void acpiphp_enumerate_slots(struct pci_bus *bus) { }
static inline void acpiphp_remove_slots(struct pci_bus *bus) { }
static inline void acpiphp_check_host_bridge(struct acpi_device *adev) { }
#endif
extern const guid_t pci_acpi_dsm_guid;
/* _DSM Definitions for PCI */
#define DSM_PCI_PRESERVE_BOOT_CONFIG 0x05
#define DSM_PCI_DEVICE_NAME 0x07
#define DSM_PCI_POWER_ON_RESET_DELAY 0x08
#define DSM_PCI_DEVICE_READINESS_DURATIONS 0x09
#ifdef CONFIG_PCIE_EDR
void pci_acpi_add_edr_notifier(struct pci_dev *pdev);
void pci_acpi_remove_edr_notifier(struct pci_dev *pdev);
#else
static inline void pci_acpi_add_edr_notifier(struct pci_dev *pdev) { }
static inline void pci_acpi_remove_edr_notifier(struct pci_dev *pdev) { }
#endif /* CONFIG_PCIE_EDR */
int pci_acpi_set_companion_lookup_hook(struct acpi_device *(*func)(struct pci_dev *));
void pci_acpi_clear_companion_lookup_hook(void);
#else /* CONFIG_ACPI */
static inline void acpi_pci_add_bus(struct pci_bus *bus) { }
static inline void acpi_pci_remove_bus(struct pci_bus *bus) { }
#endif /* CONFIG_ACPI */
#endif /* _PCI_ACPI_H_ */