diff options
Diffstat (limited to 'meta-moblin/packages/linux/linux-moblin-2.6.31.5/linux-2.6.31-samsung.patch')
-rw-r--r-- | meta-moblin/packages/linux/linux-moblin-2.6.31.5/linux-2.6.31-samsung.patch | 206 |
1 files changed, 0 insertions, 206 deletions
diff --git a/meta-moblin/packages/linux/linux-moblin-2.6.31.5/linux-2.6.31-samsung.patch b/meta-moblin/packages/linux/linux-moblin-2.6.31.5/linux-2.6.31-samsung.patch deleted file mode 100644 index 88c978801..000000000 --- a/meta-moblin/packages/linux/linux-moblin-2.6.31.5/linux-2.6.31-samsung.patch +++ /dev/null @@ -1,206 +0,0 @@ - - -From: Greg Kroah-Hartman <gregkh@suse.de> -Subject: Samsung backlight driver - -This driver implements backlight controls for Samsung laptops that currently do not have ACPI support for this control. - -It has been tested on the N130 laptop and properly works there. - -Info for the NC10 was provided by Soeren Sonnenburg <bugreports@nn7.de> Info for the NP-Q45 from Jie Huchet <jeremie@lamah.info> - -Many thanks to Dmitry Torokhov <dmitry.torokhov@gmail.com> for cleanups and other suggestions on how to make the driver simpler. - -Cc: Soeren Sonnenburg <bugreports@nn7.de> -Cc: Jie Huchet <jeremie@lamah.info> -Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/platform/x86/Kconfig | 12 ++ - drivers/platform/x86/Makefile | 1 - drivers/platform/x86/samsung-backlight.c | 157 -+++++++++++++++++++++++++++++++ 3 files changed, 170 insertions(+) -diff -purN vanilla-2.6.31-rc6/drivers/platform/x86/Kconfig linux-2.6.31-rc6/drivers/platform/x86/Kconfig ---- vanilla-2.6.31-rc6/drivers/platform/x86/Kconfig 2009-08-17 20:55:37.000000000 +0000 -+++ linux-2.6.31-rc6/drivers/platform/x86/Kconfig 2009-08-17 20:58:25.000000000 +0000 -@@ -425,4 +425,16 @@ config ACPI_TOSHIBA - - If you have a legacy free Toshiba laptop (such as the Libretto L1 - series), say Y. -+ -+config SAMSUNG_BACKLIGHT -+ tristate "Samsung Backlight driver" -+ depends on BACKLIGHT_CLASS_DEVICE -+ depends on DMI -+ ---help--- -+ This driver adds support to control the backlight on a number of -+ Samsung laptops, like the N130. -+ -+ It will only be loaded on laptops that properly need it, so it is -+ safe to say Y here. -+ - endif # X86_PLATFORM_DEVICES -diff -purN vanilla-2.6.31-rc6/drivers/platform/x86/Makefile linux-2.6.31-rc6/drivers/platform/x86/Makefile ---- vanilla-2.6.31-rc6/drivers/platform/x86/Makefile 2009-08-17 20:55:37.000000000 +0000 -+++ linux-2.6.31-rc6/drivers/platform/x86/Makefile 2009-08-17 20:58:44.000000000 +0000 -@@ -20,3 +20,4 @@ obj-$(CONFIG_INTEL_MENLOW) += intel_menl - obj-$(CONFIG_ACPI_WMI) += wmi.o - obj-$(CONFIG_ACPI_ASUS) += asus_acpi.o - obj-$(CONFIG_ACPI_TOSHIBA) += toshiba_acpi.o -+obj-$(CONFIG_SAMSUNG_BACKLIGHT) += samsung-backlight.o -diff -purN vanilla-2.6.31-rc6/drivers/platform/x86/samsung-backlight.c linux-2.6.31-rc6/drivers/platform/x86/samsung-backlight.c ---- vanilla-2.6.31-rc6/drivers/platform/x86/samsung-backlight.c 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.31-rc6/drivers/platform/x86/samsung-backlight.c 2009-08-17 21:00:10.000000000 +0000 -@@ -0,0 +1,151 @@ -+/* -+ * Samsung N130 and NC10 Laptop Backlight driver -+ * -+ * Copyright (C) 2009 Greg Kroah-Hartman (gregkh@suse.de) -+ * Copyright (C) 2009 Novell Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 as published by -+ * the Free Software Foundation. -+ */ -+ -+#include <linux/kernel.h> -+#include <linux/init.h> -+#include <linux/module.h> -+#include <linux/pci.h> -+#include <linux/backlight.h> -+#include <linux/fb.h> -+#include <linux/dmi.h> -+ -+#define MAX_BRIGHT 0xff -+#define OFFSET 0xf4 -+ -+static int offset = OFFSET; -+module_param(offset, int, S_IRUGO | S_IWUSR); -+MODULE_PARM_DESC(offset, "The offset into the PCI device for the brightness control"); -+static struct pci_dev *pci_device; -+static struct backlight_device *backlight_device; -+ -+static u8 read_brightness(void) -+{ -+ u8 brightness; -+ -+ pci_read_config_byte(pci_device, offset, &brightness); -+ return brightness; -+} -+ -+static void set_brightness(u8 brightness) { -+ pci_write_config_byte(pci_device, offset, brightness); } -+ -+static int get_brightness(struct backlight_device *bd) { -+ return bd->props.brightness; -+} -+ -+static int update_status(struct backlight_device *bd) { -+ set_brightness(bd->props.brightness); -+ return 0; -+} -+ -+static struct backlight_ops backlight_ops = { -+ .get_brightness = get_brightness, -+ .update_status = update_status, -+}; -+ -+static int __init dmi_check_cb(const struct dmi_system_id *id) { -+ printk(KERN_INFO KBUILD_MODNAME ": found laptop model '%s'\n", -+ id->ident); -+ return 0; -+} -+ -+static struct dmi_system_id __initdata samsung_dmi_table[] = { -+ { -+ .ident = "N120", -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), -+ DMI_MATCH(DMI_PRODUCT_NAME, "N120"), -+ DMI_MATCH(DMI_BOARD_NAME, "N120"), -+ }, -+ .callback = dmi_check_cb, -+ }, -+ { -+ .ident = "N130", -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), -+ DMI_MATCH(DMI_PRODUCT_NAME, "N130"), -+ DMI_MATCH(DMI_BOARD_NAME, "N130"), -+ }, -+ .callback = dmi_check_cb, -+ }, -+ { -+ .ident = "NC10", -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), -+ DMI_MATCH(DMI_PRODUCT_NAME, "NC10"), -+ DMI_MATCH(DMI_BOARD_NAME, "NC10"), -+ }, -+ .callback = dmi_check_cb, -+ }, -+ { -+ .ident = "NP-Q45", -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), -+ DMI_MATCH(DMI_PRODUCT_NAME, "SQ45S70S"), -+ DMI_MATCH(DMI_BOARD_NAME, "SQ45S70S"), -+ }, -+ .callback = dmi_check_cb, -+ }, -+ { }, -+}; -+ -+static int __init samsung_init(void) -+{ -+ if (!dmi_check_system(samsung_dmi_table)) -+ return -ENODEV; -+ -+ /* -+ * The Samsung N120, N130, and NC10 use pci device id 0x27ae, while the -+ * NP-Q45 uses 0x2a02. Odds are we might need to add more to the -+ * list over time... -+ */ -+ pci_device = pci_get_device(PCI_VENDOR_ID_INTEL, 0x27ae, NULL); -+ if (!pci_device) { -+ pci_device = pci_get_device(PCI_VENDOR_ID_INTEL, 0x2a02, NULL); -+ if (!pci_device) -+ return -ENODEV; -+ } -+ -+ /* create a backlight device to talk to this one */ -+ backlight_device = backlight_device_register("samsung", -+ &pci_device->dev, -+ NULL, &backlight_ops); -+ if (IS_ERR(backlight_device)) { -+ pci_dev_put(pci_device); -+ return PTR_ERR(backlight_device); -+ } -+ -+ backlight_device->props.max_brightness = MAX_BRIGHT; -+ backlight_device->props.brightness = read_brightness(); -+ backlight_device->props.power = FB_BLANK_UNBLANK; -+ backlight_update_status(backlight_device); -+ -+ return 0; -+} -+ -+static void __exit samsung_exit(void) -+{ -+ backlight_device_unregister(backlight_device); -+ -+ /* we are done with the PCI device, put it back */ -+ pci_dev_put(pci_device); -+} -+ -+module_init(samsung_init); -+module_exit(samsung_exit); -+ -+MODULE_AUTHOR("Greg Kroah-Hartman <gregkh@suse.de>"); -+MODULE_DESCRIPTION("Samsung Backlight driver"); -+MODULE_LICENSE("GPL"); -+MODULE_ALIAS("dmi:*:svnSAMSUNGELECTRONICSCO.,LTD.:pnN120:*:rnN120:*"); -+MODULE_ALIAS("dmi:*:svnSAMSUNGELECTRONICSCO.,LTD.:pnN130:*:rnN130:*"); -+MODULE_ALIAS("dmi:*:svnSAMSUNGELECTRONICSCO.,LTD.:pnNC10:*:rnNC10:*"); -+MODULE_ALIAS("dmi:*:svnSAMSUNGELECTRONICSCO.,LTD.:pnSQ45S70S:*:rnSQ45S70S:*"); |