Commit bdeabccd authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

Merge branches 'acpi-ec', 'acpi-fan', 'acpi-video' and 'acpi-misc'

* acpi-ec:
  ACPI / EC: Deny write access unless requested by module param

* acpi-fan:
  ACPI / fan: Make struct dev_pm_ops const

* acpi-video:
  ACPI / video: remove unused device_decode array

* acpi-misc:
  ACPI / util: remove redundant check if element is NULL
  ACPI: Add acpi_force_32bit_fadt_addr option to force 32 bit FADT addresses
  drivers/acpi: make pmic/intel_pmic_crc.c explicitly non-modular
  drivers/acpi: make apei/ghes.c more explicitly non-modular
  drivers/acpi: make bgrt driver explicitly non-modular
...@@ -193,6 +193,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted. ...@@ -193,6 +193,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
(e.g. thinkpad_acpi, sony_acpi, etc.) instead (e.g. thinkpad_acpi, sony_acpi, etc.) instead
of the ACPI video.ko driver. of the ACPI video.ko driver.
acpi_force_32bit_fadt_addr
force FADT to use 32 bit addresses rather than the
64 bit X_* addresses. Some firmware have broken 64
bit addresses for force ACPI ignore these and use
the older legacy 32 bit addresses.
acpica_no_return_repair [HW, ACPI] acpica_no_return_repair [HW, ACPI]
Disable AML predefined validation mechanism Disable AML predefined validation mechanism
This mechanism can repair the evaluation result to make This mechanism can repair the evaluation result to make
......
...@@ -218,13 +218,6 @@ struct acpi_video_device { ...@@ -218,13 +218,6 @@ struct acpi_video_device {
struct thermal_cooling_device *cooling_dev; struct thermal_cooling_device *cooling_dev;
}; };
static const char device_decode[][30] = {
"motherboard VGA device",
"PCI VGA device",
"AGP VGA device",
"UNKNOWN",
};
static void acpi_video_device_notify(acpi_handle handle, u32 event, void *data); static void acpi_video_device_notify(acpi_handle handle, u32 event, void *data);
static void acpi_video_device_rebind(struct acpi_video_bus *video); static void acpi_video_device_rebind(struct acpi_video_bus *video);
static void acpi_video_device_bind(struct acpi_video_bus *video, static void acpi_video_device_bind(struct acpi_video_bus *video,
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> #include <linux/moduleparam.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/acpi.h> #include <linux/acpi.h>
#include <linux/io.h> #include <linux/io.h>
...@@ -79,6 +79,11 @@ ...@@ -79,6 +79,11 @@
((struct acpi_hest_generic_status *) \ ((struct acpi_hest_generic_status *) \
((struct ghes_estatus_node *)(estatus_node) + 1)) ((struct ghes_estatus_node *)(estatus_node) + 1))
/*
* This driver isn't really modular, however for the time being,
* continuing to use module_param is the easiest way to remain
* compatible with existing boot arg use cases.
*/
bool ghes_disable; bool ghes_disable;
module_param_named(disable, ghes_disable, bool, 0); module_param_named(disable, ghes_disable, bool, 0);
...@@ -1148,18 +1153,4 @@ static int __init ghes_init(void) ...@@ -1148,18 +1153,4 @@ static int __init ghes_init(void)
err: err:
return rc; return rc;
} }
device_initcall(ghes_init);
static void __exit ghes_exit(void)
{
platform_driver_unregister(&ghes_platform_driver);
ghes_estatus_pool_exit();
ghes_ioremap_exit();
}
module_init(ghes_init);
module_exit(ghes_exit);
MODULE_AUTHOR("Huang Ying");
MODULE_DESCRIPTION("APEI Generic Hardware Error Source support");
MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:GHES");
/* /*
* BGRT boot graphic support
* Authors: Matthew Garrett, Josh Triplett <josh@joshtriplett.org>
* Copyright 2012 Red Hat, Inc <mjg@redhat.com> * Copyright 2012 Red Hat, Inc <mjg@redhat.com>
* Copyright 2012 Intel Corporation * Copyright 2012 Intel Corporation
* *
...@@ -8,7 +10,6 @@ ...@@ -8,7 +10,6 @@
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/sysfs.h> #include <linux/sysfs.h>
...@@ -103,9 +104,4 @@ static int __init bgrt_init(void) ...@@ -103,9 +104,4 @@ static int __init bgrt_init(void)
kobject_put(bgrt_kobj); kobject_put(bgrt_kobj);
return ret; return ret;
} }
device_initcall(bgrt_init);
module_init(bgrt_init);
MODULE_AUTHOR("Matthew Garrett, Josh Triplett <josh@joshtriplett.org>");
MODULE_DESCRIPTION("BGRT boot graphic support");
MODULE_LICENSE("GPL");
...@@ -73,6 +73,9 @@ static ssize_t acpi_ec_write_io(struct file *f, const char __user *buf, ...@@ -73,6 +73,9 @@ static ssize_t acpi_ec_write_io(struct file *f, const char __user *buf,
loff_t init_off = *off; loff_t init_off = *off;
int err = 0; int err = 0;
if (!write_support)
return -EINVAL;
if (*off >= EC_SPACE_SIZE) if (*off >= EC_SPACE_SIZE)
return 0; return 0;
if (*off + count >= EC_SPACE_SIZE) { if (*off + count >= EC_SPACE_SIZE) {
......
...@@ -46,7 +46,7 @@ MODULE_DEVICE_TABLE(acpi, fan_device_ids); ...@@ -46,7 +46,7 @@ MODULE_DEVICE_TABLE(acpi, fan_device_ids);
#ifdef CONFIG_PM_SLEEP #ifdef CONFIG_PM_SLEEP
static int acpi_fan_suspend(struct device *dev); static int acpi_fan_suspend(struct device *dev);
static int acpi_fan_resume(struct device *dev); static int acpi_fan_resume(struct device *dev);
static struct dev_pm_ops acpi_fan_pm = { static const struct dev_pm_ops acpi_fan_pm = {
.resume = acpi_fan_resume, .resume = acpi_fan_resume,
.freeze = acpi_fan_suspend, .freeze = acpi_fan_suspend,
.thaw = acpi_fan_resume, .thaw = acpi_fan_resume,
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
*/ */
#include <linux/module.h> #include <linux/init.h>
#include <linux/acpi.h> #include <linux/acpi.h>
#include <linux/mfd/intel_soc_pmic.h> #include <linux/mfd/intel_soc_pmic.h>
#include <linux/regmap.h> #include <linux/regmap.h>
...@@ -205,7 +205,4 @@ static int __init intel_crc_pmic_opregion_driver_init(void) ...@@ -205,7 +205,4 @@ static int __init intel_crc_pmic_opregion_driver_init(void)
{ {
return platform_driver_register(&intel_crc_pmic_opregion_driver); return platform_driver_register(&intel_crc_pmic_opregion_driver);
} }
module_init(intel_crc_pmic_opregion_driver_init); device_initcall(intel_crc_pmic_opregion_driver_init);
MODULE_DESCRIPTION("CrystalCove ACPI operation region driver");
MODULE_LICENSE("GPL");
...@@ -486,3 +486,13 @@ static int __init acpi_force_table_verification_setup(char *s) ...@@ -486,3 +486,13 @@ static int __init acpi_force_table_verification_setup(char *s)
} }
early_param("acpi_force_table_verification", acpi_force_table_verification_setup); early_param("acpi_force_table_verification", acpi_force_table_verification_setup);
static int __init acpi_force_32bit_fadt_addr(char *s)
{
pr_info("Forcing 32 Bit FADT addresses\n");
acpi_gbl_use32_bit_fadt_addresses = TRUE;
return 0;
}
early_param("acpi_force_32bit_fadt_addr", acpi_force_32bit_fadt_addr);
...@@ -201,10 +201,6 @@ acpi_extract_package(union acpi_object *package, ...@@ -201,10 +201,6 @@ acpi_extract_package(union acpi_object *package,
u8 **pointer = NULL; u8 **pointer = NULL;
union acpi_object *element = &(package->package.elements[i]); union acpi_object *element = &(package->package.elements[i]);
if (!element) {
return AE_BAD_DATA;
}
switch (element->type) { switch (element->type) {
case ACPI_TYPE_INTEGER: case ACPI_TYPE_INTEGER:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment