| .. | .. |
|---|
| 458 | 458 | static int intel_hid_probe(struct platform_device *device) |
|---|
| 459 | 459 | { |
|---|
| 460 | 460 | acpi_handle handle = ACPI_HANDLE(&device->dev); |
|---|
| 461 | | - unsigned long long mode; |
|---|
| 461 | + unsigned long long mode, dummy; |
|---|
| 462 | 462 | struct intel_hid_priv *priv; |
|---|
| 463 | 463 | acpi_status status; |
|---|
| 464 | 464 | int err; |
|---|
| .. | .. |
|---|
| 510 | 510 | if (err) |
|---|
| 511 | 511 | goto err_remove_notify; |
|---|
| 512 | 512 | |
|---|
| 513 | | - if (priv->array) { |
|---|
| 514 | | - unsigned long long dummy; |
|---|
| 513 | + intel_button_array_enable(&device->dev, true); |
|---|
| 515 | 514 | |
|---|
| 516 | | - intel_button_array_enable(&device->dev, true); |
|---|
| 517 | | - |
|---|
| 518 | | - /* Call button load method to enable HID power button */ |
|---|
| 519 | | - if (!intel_hid_evaluate_method(handle, INTEL_HID_DSM_BTNL_FN, |
|---|
| 520 | | - &dummy)) { |
|---|
| 521 | | - dev_warn(&device->dev, |
|---|
| 522 | | - "failed to enable HID power button\n"); |
|---|
| 523 | | - } |
|---|
| 524 | | - } |
|---|
| 515 | + /* |
|---|
| 516 | + * Call button load method to enable HID power button |
|---|
| 517 | + * Always do this since it activates events on some devices without |
|---|
| 518 | + * a button array too. |
|---|
| 519 | + */ |
|---|
| 520 | + if (!intel_hid_evaluate_method(handle, INTEL_HID_DSM_BTNL_FN, &dummy)) |
|---|
| 521 | + dev_warn(&device->dev, "failed to enable HID power button\n"); |
|---|
| 525 | 522 | |
|---|
| 526 | 523 | device_init_wakeup(&device->dev, true); |
|---|
| 527 | 524 | /* |
|---|