From ff7f85e35479243e86c31726bb2c54b24fef07cd Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Wed, 5 Apr 2023 15:27:15 -0500 Subject: iio: adc: ad7292: Add explicit include for of.h With linux/acpi.h no longer implicitly including of.h, add an explicit include of of.h to fix the following error: drivers/iio/adc/ad7292.c:307:9: error: implicit declaration of function 'for_each_available_child_of_node'; did you mean 'fwnode_for_each_available_child_node'? [-Werror=implicit-function-declaration] Acked-by: Jonathan Cameron Acked-by: Marcelo Schmitt Reviewed-by: Jacob Keller Reviewed-by: Greg Kroah-Hartman Signed-off-by: Rob Herring Signed-off-by: Rafael J. Wysocki --- drivers/iio/adc/ad7292.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/iio/adc/ad7292.c b/drivers/iio/adc/ad7292.c index a2f9fda25ff3..cccacec5db6d 100644 --- a/drivers/iio/adc/ad7292.c +++ b/drivers/iio/adc/ad7292.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include -- cgit v1.2.3-58-ga151 From 98aeb3b0b6bd2704b2c687b084eeebdee49b073b Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Wed, 5 Apr 2023 15:27:16 -0500 Subject: staging: iio: resolver: ad2s1210: Add explicit include for of.h With linux/acpi.h no longer implicitly including of.h, add an explicit include of of.h to fix the following error: drivers/staging/iio/resolver/ad2s1210.c:706:21: error: implicit declaration of function 'of_match_ptr' is invalid in C99 [-Werror,-Wimplicit-function-declaration] Acked-by: Jonathan Cameron Reviewed-by: Jacob Keller Reviewed-by: Greg Kroah-Hartman Signed-off-by: Rob Herring Signed-off-by: Rafael J. Wysocki --- drivers/staging/iio/resolver/ad2s1210.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/iio/resolver/ad2s1210.c b/drivers/staging/iio/resolver/ad2s1210.c index e4cf42438487..eb364639fa58 100644 --- a/drivers/staging/iio/resolver/ad2s1210.c +++ b/drivers/staging/iio/resolver/ad2s1210.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include -- cgit v1.2.3-58-ga151 From 75c7124ef3bafe0e9d1801d6449196dc3105df24 Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Wed, 5 Apr 2023 15:27:17 -0500 Subject: net: rfkill-gpio: Add explicit include for of.h With linux/acpi.h no longer implicitly including of.h, add an explicit include of of.h to fix the following error: net/rfkill/rfkill-gpio.c:181:21: error: implicit declaration of function 'of_match_ptr' is invalid in C99 [-Werror,-Wimplicit-function-declaration] Acked-by: Johannes Berg Reviewed-by: Jacob Keller Reviewed-by: Greg Kroah-Hartman Signed-off-by: Rob Herring Signed-off-by: Rafael J. Wysocki --- net/rfkill/rfkill-gpio.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c index 786dbfdad772..e9d1b2f2ff0a 100644 --- a/net/rfkill/rfkill-gpio.c +++ b/net/rfkill/rfkill-gpio.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include -- cgit v1.2.3-58-ga151 From 933c9f190543007385ccf899e257328c525ce7e5 Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Wed, 5 Apr 2023 15:27:18 -0500 Subject: serial: 8250_tegra: Add explicit include for of.h With linux/acpi.h no longer implicitly including of.h, add an explicit include of of.h to fix the following error: drivers/tty/serial/8250/8250_tegra.c:68:15: error: implicit declaration of function 'of_alias_get_id' [-Werror=implicit-function-declaration] Reviewed-by: Jon Hunter Reviewed-by: Jacob Keller Reviewed-by: Greg Kroah-Hartman Signed-off-by: Rob Herring Acked-by: Thierry Reding Signed-off-by: Rafael J. Wysocki --- drivers/tty/serial/8250/8250_tegra.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/tty/serial/8250/8250_tegra.c b/drivers/tty/serial/8250/8250_tegra.c index e7cddeec9d8e..2509e7f74ccf 100644 --- a/drivers/tty/serial/8250/8250_tegra.c +++ b/drivers/tty/serial/8250/8250_tegra.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include -- cgit v1.2.3-58-ga151 From cf02f71c3ef870f0376a723fd9c95d288f381984 Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Wed, 5 Apr 2023 15:27:19 -0500 Subject: ata: pata_macio: Add explicit include of irqdomain.h With linux/acpi.h no longer including irqdomain.h, add an explicit include of irqdomain.h to fix the following error: drivers/ata/pata_macio.c:1172:23: error: implicit declaration of function 'irq_create_mapping' [-Werror=implicit-function-declaration] Reported-by: Stephen Rothwell Signed-off-by: Rob Herring Signed-off-by: Rafael J. Wysocki --- drivers/ata/pata_macio.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/ata/pata_macio.c b/drivers/ata/pata_macio.c index 9ccaac9e2bc3..335e339a7ada 100644 --- a/drivers/ata/pata_macio.c +++ b/drivers/ata/pata_macio.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include -- cgit v1.2.3-58-ga151 From 5d6f12c381071d2206a2b73140f7f1e7c86bc104 Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Wed, 5 Apr 2023 15:27:20 -0500 Subject: pata: ixp4xx: Add explicit include for of.h With linux/acpi.h no longer implicitly including of.h, add an explicit include of of.h to fix the following error: drivers/ata/pata_ixp4xx_cf.c:258:15: error: implicit declaration of function 'of_property_read_u32_index'; did you mean 'fwnode_property_read_u32_array'? [-Werror=implicit-function-declaration] Reported-by: Stephen Rothwell Signed-off-by: Rob Herring Signed-off-by: Rafael J. Wysocki --- drivers/ata/pata_ixp4xx_cf.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/ata/pata_ixp4xx_cf.c b/drivers/ata/pata_ixp4xx_cf.c index e225913a619d..113087665832 100644 --- a/drivers/ata/pata_ixp4xx_cf.c +++ b/drivers/ata/pata_ixp4xx_cf.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include -- cgit v1.2.3-58-ga151 From c5111a5b1a603cbad4bb3b49ae9a77dbc2252a59 Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Wed, 5 Apr 2023 15:27:21 -0500 Subject: virtio-mmio: Add explicit include for of.h With linux/acpi.h no longer implicitly including of.h, add an explicit include of of.h to fix the following error: drivers/virtio/virtio_mmio.c:492:13: error: implicit declaration of function 'of_property_read_bool'; did you mean 'fwnode_property_read_bool'? [-Werror=implicit-function-declaration] Reported-by: Stephen Rothwell Signed-off-by: Rob Herring Signed-off-by: Rafael J. Wysocki --- drivers/virtio/virtio_mmio.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c index 3ff746e3f24a..4b5e883055ee 100644 --- a/drivers/virtio/virtio_mmio.c +++ b/drivers/virtio/virtio_mmio.c @@ -61,6 +61,7 @@ #include #include #include +#include #include #include #include -- cgit v1.2.3-58-ga151 From 8edd49ce8da7b5c24e751c41e6bb882424b47fc5 Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Wed, 5 Apr 2023 15:27:22 -0500 Subject: tpm: atmel: Add explicit include for of.h With linux/acpi.h (in linux/tpm.h) no longer implicitly including of.h, add an explicit include of of.h to fix the following errors: drivers/char/tpm/tpm_atmel.h:50:14: error: implicit declaration of function 'of_find_node_by_name'; did you mean 'bus_find_device_by_name'? [-Werror=implicit-function-declaration] drivers/char/tpm/tpm_atmel.h:50:12: error: assignment to 'struct device_node *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion] drivers/char/tpm/tpm_atmel.h:55:14: error: implicit declaration of function 'of_device_is_compatible'; did you mean 'fwnode_device_is_compatible'? [-Werror=implicit-function-declaration] ... Reported-by: Stephen Rothwell Signed-off-by: Rob Herring Signed-off-by: Rafael J. Wysocki --- drivers/char/tpm/tpm_atmel.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/char/tpm/tpm_atmel.h b/drivers/char/tpm/tpm_atmel.h index ba37e77e8af3..7ac3f69dcf0f 100644 --- a/drivers/char/tpm/tpm_atmel.h +++ b/drivers/char/tpm/tpm_atmel.h @@ -26,7 +26,7 @@ struct tpm_atmel_priv { #ifdef CONFIG_PPC64 -#include +#include #define atmel_getb(priv, offset) readb(priv->iobase + offset) #define atmel_putb(val, priv, offset) writeb(val, priv->iobase + offset) -- cgit v1.2.3-58-ga151 From 2febc5dda35e519886140e62780211a10ebeb463 Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Wed, 5 Apr 2023 15:27:23 -0500 Subject: fpga: lattice-sysconfig-spi: Add explicit include for of.h With linux/acpi.h (in spi/spi.h) no longer implicitly including of.h, add an explicit include of of.h to fix the following errors: drivers/fpga/lattice-sysconfig-spi.c:146:35: error: implicit declaration of function 'of_match_ptr' [-Werror=implicit-function-declaration] Reported-by: Stephen Rothwell Signed-off-by: Rob Herring Signed-off-by: Rafael J. Wysocki --- drivers/fpga/lattice-sysconfig-spi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/fpga/lattice-sysconfig-spi.c b/drivers/fpga/lattice-sysconfig-spi.c index 2702b26b7f55..44691cfcf50a 100644 --- a/drivers/fpga/lattice-sysconfig-spi.c +++ b/drivers/fpga/lattice-sysconfig-spi.c @@ -3,6 +3,7 @@ * Lattice FPGA programming over slave SPI sysCONFIG interface. */ +#include #include #include "lattice-sysconfig.h" -- cgit v1.2.3-58-ga151 From 45166620b7254a9e9329a2b6cdfa369bc3ca9c5b Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Wed, 5 Apr 2023 15:27:24 -0500 Subject: ACPI: Replace irqdomain.h include with struct declarations linux/acpi.h includes irqdomain.h which includes of.h. Break the include chain by replacing the irqdomain include with forward declarations for struct irq_domain and irq_domain_ops which is sufficient for acpi.h. of.h also includes mod_devicetable.h which many drivers implicitly depend on. As acpi.h already includes it, just move it out of the '#ifdef CONFIG_ACPI'. Reviewed-by: Jacob Keller Reviewed-by: Greg Kroah-Hartman Signed-off-by: Rob Herring Signed-off-by: Rafael J. Wysocki --- include/linux/acpi.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/linux/acpi.h b/include/linux/acpi.h index efff750f326d..96bd672dc336 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -10,12 +10,15 @@ #include #include /* for struct resource */ -#include #include #include +#include #include #include +struct irq_domain; +struct irq_domain_ops; + #ifndef _LINUX #define _LINUX #endif @@ -24,7 +27,6 @@ #ifdef CONFIG_ACPI #include -#include #include #include #include -- cgit v1.2.3-58-ga151 From 67abe9c6a8077819aae490dcd3b9629c2e87bfc2 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Tue, 4 Apr 2023 13:02:50 +0200 Subject: ACPI: video: Remove register_backlight_delay module option and code Since commit 5aa9d943e9b6 ("ACPI: video: Don't enable fallback path for creating ACPI backlight by default"), the delayed registering of acpi_video# backlight devices has been disabled by default. The few bugreports where this option was used as a workaround were all cases where the GPU driver did not call acpi_video_register_backlight() and the workaround was to pass video.register_backlight_delay=1. With the recent "ACPI: video: Make acpi_backlight=video work independent from GPU driver" changes acpi_backlight=video can be used to achieve the same result. So there is no need for the register_backlight_delay option + code anymore. Reviewed-by: Mario Limonciello Signed-off-by: Hans de Goede Signed-off-by: Rafael J. Wysocki --- drivers/acpi/acpi_video.c | 38 ----------------------- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 --- include/acpi/video.h | 2 -- 3 files changed, 44 deletions(-) diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c index c7a6d0b69dab..62f4364e4460 100644 --- a/drivers/acpi/acpi_video.c +++ b/drivers/acpi/acpi_video.c @@ -70,12 +70,6 @@ module_param(device_id_scheme, bool, 0444); static int only_lcd = -1; module_param(only_lcd, int, 0444); -static int register_backlight_delay; -module_param(register_backlight_delay, int, 0444); -MODULE_PARM_DESC(register_backlight_delay, - "Delay in seconds before doing fallback (non GPU driver triggered) " - "backlight registration, set to 0 to disable."); - static bool may_report_brightness_keys; static int register_count; static DEFINE_MUTEX(register_count_mutex); @@ -84,9 +78,6 @@ static LIST_HEAD(video_bus_head); static int acpi_video_bus_add(struct acpi_device *device); static void acpi_video_bus_remove(struct acpi_device *device); static void acpi_video_bus_notify(struct acpi_device *device, u32 event); -static void acpi_video_bus_register_backlight_work(struct work_struct *ignored); -static DECLARE_DELAYED_WORK(video_bus_register_backlight_work, - acpi_video_bus_register_backlight_work); /* * Indices in the _BCL method response: the first two items are special, @@ -2096,11 +2087,6 @@ static void acpi_video_bus_remove(struct acpi_device *device) kfree(video); } -static void acpi_video_bus_register_backlight_work(struct work_struct *ignored) -{ - acpi_video_register_backlight(); -} - static int __init is_i740(struct pci_dev *dev) { if (dev->device == 0x00D1) @@ -2183,17 +2169,6 @@ static bool should_check_lcd_flag(void) return false; } -/* - * At least one graphics driver has reported that no LCD is connected - * via the native interface. cancel the registration for fallback acpi_video0. - * If another driver still deems this necessary, it can explicitly register it. - */ -void acpi_video_report_nolcd(void) -{ - cancel_delayed_work(&video_bus_register_backlight_work); -} -EXPORT_SYMBOL(acpi_video_report_nolcd); - int acpi_video_register(void) { int ret = 0; @@ -2222,18 +2197,6 @@ int acpi_video_register(void) */ register_count = 1; - /* - * acpi_video_bus_add() skips registering the userspace visible - * backlight_device. The intend is for this to be registered by the - * drm/kms driver calling acpi_video_register_backlight() *after* it is - * done setting up its own native backlight device. The delayed work - * ensures that acpi_video_register_backlight() always gets called - * eventually, in case there is no drm/kms driver or it is disabled. - */ - if (register_backlight_delay) - schedule_delayed_work(&video_bus_register_backlight_work, - register_backlight_delay * HZ); - leave: mutex_unlock(®ister_count_mutex); return ret; @@ -2244,7 +2207,6 @@ void acpi_video_unregister(void) { mutex_lock(®ister_count_mutex); if (register_count) { - cancel_delayed_work_sync(&video_bus_register_backlight_work); acpi_bus_unregister_driver(&acpi_video_bus); register_count = 0; may_report_brightness_keys = false; diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index a01fd41643fc..d8b3e1224ec2 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -4445,10 +4445,6 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev) amdgpu_set_panel_orientation(&aconnector->base); } - /* If we didn't find a panel, notify the acpi video detection */ - if (dm->adev->flags & AMD_IS_APU && dm->num_of_edps == 0) - acpi_video_report_nolcd(); - /* Software is initialized. Now we can register interrupt handlers. */ switch (adev->asic_type) { #if defined(CONFIG_DRM_AMD_DC_SI) diff --git a/include/acpi/video.h b/include/acpi/video.h index ff5a8da5d883..4230392b5b0b 100644 --- a/include/acpi/video.h +++ b/include/acpi/video.h @@ -53,7 +53,6 @@ enum acpi_backlight_type { }; #if IS_ENABLED(CONFIG_ACPI_VIDEO) -extern void acpi_video_report_nolcd(void); extern int acpi_video_register(void); extern void acpi_video_unregister(void); extern void acpi_video_register_backlight(void); @@ -81,7 +80,6 @@ static inline bool acpi_video_backlight_use_native(void) return __acpi_video_get_backlight_type(true, NULL) == acpi_backlight_native; } #else -static inline void acpi_video_report_nolcd(void) { return; }; static inline int acpi_video_register(void) { return -ENODEV; } static inline void acpi_video_unregister(void) { return; } static inline void acpi_video_register_backlight(void) { return; } -- cgit v1.2.3-58-ga151 From abe4f5ae5efa6a63c7d5abfa07eb02bb56b4654e Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Tue, 4 Apr 2023 13:02:51 +0200 Subject: ACPI: video: Remove desktops without backlight DMI quirks After the recent backlight changes acpi_video# backlight devices are only registered when explicitly requested from the cmdline, by DMI quirk or by the GPU driver. This means that we no longer get false-positive backlight control support advertised on desktop boards. Remove the 3 DMI quirks for desktop boards where the false-positive issue was fixed through quirks before. Note many more desktop boards were affected but we never build a full quirk list for this. Reviewed-by: Mario Limonciello Signed-off-by: Hans de Goede Signed-off-by: Rafael J. Wysocki --- drivers/acpi/video_detect.c | 35 ----------------------------------- 1 file changed, 35 deletions(-) diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c index e85729fc481f..69ef2d9710c2 100644 --- a/drivers/acpi/video_detect.c +++ b/drivers/acpi/video_detect.c @@ -130,12 +130,6 @@ static int video_detect_force_native(const struct dmi_system_id *d) return 0; } -static int video_detect_force_none(const struct dmi_system_id *d) -{ - acpi_backlight_dmi = acpi_backlight_none; - return 0; -} - static const struct dmi_system_id video_detect_dmi_table[] = { /* * Models which should use the vendor backlight interface, @@ -768,35 +762,6 @@ static const struct dmi_system_id video_detect_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 15 3535"), }, }, - - /* - * Desktops which falsely report a backlight and which our heuristics - * for this do not catch. - */ - { - .callback = video_detect_force_none, - /* Dell OptiPlex 9020M */ - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), - DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 9020M"), - }, - }, - { - .callback = video_detect_force_none, - /* GIGABYTE GB-BXBT-2807 */ - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"), - DMI_MATCH(DMI_PRODUCT_NAME, "GB-BXBT-2807"), - }, - }, - { - .callback = video_detect_force_none, - /* MSI MS-7721 */ - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "MSI"), - DMI_MATCH(DMI_PRODUCT_NAME, "MS-7721"), - }, - }, { }, }; -- cgit v1.2.3-58-ga151 From 6d572d39b21fdd7411fe855a4fad479683ad99c5 Mon Sep 17 00:00:00 2001 From: "Rafael J. Wysocki" Date: Fri, 14 Apr 2023 15:59:52 +0200 Subject: ACPI: bus: Add missing braces to acpi_sb_notify() As per the kernel coding style. No functional impact. Signed-off-by: Rafael J. Wysocki --- drivers/acpi/bus.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index a96da65057b1..2f2517d6f9ef 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -623,8 +623,9 @@ static void acpi_sb_notify(acpi_handle handle, u32 event, void *data) if (event == ACPI_SB_NOTIFY_SHUTDOWN_REQUEST) { if (!work_busy(&acpi_sb_work)) schedule_work(&acpi_sb_work); - } else + } else { pr_warn("event %x is not supported by \\_SB device\n", event); + } } static int __init acpi_setup_sb_notify_handler(void) -- cgit v1.2.3-58-ga151 From faae443738c6f0dac9b0d3d11d108f6911a989a9 Mon Sep 17 00:00:00 2001 From: "Rafael J. Wysocki" Date: Fri, 14 Apr 2023 16:00:48 +0200 Subject: ACPI: bus: Ensure that notify handlers are not running after removal Currently, acpi_device_remove_notify_handler() may return while the notify handler being removed is still running which may allow the module holding that handler to be torn down prematurely. Address this issue by making acpi_device_remove_notify_handler() wait for the handling of all the ACPI events in progress to complete before returning. Fixes: 5894b0c46e49 ("ACPI / scan: Move bus operations and notification routines to bus.c") Signed-off-by: Rafael J. Wysocki --- drivers/acpi/bus.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 2f2517d6f9ef..c32a06bcac0c 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -589,6 +589,7 @@ static void acpi_device_remove_notify_handler(struct acpi_device *device, acpi_remove_notify_handler(device->handle, type, acpi_notify_device); } + acpi_os_wait_events_complete(); } /* Handle events targeting \_SB device (at present only graceful shutdown) */ -- cgit v1.2.3-58-ga151