samsung-laptop is not at all related to ACPI, but since this interface
is not documented at all, and the driver has to use it at load to
understand how it works on the laptop, I think it's a good idea to
disable it if a better solution is available.
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
#include <linux/dmi.h>
#include <linux/platform_device.h>
#include <linux/rfkill.h>
#include <linux/dmi.h>
#include <linux/platform_device.h>
#include <linux/rfkill.h>
/*
* This driver is needed because a number of Samsung laptops do not hook
/*
* This driver is needed because a number of Samsung laptops do not hook
struct backlight_device *backlight_device;
struct rfkill *rfk;
struct backlight_device *backlight_device;
struct rfkill *rfk;
bool has_stepping_quirk;
};
bool has_stepping_quirk;
};
struct backlight_device *bd;
struct backlight_properties props;
struct backlight_device *bd;
struct backlight_properties props;
+ if (!samsung->handle_backlight)
+ return 0;
+
memset(&props, 0, sizeof(struct backlight_properties));
props.type = BACKLIGHT_PLATFORM;
props.max_brightness = samsung->config->max_brightness -
memset(&props, 0, sizeof(struct backlight_properties));
props.type = BACKLIGHT_PLATFORM;
props.max_brightness = samsung->config->max_brightness -
printk(KERN_DEBUG "ifaceP = 0x%08x\n", ifaceP);
printk(KERN_DEBUG "sabi_iface = %p\n", samsung->sabi_iface);
printk(KERN_DEBUG "ifaceP = 0x%08x\n", ifaceP);
printk(KERN_DEBUG "sabi_iface = %p\n", samsung->sabi_iface);
- test_backlight(samsung);
+ if (samsung->handle_backlight)
+ test_backlight(samsung);
test_wireless(samsung);
sabi_get_command(samsung, config->commands.get_brightness, &sretval);
test_wireless(samsung);
sabi_get_command(samsung, config->commands.get_brightness, &sretval);
}
/* Check for stepping quirk */
}
/* Check for stepping quirk */
- check_for_stepping_quirk(samsung);
+ if (samsung->handle_backlight)
+ check_for_stepping_quirk(samsung);
return -ENOMEM;
mutex_init(&samsung->sabi_mutex);
return -ENOMEM;
mutex_init(&samsung->sabi_mutex);
+ samsung->handle_backlight = true;
+
+#ifdef CONFIG_ACPI
+ /* Don't handle backlight here if the acpi video already handle it */
+ if (acpi_video_backlight_support()) {
+ pr_info("Backlight controlled by ACPI video driver\n");
+ samsung->handle_backlight = false;
+ }
+#endif
ret = samsung_platform_init(samsung);
if (ret)
ret = samsung_platform_init(samsung);
if (ret)