diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-14 00:02:00 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-14 00:02:00 -0500 |
commit | 2f466d33f5f60542d3d82c0477de5863b22c94b9 (patch) | |
tree | 839972958941d55852a9af270b04af09e3147116 /include/linux/acpi.h | |
parent | f9300eaaac1ca300083ad41937923a90cc3a2394 (diff) | |
parent | eaaeb1cb33310dea6c3fa45d8bfc63e5a1d0a846 (diff) |
Merge tag 'pci-v3.13-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
Pull PCI changes from Bjorn Helgaas:
"Resource management
- Fix host bridge window coalescing (Alexey Neyman)
- Pass type, width, and prefetchability for window alignment (Wei Yang)
PCI device hotplug
- Convert acpiphp, acpiphp_ibm to dynamic debug (Lan Tianyu)
Power management
- Remove pci_pm_complete() (Liu Chuansheng)
MSI
- Fail initialization if device is not in PCI_D0 (Yijing Wang)
MPS (Max Payload Size)
- Use pcie_get_mps() and pcie_set_mps() to simplify code (Yijing Wang)
- Use pcie_set_readrq() to simplify code (Yijing Wang)
- Use cached pci_dev->pcie_mpss to simplify code (Yijing Wang)
SR-IOV
- Enable upstream bridges even for VFs on virtual buses (Bjorn Helgaas)
- Use pci_is_root_bus() to avoid catching virtual buses (Wei Yang)
Virtualization
- Add x86 MSI masking ops (Konrad Rzeszutek Wilk)
Freescale i.MX6
- Support i.MX6 PCIe controller (Sean Cross)
- Increase link startup timeout (Marek Vasut)
- Probe PCIe in fs_initcall() (Marek Vasut)
- Fix imprecise abort handler (Tim Harvey)
- Remove redundant of_match_ptr (Sachin Kamat)
Renesas R-Car
- Support Gen2 internal PCIe controller (Valentine Barshak)
Samsung Exynos
- Add MSI support (Jingoo Han)
- Turn off power when link fails (Jingoo Han)
- Add Jingoo Han as maintainer (Jingoo Han)
- Add clk_disable_unprepare() on error path (Wei Yongjun)
- Remove redundant of_match_ptr (Sachin Kamat)
Synopsys DesignWare
- Add irq_create_mapping() (Pratyush Anand)
- Add header guards (Seungwon Jeon)
Miscellaneous
- Enable native PCIe services by default on non-ACPI (Andrew Murray)
- Cleanup _OSC usage and messages (Bjorn Helgaas)
- Remove pcibios_last_bus boot option on non-x86 (Bjorn Helgaas)
- Convert bus code to use bus_, drv_, and dev_groups (Greg Kroah-Hartman)
- Remove unused pci_mem_start (Myron Stowe)
- Make sysfs functions static (Sachin Kamat)
- Warn on invalid return from driver probe (Stephen M. Cameron)
- Remove Intel Haswell D3 delays (Todd E Brandt)
- Call pci_set_master() in core if driver doesn't do it (Yinghai Lu)
- Use pci_is_pcie() to simplify code (Yijing Wang)
- Use PCIe capability accessors to simplify code (Yijing Wang)
- Use cached pci_dev->pcie_cap to simplify code (Yijing Wang)
- Removed unused "is_pcie" from struct pci_dev (Yijing Wang)
- Simplify sysfs CPU affinity implementation (Yijing Wang)"
* tag 'pci-v3.13-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (79 commits)
PCI: Enable upstream bridges even for VFs on virtual buses
PCI: Add pci_upstream_bridge()
PCI: Add x86_msi.msi_mask_irq() and msix_mask_irq()
PCI: Warn on driver probe return value greater than zero
PCI: Drop warning about drivers that don't use pci_set_master()
PCI: Workaround missing pci_set_master in pci drivers
powerpc/pci: Use pci_is_pcie() to simplify code [fix]
PCI: Update pcie_ports 'auto' behavior for non-ACPI platforms
PCI: imx6: Probe the PCIe in fs_initcall()
PCI: Add R-Car Gen2 internal PCI support
PCI: imx6: Remove redundant of_match_ptr
PCI: Report pci_pme_active() kmalloc failure
mn10300/PCI: Remove useless pcibios_last_bus
frv/PCI: Remove pcibios_last_bus
PCI: imx6: Increase link startup timeout
PCI: exynos: Remove redundant of_match_ptr
PCI: imx6: Fix imprecise abort handler
PCI: Fail MSI/MSI-X initialization if device is not in PCI_D0
PCI: imx6: Remove redundant dev_err() in imx6_pcie_probe()
x86/PCI: Coalesce multiple overlapping host bridge windows
...
Diffstat (limited to 'include/linux/acpi.h')
-rw-r--r-- | include/linux/acpi.h | 81 |
1 files changed, 37 insertions, 44 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 74c5a8e467e8..b0972c4ce81c 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
@@ -294,59 +294,52 @@ void __init acpi_nvs_nosave_s3(void); | |||
294 | #endif /* CONFIG_PM_SLEEP */ | 294 | #endif /* CONFIG_PM_SLEEP */ |
295 | 295 | ||
296 | struct acpi_osc_context { | 296 | struct acpi_osc_context { |
297 | char *uuid_str; /* uuid string */ | 297 | char *uuid_str; /* UUID string */ |
298 | int rev; | 298 | int rev; |
299 | struct acpi_buffer cap; /* arg2/arg3 */ | 299 | struct acpi_buffer cap; /* list of DWORD capabilities */ |
300 | struct acpi_buffer ret; /* free by caller if success */ | 300 | struct acpi_buffer ret; /* free by caller if success */ |
301 | }; | 301 | }; |
302 | 302 | ||
303 | #define OSC_QUERY_TYPE 0 | ||
304 | #define OSC_SUPPORT_TYPE 1 | ||
305 | #define OSC_CONTROL_TYPE 2 | ||
306 | |||
307 | /* _OSC DW0 Definition */ | ||
308 | #define OSC_QUERY_ENABLE 1 | ||
309 | #define OSC_REQUEST_ERROR 2 | ||
310 | #define OSC_INVALID_UUID_ERROR 4 | ||
311 | #define OSC_INVALID_REVISION_ERROR 8 | ||
312 | #define OSC_CAPABILITIES_MASK_ERROR 16 | ||
313 | |||
314 | acpi_status acpi_str_to_uuid(char *str, u8 *uuid); | 303 | acpi_status acpi_str_to_uuid(char *str, u8 *uuid); |
315 | acpi_status acpi_run_osc(acpi_handle handle, struct acpi_osc_context *context); | 304 | acpi_status acpi_run_osc(acpi_handle handle, struct acpi_osc_context *context); |
316 | 305 | ||
317 | /* platform-wide _OSC bits */ | 306 | /* Indexes into _OSC Capabilities Buffer (DWORDs 2 & 3 are device-specific) */ |
318 | #define OSC_SB_PAD_SUPPORT 1 | 307 | #define OSC_QUERY_DWORD 0 /* DWORD 1 */ |
319 | #define OSC_SB_PPC_OST_SUPPORT 2 | 308 | #define OSC_SUPPORT_DWORD 1 /* DWORD 2 */ |
320 | #define OSC_SB_PR3_SUPPORT 4 | 309 | #define OSC_CONTROL_DWORD 2 /* DWORD 3 */ |
321 | #define OSC_SB_HOTPLUG_OST_SUPPORT 8 | 310 | |
322 | #define OSC_SB_APEI_SUPPORT 16 | 311 | /* _OSC Capabilities DWORD 1: Query/Control and Error Returns (generic) */ |
312 | #define OSC_QUERY_ENABLE 0x00000001 /* input */ | ||
313 | #define OSC_REQUEST_ERROR 0x00000002 /* return */ | ||
314 | #define OSC_INVALID_UUID_ERROR 0x00000004 /* return */ | ||
315 | #define OSC_INVALID_REVISION_ERROR 0x00000008 /* return */ | ||
316 | #define OSC_CAPABILITIES_MASK_ERROR 0x00000010 /* return */ | ||
317 | |||
318 | /* Platform-Wide Capabilities _OSC: Capabilities DWORD 2: Support Field */ | ||
319 | #define OSC_SB_PAD_SUPPORT 0x00000001 | ||
320 | #define OSC_SB_PPC_OST_SUPPORT 0x00000002 | ||
321 | #define OSC_SB_PR3_SUPPORT 0x00000004 | ||
322 | #define OSC_SB_HOTPLUG_OST_SUPPORT 0x00000008 | ||
323 | #define OSC_SB_APEI_SUPPORT 0x00000010 | ||
324 | #define OSC_SB_CPC_SUPPORT 0x00000020 | ||
323 | 325 | ||
324 | extern bool osc_sb_apei_support_acked; | 326 | extern bool osc_sb_apei_support_acked; |
325 | 327 | ||
326 | /* PCI defined _OSC bits */ | 328 | /* PCI Host Bridge _OSC: Capabilities DWORD 2: Support Field */ |
327 | /* _OSC DW1 Definition (OS Support Fields) */ | 329 | #define OSC_PCI_EXT_CONFIG_SUPPORT 0x00000001 |
328 | #define OSC_EXT_PCI_CONFIG_SUPPORT 1 | 330 | #define OSC_PCI_ASPM_SUPPORT 0x00000002 |
329 | #define OSC_ACTIVE_STATE_PWR_SUPPORT 2 | 331 | #define OSC_PCI_CLOCK_PM_SUPPORT 0x00000004 |
330 | #define OSC_CLOCK_PWR_CAPABILITY_SUPPORT 4 | 332 | #define OSC_PCI_SEGMENT_GROUPS_SUPPORT 0x00000008 |
331 | #define OSC_PCI_SEGMENT_GROUPS_SUPPORT 8 | 333 | #define OSC_PCI_MSI_SUPPORT 0x00000010 |
332 | #define OSC_MSI_SUPPORT 16 | 334 | #define OSC_PCI_SUPPORT_MASKS 0x0000001f |
333 | #define OSC_PCI_SUPPORT_MASKS 0x1f | 335 | |
334 | 336 | /* PCI Host Bridge _OSC: Capabilities DWORD 3: Control Field */ | |
335 | /* _OSC DW1 Definition (OS Control Fields) */ | 337 | #define OSC_PCI_EXPRESS_NATIVE_HP_CONTROL 0x00000001 |
336 | #define OSC_PCI_EXPRESS_NATIVE_HP_CONTROL 1 | 338 | #define OSC_PCI_SHPC_NATIVE_HP_CONTROL 0x00000002 |
337 | #define OSC_SHPC_NATIVE_HP_CONTROL 2 | 339 | #define OSC_PCI_EXPRESS_PME_CONTROL 0x00000004 |
338 | #define OSC_PCI_EXPRESS_PME_CONTROL 4 | 340 | #define OSC_PCI_EXPRESS_AER_CONTROL 0x00000008 |
339 | #define OSC_PCI_EXPRESS_AER_CONTROL 8 | 341 | #define OSC_PCI_EXPRESS_CAPABILITY_CONTROL 0x00000010 |
340 | #define OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL 16 | 342 | #define OSC_PCI_CONTROL_MASKS 0x0000001f |
341 | |||
342 | #define OSC_PCI_CONTROL_MASKS (OSC_PCI_EXPRESS_NATIVE_HP_CONTROL | \ | ||
343 | OSC_SHPC_NATIVE_HP_CONTROL | \ | ||
344 | OSC_PCI_EXPRESS_PME_CONTROL | \ | ||
345 | OSC_PCI_EXPRESS_AER_CONTROL | \ | ||
346 | OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL) | ||
347 | |||
348 | #define OSC_PCI_NATIVE_HOTPLUG (OSC_PCI_EXPRESS_NATIVE_HP_CONTROL | \ | ||
349 | OSC_SHPC_NATIVE_HP_CONTROL) | ||
350 | 343 | ||
351 | extern acpi_status acpi_pci_osc_control_set(acpi_handle handle, | 344 | extern acpi_status acpi_pci_osc_control_set(acpi_handle handle, |
352 | u32 *mask, u32 req); | 345 | u32 *mask, u32 req); |