Commit d2e68321 authored by Hans de Goede's avatar Hans de Goede
Browse files

platform/x86: apple-gmux: Add acpi_video_get_backlight_type() check



Make apple-gmux backlight registration honor the acpi_backlight=...
kernel commandline option which is used to select the backlight
control method on x86/ACPI devices.

Reported-and-tested-by: default avatarAditya Garg <gargaditya08@live.com>
Link: https://lore.kernel.org/platform-driver-x86/BM1PR01MB0931B467250831916F7C55B3B8A59@BM1PR01MB0931.INDPRD01.PROD.OUTLOOK.COM/


Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20230307113813.359743-1-hdegoede@redhat.com
parent f863fac1
Loading
Loading
Loading
Loading
+34 −27
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#include <linux/pci.h>
#include <linux/vga_switcheroo.h>
#include <linux/debugfs.h>
#include <acpi/video.h>
#include <asm/io.h>

/**
@@ -781,8 +782,9 @@ static int gmux_probe(struct pnp_dev *pnp, const struct pnp_device_id *id)
	struct apple_gmux_data *gmux_data;
	struct resource *res;
	struct backlight_properties props;
	struct backlight_device *bdev;
	struct backlight_device *bdev = NULL;
	u8 ver_major, ver_minor, ver_release;
	bool register_bdev = true;
	int ret = -ENXIO;
	acpi_status status;
	unsigned long long gpe;
@@ -859,6 +861,10 @@ static int gmux_probe(struct pnp_dev *pnp, const struct pnp_device_id *id)
	props.type = BACKLIGHT_PLATFORM;
	props.max_brightness = gmux_read32(gmux_data, GMUX_PORT_MAX_BRIGHTNESS);

#if IS_REACHABLE(CONFIG_ACPI_VIDEO)
	register_bdev = acpi_video_get_backlight_type() == acpi_backlight_apple_gmux;
#endif
	if (register_bdev) {
		/*
		 * Currently it's assumed that the maximum brightness is less than
		 * 2^24 for compatibility with old gmux versions. Cap the max
@@ -886,6 +892,7 @@ static int gmux_probe(struct pnp_dev *pnp, const struct pnp_device_id *id)
		 * Disable the other backlight choices.
		 */
		apple_bl_unregister();
	}

	gmux_data->power_state = VGA_SWITCHEROO_ON;