Loading arch/x86/kernel/acpi/boot.c +11 −0 Original line number Diff line number Diff line Loading @@ -1359,6 +1359,17 @@ static void __init acpi_process_madt(void) "Invalid BIOS MADT, disabling ACPI\n"); disable_acpi(); } } else { /* * ACPI found no MADT, and so ACPI wants UP PIC mode. * In the event an MPS table was found, forget it. * Boot with "acpi=off" to use MPS on such a system. */ if (smp_found_config) { printk(KERN_WARNING PREFIX "No APIC-table, disabling MPS\n"); smp_found_config = 0; } } #endif return; Loading drivers/acpi/ec.c +22 −21 Original line number Diff line number Diff line Loading @@ -982,9 +982,9 @@ static const struct acpi_device_id ec_device_ids[] = { int __init acpi_ec_ecdt_probe(void) { int ret; acpi_status status; struct acpi_table_ecdt *ecdt_ptr; acpi_handle dummy; boot_ec = make_acpi_ec(); if (!boot_ec) Loading @@ -1010,10 +1010,13 @@ int __init acpi_ec_ecdt_probe(void) boot_ec->gpe = ecdt_ptr->gpe; boot_ec->handle = ACPI_ROOT_OBJECT; acpi_get_handle(ACPI_ROOT_OBJECT, ecdt_ptr->id, &boot_ec->handle); } else { /* Add some basic check against completely broken table */ if (boot_ec->data_addr != boot_ec->command_addr) goto install; /* fall through */ } /* This workaround is needed only on some broken machines, * which require early EC, but fail to provide ECDT */ acpi_handle x; printk(KERN_DEBUG PREFIX "Look up EC in DSDT\n"); status = acpi_get_devices(ec_device_ids[0].id, ec_parse_device, boot_ec, NULL); Loading @@ -1024,12 +1027,10 @@ int __init acpi_ec_ecdt_probe(void) * which needs it, has fake EC._INI method, so use it as flag. * Keep boot_ec struct as it will be needed soon. */ if (ACPI_FAILURE(acpi_get_handle(boot_ec->handle, "_INI", &x))) if (ACPI_FAILURE(acpi_get_handle(boot_ec->handle, "_INI", &dummy))) return -ENODEV; } ret = ec_install_handlers(boot_ec); if (!ret) { install: if (!ec_install_handlers(boot_ec)) { first_ec = boot_ec; return 0; } Loading drivers/acpi/video.c +15 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ #include <linux/backlight.h> #include <linux/thermal.h> #include <linux/video_output.h> #include <linux/sort.h> #include <asm/uaccess.h> #include <acpi/acpi_bus.h> Loading Loading @@ -625,6 +626,16 @@ acpi_video_bus_DOS(struct acpi_video_bus *video, int bios_flag, int lcd_flag) return status; } /* * Simple comparison function used to sort backlight levels. */ static int acpi_video_cmp_level(const void *a, const void *b) { return *(int *)a - *(int *)b; } /* * Arg: * device : video output device (LCD, CRT, ..) Loading Loading @@ -676,6 +687,10 @@ acpi_video_init_brightness(struct acpi_video_device *device) count++; } /* don't sort the first two brightness levels */ sort(&br->levels[2], count - 2, sizeof(br->levels[2]), acpi_video_cmp_level, NULL); if (count < 2) goto out_free_levels; Loading Loading
arch/x86/kernel/acpi/boot.c +11 −0 Original line number Diff line number Diff line Loading @@ -1359,6 +1359,17 @@ static void __init acpi_process_madt(void) "Invalid BIOS MADT, disabling ACPI\n"); disable_acpi(); } } else { /* * ACPI found no MADT, and so ACPI wants UP PIC mode. * In the event an MPS table was found, forget it. * Boot with "acpi=off" to use MPS on such a system. */ if (smp_found_config) { printk(KERN_WARNING PREFIX "No APIC-table, disabling MPS\n"); smp_found_config = 0; } } #endif return; Loading
drivers/acpi/ec.c +22 −21 Original line number Diff line number Diff line Loading @@ -982,9 +982,9 @@ static const struct acpi_device_id ec_device_ids[] = { int __init acpi_ec_ecdt_probe(void) { int ret; acpi_status status; struct acpi_table_ecdt *ecdt_ptr; acpi_handle dummy; boot_ec = make_acpi_ec(); if (!boot_ec) Loading @@ -1010,10 +1010,13 @@ int __init acpi_ec_ecdt_probe(void) boot_ec->gpe = ecdt_ptr->gpe; boot_ec->handle = ACPI_ROOT_OBJECT; acpi_get_handle(ACPI_ROOT_OBJECT, ecdt_ptr->id, &boot_ec->handle); } else { /* Add some basic check against completely broken table */ if (boot_ec->data_addr != boot_ec->command_addr) goto install; /* fall through */ } /* This workaround is needed only on some broken machines, * which require early EC, but fail to provide ECDT */ acpi_handle x; printk(KERN_DEBUG PREFIX "Look up EC in DSDT\n"); status = acpi_get_devices(ec_device_ids[0].id, ec_parse_device, boot_ec, NULL); Loading @@ -1024,12 +1027,10 @@ int __init acpi_ec_ecdt_probe(void) * which needs it, has fake EC._INI method, so use it as flag. * Keep boot_ec struct as it will be needed soon. */ if (ACPI_FAILURE(acpi_get_handle(boot_ec->handle, "_INI", &x))) if (ACPI_FAILURE(acpi_get_handle(boot_ec->handle, "_INI", &dummy))) return -ENODEV; } ret = ec_install_handlers(boot_ec); if (!ret) { install: if (!ec_install_handlers(boot_ec)) { first_ec = boot_ec; return 0; } Loading
drivers/acpi/video.c +15 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ #include <linux/backlight.h> #include <linux/thermal.h> #include <linux/video_output.h> #include <linux/sort.h> #include <asm/uaccess.h> #include <acpi/acpi_bus.h> Loading Loading @@ -625,6 +626,16 @@ acpi_video_bus_DOS(struct acpi_video_bus *video, int bios_flag, int lcd_flag) return status; } /* * Simple comparison function used to sort backlight levels. */ static int acpi_video_cmp_level(const void *a, const void *b) { return *(int *)a - *(int *)b; } /* * Arg: * device : video output device (LCD, CRT, ..) Loading Loading @@ -676,6 +687,10 @@ acpi_video_init_brightness(struct acpi_video_device *device) count++; } /* don't sort the first two brightness levels */ sort(&br->levels[2], count - 2, sizeof(br->levels[2]), acpi_video_cmp_level, NULL); if (count < 2) goto out_free_levels; Loading