Merge branch 'acpi-tables'
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 25 Jul 2016 11:41:01 +0000 (13:41 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 25 Jul 2016 11:41:01 +0000 (13:41 +0200)
* acpi-tables:
  ACPI: Rename configfs.c to acpi_configfs.c to prevent link error
  ACPI: add support for loading SSDTs via configfs
  ACPI: add support for configfs
  efi / ACPI: load SSTDs from EFI variables
  spi / ACPI: add support for ACPI reconfigure notifications
  i2c / ACPI: add support for ACPI reconfigure notifications
  ACPI: add support for ACPI reconfiguration notifiers
  ACPI / scan: fix enumeration (visited) flags for bus rescans
  ACPI / documentation: add SSDT overlays documentation
  ACPI: ARM64: support for ACPI_TABLE_UPGRADE
  ACPI / tables: introduce ARCH_HAS_ACPI_TABLE_UPGRADE
  ACPI / tables: move arch-specific symbol to asm/acpi.h
  ACPI / tables: table upgrade: refactor function definitions
  ACPI / tables: table upgrade: use cacheable map for tables

Conflicts:
arch/arm64/include/asm/acpi.h

1  2 
MAINTAINERS
arch/arm64/include/asm/acpi.h
arch/x86/include/asm/acpi.h
drivers/acpi/Kconfig
include/linux/acpi.h

diff --combined MAINTAINERS
@@@ -288,6 -288,7 +288,7 @@@ F: include/linux/acpi.
  F:    include/acpi/
  F:    Documentation/acpi/
  F:    Documentation/ABI/testing/sysfs-bus-acpi
+ F:    Documentation/ABI/testing/configfs-acpi
  F:    drivers/pci/*acpi*
  F:    drivers/pci/*/*acpi*
  F:    drivers/pci/*/*/*acpi*
@@@ -595,10 -596,6 +596,10 @@@ S:       Odd Fixe
  L:    linux-alpha@vger.kernel.org
  F:    arch/alpha/
  
 +ALPS PS/2 TOUCHPAD DRIVER
 +R:    Pali Rohár <pali.rohar@gmail.com>
 +F:    drivers/input/mouse/alps.*
 +
  ALTERA MAILBOX DRIVER
  M:    Ley Foon Tan <lftan@altera.com>
  L:    nios2-dev@lists.rocketboards.org (moderated for non-subscribers)
@@@ -1694,6 -1691,8 +1695,6 @@@ S:      Maintaine
  F:    drivers/edac/altera_edac.
  
  ARM/STI ARCHITECTURE
 -M:    Srinivas Kandagatla <srinivas.kandagatla@gmail.com>
 -M:    Maxime Coquelin <maxime.coquelin@st.com>
  M:    Patrice Chotard <patrice.chotard@st.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    kernel@stlinux.com
@@@ -1726,7 -1725,6 +1727,7 @@@ F:      drivers/ata/ahci_st.
  
  ARM/STM32 ARCHITECTURE
  M:    Maxime Coquelin <mcoquelin.stm32@gmail.com>
 +M:    Alexandre Torgue <alexandre.torgue@st.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/stm32.git
@@@ -2779,9 -2777,9 +2780,9 @@@ F:      include/net/caif
  F:    net/caif/
  
  CALGARY x86-64 IOMMU
 -M:    Muli Ben-Yehuda <muli@il.ibm.com>
 -M:    "Jon D. Mason" <jdmason@kudzu.us>
 -L:    discuss@x86-64.org
 +M:    Muli Ben-Yehuda <mulix@mulix.org>
 +M:    Jon Mason <jdmason@kudzu.us>
 +L:    iommu@lists.linux-foundation.org
  S:    Maintained
  F:    arch/x86/kernel/pci-calgary_64.c
  F:    arch/x86/kernel/tce_64.c
@@@ -4476,7 -4474,7 +4477,7 @@@ S:      Orpha
  F:    fs/efs/
  
  EHEA (IBM pSeries eHEA 10Gb ethernet adapter) DRIVER
 -M:    Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
 +M:    Douglas Miller <dougmill@linux.vnet.ibm.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ethernet/ibm/ehea/
@@@ -7423,7 -7421,7 +7424,7 @@@ F:      drivers/scsi/megaraid.
  F:    drivers/scsi/megaraid/
  
  MELLANOX ETHERNET DRIVER (mlx4_en)
 -M:    Eugenia Emantayev <eugenia@mellanox.com>
 +M:    Tariq Toukan <tariqt@mellanox.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  W:    http://www.mellanox.com
@@@ -7475,7 -7473,6 +7476,7 @@@ Q:      http://patchwork.ozlabs.org/project/
  T:    git git://git.infradead.org/linux-mtd.git
  T:    git git://git.infradead.org/l2-mtd.git
  S:    Maintained
 +F:    Documentation/devicetree/bindings/mtd/
  F:    drivers/mtd/
  F:    include/linux/mtd/
  F:    include/uapi/mtd/
@@@ -8963,7 -8960,6 +8964,7 @@@ L:      linux-gpio@vger.kernel.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git
  S:    Maintained
  F:    Documentation/devicetree/bindings/pinctrl/
 +F:    Documentation/pinctrl.txt
  F:    drivers/pinctrl/
  F:    include/linux/pinctrl/
  
@@@ -113,12 -113,6 +113,14 @@@ static inline const char *acpi_get_enab
  pgprot_t arch_apei_get_mem_attribute(phys_addr_t addr);
  #endif
  
 +#ifdef CONFIG_ACPI_NUMA
 +int arm64_acpi_numa_init(void);
 +int acpi_numa_get_nid(unsigned int cpu, u64 hwid);
 +#else
 +static inline int arm64_acpi_numa_init(void) { return -ENOSYS; }
 +static inline int acpi_numa_get_nid(unsigned int cpu, u64 hwid) { return NUMA_NO_NODE; }
 +#endif /* CONFIG_ACPI_NUMA */
 +
+ #define ACPI_TABLE_UPGRADE_MAX_PHYS MEMBLOCK_ALLOC_ACCESSIBLE
  #endif /*_ASM_ACPI_H*/
@@@ -145,6 -145,7 +145,6 @@@ static inline void disable_acpi(void) 
  #define ARCH_HAS_POWER_INIT   1
  
  #ifdef CONFIG_ACPI_NUMA
 -extern int acpi_numa;
  extern int x86_acpi_numa_init(void);
  #endif /* CONFIG_ACPI_NUMA */
  
@@@ -169,4 -170,6 +169,6 @@@ static inline pgprot_t arch_apei_get_me
  }
  #endif
  
+ #define ACPI_TABLE_UPGRADE_MAX_PHYS (max_low_pfn_mapped << PAGE_SHIFT)
  #endif /* _ASM_X86_ACPI_H */
diff --combined drivers/acpi/Kconfig
@@@ -291,8 -291,8 +291,8 @@@ config ACPI_THERMA
  config ACPI_NUMA
        bool "NUMA support"
        depends on NUMA
 -      depends on (X86 || IA64)
 -      default y if IA64_GENERIC || IA64_SGI_SN2
 +      depends on (X86 || IA64 || ARM64)
 +      default y if IA64_GENERIC || IA64_SGI_SN2 || ARM64
  
  config ACPI_CUSTOM_DSDT_FILE
        string "Custom DSDT Table file to include"
@@@ -311,9 -311,12 +311,12 @@@ config ACPI_CUSTOM_DSD
        bool
        default ACPI_CUSTOM_DSDT_FILE != ""
  
+ config ARCH_HAS_ACPI_TABLE_UPGRADE
+       def_bool n
  config ACPI_TABLE_UPGRADE
        bool "Allow upgrading ACPI tables via initrd"
-       depends on BLK_DEV_INITRD && X86
+       depends on BLK_DEV_INITRD && ARCH_HAS_ACPI_TABLE_UPGRADE
        default y
        help
          This option provides functionality to upgrade arbitrary ACPI tables
@@@ -521,4 -524,12 +524,12 @@@ config XPOWER_PMIC_OPREGIO
  
  endif
  
+ config ACPI_CONFIGFS
+       tristate "ACPI configfs support"
+       select CONFIGFS_FS
+       help
+         Select this option to enable support for ACPI configuration from
+         userspace. The configurable ACPI groups will be visible under
+         /config/acpi, assuming configfs is mounted under /config.
  endif # ACPI
diff --combined include/linux/acpi.h
@@@ -208,7 -208,6 +208,6 @@@ void acpi_boot_table_init (void)
  int acpi_mps_check (void);
  int acpi_numa_init (void);
  
- void early_acpi_table_init(void *data, size_t size);
  int acpi_table_init (void);
  int acpi_table_parse(char *id, acpi_tbl_table_handler handler);
  int __init acpi_parse_entries(char *id, unsigned long table_size,
@@@ -232,26 -231,12 +231,26 @@@ int acpi_table_parse_madt(enum acpi_mad
  int acpi_parse_mcfg (struct acpi_table_header *header);
  void acpi_table_print_madt_entry (struct acpi_subtable_header *madt);
  
 -/* the following four functions are architecture-dependent */
 +/* the following numa functions are architecture-dependent */
  void acpi_numa_slit_init (struct acpi_table_slit *slit);
 +
 +#if defined(CONFIG_X86) || defined(CONFIG_IA64)
  void acpi_numa_processor_affinity_init (struct acpi_srat_cpu_affinity *pa);
 +#else
 +static inline void
 +acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa) { }
 +#endif
 +
  void acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa);
 +
 +#ifdef CONFIG_ARM64
 +void acpi_numa_gicc_affinity_init(struct acpi_srat_gicc_affinity *pa);
 +#else
 +static inline void
 +acpi_numa_gicc_affinity_init(struct acpi_srat_gicc_affinity *pa) { }
 +#endif
 +
  int acpi_numa_memory_affinity_init (struct acpi_srat_mem_affinity *ma);
 -void acpi_numa_arch_fixup(void);
  
  #ifndef PHYS_CPUID_INVALID
  typedef u32 phys_cpuid_t;
@@@ -546,6 -531,24 +545,24 @@@ void acpi_walk_dep_device_list(acpi_han
  struct platform_device *acpi_create_platform_device(struct acpi_device *);
  #define ACPI_PTR(_ptr)        (_ptr)
  
+ static inline void acpi_device_set_enumerated(struct acpi_device *adev)
+ {
+       adev->flags.visited = true;
+ }
+ static inline void acpi_device_clear_enumerated(struct acpi_device *adev)
+ {
+       adev->flags.visited = false;
+ }
+ enum acpi_reconfig_event  {
+       ACPI_RECONFIG_DEVICE_ADD = 0,
+       ACPI_RECONFIG_DEVICE_REMOVE,
+ };
+ int acpi_reconfig_notifier_register(struct notifier_block *nb);
+ int acpi_reconfig_notifier_unregister(struct notifier_block *nb);
  #else /* !CONFIG_ACPI */
  
  #define acpi_disabled 1
@@@ -602,7 -605,6 +619,6 @@@ static inline const char *acpi_dev_name
        return NULL;
  }
  
- static inline void early_acpi_table_init(void *data, size_t size) { }
  static inline void acpi_early_init(void) { }
  static inline void acpi_subsystem_init(void) { }
  
@@@ -692,6 -694,24 +708,24 @@@ static inline enum dev_dma_attr acpi_ge
  
  #define ACPI_PTR(_ptr)        (NULL)
  
+ static inline void acpi_device_set_enumerated(struct acpi_device *adev)
+ {
+ }
+ static inline void acpi_device_clear_enumerated(struct acpi_device *adev)
+ {
+ }
+ static inline int acpi_reconfig_notifier_register(struct notifier_block *nb)
+ {
+       return -EINVAL;
+ }
+ static inline int acpi_reconfig_notifier_unregister(struct notifier_block *nb)
+ {
+       return -EINVAL;
+ }
  #endif        /* !CONFIG_ACPI */
  
  #ifdef CONFIG_ACPI
@@@ -1011,4 -1031,10 +1045,10 @@@ static inline struct fwnode_handle *acp
  #define acpi_probe_device_table(t)    ({ int __r = 0; __r;})
  #endif
  
+ #ifdef CONFIG_ACPI_TABLE_UPGRADE
+ void acpi_table_upgrade(void);
+ #else
+ static inline void acpi_table_upgrade(void) { }
+ #endif
  #endif        /*_LINUX_ACPI_H*/