diff options
| -rw-r--r-- | drivers/acpi/apei/ghes.c | 7 | ||||
| -rw-r--r-- | drivers/acpi/device_pm.c | 10 | ||||
| -rw-r--r-- | drivers/acpi/scan.c | 4 | ||||
| -rw-r--r-- | drivers/acpi/video.c | 16 | ||||
| -rw-r--r-- | drivers/platform/x86/hp-wmi.c | 2 |
5 files changed, 31 insertions, 8 deletions
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index 403baf4dffc1..fcd7d91cec34 100644 --- a/drivers/acpi/apei/ghes.c +++ b/drivers/acpi/apei/ghes.c | |||
| @@ -919,13 +919,14 @@ static int ghes_probe(struct platform_device *ghes_dev) | |||
| 919 | break; | 919 | break; |
| 920 | case ACPI_HEST_NOTIFY_EXTERNAL: | 920 | case ACPI_HEST_NOTIFY_EXTERNAL: |
| 921 | /* External interrupt vector is GSI */ | 921 | /* External interrupt vector is GSI */ |
| 922 | if (acpi_gsi_to_irq(generic->notify.vector, &ghes->irq)) { | 922 | rc = acpi_gsi_to_irq(generic->notify.vector, &ghes->irq); |
| 923 | if (rc) { | ||
| 923 | pr_err(GHES_PFX "Failed to map GSI to IRQ for generic hardware error source: %d\n", | 924 | pr_err(GHES_PFX "Failed to map GSI to IRQ for generic hardware error source: %d\n", |
| 924 | generic->header.source_id); | 925 | generic->header.source_id); |
| 925 | goto err_edac_unreg; | 926 | goto err_edac_unreg; |
| 926 | } | 927 | } |
| 927 | if (request_irq(ghes->irq, ghes_irq_func, | 928 | rc = request_irq(ghes->irq, ghes_irq_func, 0, "GHES IRQ", ghes); |
| 928 | 0, "GHES IRQ", ghes)) { | 929 | if (rc) { |
| 929 | pr_err(GHES_PFX "Failed to register IRQ for generic hardware error source: %d\n", | 930 | pr_err(GHES_PFX "Failed to register IRQ for generic hardware error source: %d\n", |
| 930 | generic->header.source_id); | 931 | generic->header.source_id); |
| 931 | goto err_edac_unreg; | 932 | goto err_edac_unreg; |
diff --git a/drivers/acpi/device_pm.c b/drivers/acpi/device_pm.c index bc493aa3af19..318fa32a141e 100644 --- a/drivers/acpi/device_pm.c +++ b/drivers/acpi/device_pm.c | |||
| @@ -278,11 +278,13 @@ int acpi_bus_init_power(struct acpi_device *device) | |||
| 278 | if (result) | 278 | if (result) |
| 279 | return result; | 279 | return result; |
| 280 | } else if (state == ACPI_STATE_UNKNOWN) { | 280 | } else if (state == ACPI_STATE_UNKNOWN) { |
| 281 | /* No power resources and missing _PSC? Try to force D0. */ | 281 | /* |
| 282 | * No power resources and missing _PSC? Cross fingers and make | ||
| 283 | * it D0 in hope that this is what the BIOS put the device into. | ||
| 284 | * [We tried to force D0 here by executing _PS0, but that broke | ||
| 285 | * Toshiba P870-303 in a nasty way.] | ||
| 286 | */ | ||
| 282 | state = ACPI_STATE_D0; | 287 | state = ACPI_STATE_D0; |
| 283 | result = acpi_dev_pm_explicit_set(device, state); | ||
| 284 | if (result) | ||
| 285 | return result; | ||
| 286 | } | 288 | } |
| 287 | device->power.state = state; | 289 | device->power.state = state; |
| 288 | return 0; | 290 | return 0; |
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index 44225cb15f3a..90c5759e1355 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c | |||
| @@ -740,6 +740,10 @@ static int acpi_bus_match(struct device *dev, struct device_driver *drv) | |||
| 740 | struct acpi_device *acpi_dev = to_acpi_device(dev); | 740 | struct acpi_device *acpi_dev = to_acpi_device(dev); |
| 741 | struct acpi_driver *acpi_drv = to_acpi_driver(drv); | 741 | struct acpi_driver *acpi_drv = to_acpi_driver(drv); |
| 742 | 742 | ||
| 743 | /* Skip ACPI device objects with scan handlers attached. */ | ||
| 744 | if (acpi_dev->handler) | ||
| 745 | return 0; | ||
| 746 | |||
| 743 | return acpi_dev->flags.match_driver | 747 | return acpi_dev->flags.match_driver |
| 744 | && !acpi_match_device_ids(acpi_dev, acpi_drv->ids); | 748 | && !acpi_match_device_ids(acpi_dev, acpi_drv->ids); |
| 745 | } | 749 | } |
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c index 5b32e15a65ce..5d7075d25700 100644 --- a/drivers/acpi/video.c +++ b/drivers/acpi/video.c | |||
| @@ -458,12 +458,28 @@ static struct dmi_system_id video_dmi_table[] __initdata = { | |||
| 458 | }, | 458 | }, |
| 459 | { | 459 | { |
| 460 | .callback = video_ignore_initial_backlight, | 460 | .callback = video_ignore_initial_backlight, |
| 461 | .ident = "HP Pavilion g6 Notebook PC", | ||
| 462 | .matches = { | ||
| 463 | DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), | ||
| 464 | DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion g6 Notebook PC"), | ||
| 465 | }, | ||
| 466 | }, | ||
| 467 | { | ||
| 468 | .callback = video_ignore_initial_backlight, | ||
| 461 | .ident = "HP 1000 Notebook PC", | 469 | .ident = "HP 1000 Notebook PC", |
| 462 | .matches = { | 470 | .matches = { |
| 463 | DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), | 471 | DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), |
| 464 | DMI_MATCH(DMI_PRODUCT_NAME, "HP 1000 Notebook PC"), | 472 | DMI_MATCH(DMI_PRODUCT_NAME, "HP 1000 Notebook PC"), |
| 465 | }, | 473 | }, |
| 466 | }, | 474 | }, |
| 475 | { | ||
| 476 | .callback = video_ignore_initial_backlight, | ||
| 477 | .ident = "HP Pavilion m4", | ||
| 478 | .matches = { | ||
| 479 | DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), | ||
| 480 | DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion m4 Notebook PC"), | ||
| 481 | }, | ||
| 482 | }, | ||
| 467 | {} | 483 | {} |
| 468 | }; | 484 | }; |
| 469 | 485 | ||
diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c index 8df0c5a21be2..d111c8687f9b 100644 --- a/drivers/platform/x86/hp-wmi.c +++ b/drivers/platform/x86/hp-wmi.c | |||
| @@ -703,7 +703,7 @@ static int hp_wmi_rfkill_setup(struct platform_device *device) | |||
| 703 | } | 703 | } |
| 704 | rfkill_init_sw_state(gps_rfkill, | 704 | rfkill_init_sw_state(gps_rfkill, |
| 705 | hp_wmi_get_sw_state(HPWMI_GPS)); | 705 | hp_wmi_get_sw_state(HPWMI_GPS)); |
| 706 | rfkill_set_hw_state(bluetooth_rfkill, | 706 | rfkill_set_hw_state(gps_rfkill, |
| 707 | hp_wmi_get_hw_state(HPWMI_GPS)); | 707 | hp_wmi_get_hw_state(HPWMI_GPS)); |
| 708 | err = rfkill_register(gps_rfkill); | 708 | err = rfkill_register(gps_rfkill); |
| 709 | if (err) | 709 | if (err) |
