From: Lee, Chun-Yi on
The MSI U110/U115's DSDT have opregion declare, but i915 drm driver
does not support Poulsbo ship. It causes the acpi backlight control
interface not generate by i915 drm driver.
But, we are sure the MSI Poulsbo netbook U110/U115 have workable
_BCM,_BQC implementation in DSDT and it control brightness by using
EC but not opregion.

So, put a dmi detection in msi-laptop driver and also add wlan/bluetooth
rfkill support on U110/U115.

Signed-off-by: Lee, Chun-Yi <jlee(a)novell.com>
---
drivers/platform/x86/msi-laptop.c | 41 +++++++++++++++++++++++++++++++++++++
1 files changed, 41 insertions(+), 0 deletions(-)

diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c
index afd762b..5f62ad8 100644
--- a/drivers/platform/x86/msi-laptop.c
+++ b/drivers/platform/x86/msi-laptop.c
@@ -60,6 +60,7 @@
#include <linux/platform_device.h>
#include <linux/rfkill.h>
#include <linux/i8042.h>
+#include <acpi/video.h>

#define MSI_DRIVER_VERSION "0.5"

@@ -524,6 +525,42 @@ static struct dmi_system_id __initdata msi_load_scm_models_dmi_table[] = {
},
.callback = dmi_check_cb
},
+ {
+ .ident = "MSI U110",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "U110"),
+ },
+ .callback = dmi_check_cb
+ },
+ {
+ .ident = "MSI U115",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "U115"),
+ },
+ .callback = dmi_check_cb
+ },
+ { }
+};
+
+static struct dmi_system_id __initdata msi_poulsbo_dmi_table[] = {
+ {
+ .ident = "MSI U110",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "U110"),
+ },
+ .callback = dmi_check_cb
+ },
+ {
+ .ident = "MSI U115",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "U115"),
+ },
+ .callback = dmi_check_cb
+ },
{ }
};

@@ -801,6 +838,8 @@ static int __init msi_init(void)
if (acpi_video_backlight_support()) {
printk(KERN_INFO "MSI: Brightness ignored, must be controlled "
"by ACPI video driver\n");
+ if (dmi_check_system(msi_poulsbo_dmi_table))
+ acpi_video_register();
} else {
struct backlight_properties props;
memset(&props, 0, sizeof(struct backlight_properties));
@@ -919,3 +958,5 @@ MODULE_ALIAS("dmi:*:svnMICRO-STARINTERNATIONAL*:pnMS-N034:*");
MODULE_ALIAS("dmi:*:svnMICRO-STARINTERNATIONAL*:pnMS-N051:*");
MODULE_ALIAS("dmi:*:svnMICRO-STARINTERNATIONAL*:pnMS-N014:*");
MODULE_ALIAS("dmi:*:svnMicro-StarInternational*:pnCR620:*");
+MODULE_ALIAS("dmi:*:svnMicro-StarInternational*:pnU110:*");
+MODULE_ALIAS("dmi:*:svnMicro-StarInternational*:pnU115:*");
--
1.6.0.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/