Pull x86 platform driver fixes from Andy Shevchenko: - Users of Intel P-Unit IPC driver might be surprised by harmless warning. Thus, switch to API which doesn't issue a warning at all. - I²C multi-instantiate driver continues to add slave devices even when IRQ resource is not found. For devices in the market IRQ resource is mandatory, so, fail the ->probe() of the parent driver to avoid slaves being probed. - Avoid compiler warning due to unused variable in Classmate laptop driver. * tag 'platform-drivers-x86-v5.4-3' of git://git.infradead.org/linux-platform-drivers-x86: platform/x86: i2c-multi-instantiate: Fail the probe if no IRQ provided platform/x86: intel_punit_ipc: Avoid error message when retrieving IRQ platform/x86: classmate-laptop: remove unused variable
Unified · Split
| @@ -420,12 +420,6 @@ failed_sensitivity: · 419 unmodified lines | |||
| 420 | 420 | ||
| 421 | static int cmpc_accel_remove_v4(struct acpi_device *acpi) | 421 | static int cmpc_accel_remove_v4(struct acpi_device *acpi) |
| 422 | { | 422 | { |
| 423 | struct input_dev *inputdev; | ||
| 424 | struct cmpc_accel *accel; | ||
| 425 | |||
| 426 | inputdev = dev_get_drvdata(&acpi->dev); | ||
| 427 | accel = dev_get_drvdata(&inputdev->dev); | ||
| 428 | |||
| 429 | device_remove_file(&acpi->dev, &cmpc_accel_sensitivity_attr_v4); | 423 | device_remove_file(&acpi->dev, &cmpc_accel_sensitivity_attr_v4); |
| 430 | device_remove_file(&acpi->dev, &cmpc_accel_g_select_attr_v4); | 424 | device_remove_file(&acpi->dev, &cmpc_accel_g_select_attr_v4); |
| 431 | return cmpc_remove_acpi_notify_device(acpi); | 425 | return cmpc_remove_acpi_notify_device(acpi); |
| @@ -656,12 +650,6 @@ failed_file: · 224 unmodified lines | |||
| 656 | 650 | ||
| 657 | static int cmpc_accel_remove(struct acpi_device *acpi) | 651 | static int cmpc_accel_remove(struct acpi_device *acpi) |
| 658 | { | 652 | { |
| 659 | struct input_dev *inputdev; | ||
| 660 | struct cmpc_accel *accel; | ||
| 661 | |||
| 662 | inputdev = dev_get_drvdata(&acpi->dev); | ||
| 663 | accel = dev_get_drvdata(&inputdev->dev); | ||
| 664 | |||
| 665 | device_remove_file(&acpi->dev, &cmpc_accel_sensitivity_attr); | 653 | device_remove_file(&acpi->dev, &cmpc_accel_sensitivity_attr); |
| 666 | return cmpc_remove_acpi_notify_device(acpi); | 654 | return cmpc_remove_acpi_notify_device(acpi); |
| 667 | } | 655 | } |
| @@ -108,6 +108,7 @@ static int i2c_multi_inst_probe(struct platform_device *pdev) · 107 unmodified lines | |||
| 108 | if (ret < 0) { | 108 | if (ret < 0) { |
| 109 | dev_dbg(dev, "Error requesting irq at index %d: %d\n", | 109 | dev_dbg(dev, "Error requesting irq at index %d: %d\n", |
| 110 | inst_data[i].irq_idx, ret); | 110 | inst_data[i].irq_idx, ret); |
| 111 | goto error; | ||
| 111 | } | 112 | } |
| 112 | board_info.irq = ret; | 113 | board_info.irq = ret; |
| 113 | break; | 114 | break; |
| @@ -293,9 +293,8 @@ static int intel_punit_ipc_probe(struct platform_device *pdev) · 292 unmodified lines | |||
| 293 | 293 | ||
| 294 | platform_set_drvdata(pdev, punit_ipcdev); | 294 | platform_set_drvdata(pdev, punit_ipcdev); |
| 295 | 295 | ||
| 296 | irq = platform_get_irq(pdev, 0); | 296 | irq = platform_get_irq_optional(pdev, 0); |
| 297 | if (irq < 0) { | 297 | if (irq < 0) { |
| 298 | punit_ipcdev->irq = 0; | ||
| 299 | dev_warn(&pdev->dev, "Invalid IRQ, using polling mode\n"); | 298 | dev_warn(&pdev->dev, "Invalid IRQ, using polling mode\n"); |
| 300 | } else { | 299 | } else { |
| 301 | ret = devm_request_irq(&pdev->dev, irq, intel_punit_ioc, | 300 | ret = devm_request_irq(&pdev->dev, irq, intel_punit_ioc, |