Commit 67abe9c6 authored by Hans de Goede's avatar Hans de Goede Committed by Rafael J. Wysocki
Browse files

ACPI: video: Remove register_backlight_delay module option and code



Since commit 5aa9d943 ("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: default avatarMario Limonciello <mario.limonciello@amd.com>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 09a9639e
Loading
Loading
Loading
Loading
+0 −38
Original line number Diff line number Diff line
@@ -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(&register_count_mutex);
	return ret;
@@ -2244,7 +2207,6 @@ void acpi_video_unregister(void)
{
	mutex_lock(&register_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;
+0 −4
Original line number Diff line number Diff line
@@ -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)
+0 −2
Original line number Diff line number Diff line
@@ -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; }