#define MSI_EC_COMMAND_WIRELESS 0x10
 #define MSI_EC_COMMAND_LCD_LEVEL 0x11
 
+#define MSI_STANDARD_EC_COMMAND_ADDRESS        0x2e
+#define MSI_STANDARD_EC_BLUETOOTH_MASK (1 << 0)
+#define MSI_STANDARD_EC_WEBCAM_MASK    (1 << 1)
+#define MSI_STANDARD_EC_WLAN_MASK      (1 << 3)
+
 static int force;
 module_param(force, bool, 0);
 MODULE_PARM_DESC(force, "Force driver load, ignore DMI data");
 module_param(auto_brightness, int, 0);
 MODULE_PARM_DESC(auto_brightness, "Enable automatic brightness control (0: disabled; 1: enabled; 2: don't touch)");
 
+static bool old_ec_model;
+static int wlan_s, bluetooth_s;
+
 /* Hardware access */
 
 static int set_lcd_level(int level)
        return 0;
 }
 
+static int get_wireless_state_ec_standard(void)
+{
+       u8 rdata;
+       int result;
+
+       result = ec_read(MSI_STANDARD_EC_COMMAND_ADDRESS, &rdata);
+       if (result < 0)
+               return -1;
+
+       wlan_s = !!(rdata & MSI_STANDARD_EC_WLAN_MASK);
+
+       bluetooth_s = !!(rdata & MSI_STANDARD_EC_BLUETOOTH_MASK);
+
+       return 0;
+}
+
 /* Backlight device stuff */
 
 static int bl_get_brightness(struct backlight_device *b)
 
        int ret, enabled;
 
-       ret = get_wireless_state(&enabled, NULL);
+       if (old_ec_model) {
+               ret = get_wireless_state(&enabled, NULL);
+       } else {
+               ret = get_wireless_state_ec_standard();
+               enabled = wlan_s;
+       }
        if (ret < 0)
                return ret;
 
 
        int ret, enabled;
 
-       ret = get_wireless_state(NULL, &enabled);
+       if (old_ec_model) {
+               ret = get_wireless_state(NULL, &enabled);
+       } else {
+               ret = get_wireless_state_ec_standard();
+               enabled = bluetooth_s;
+       }
        if (ret < 0)
                return ret;
 
        if (acpi_disabled)
                return -ENODEV;
 
-       if (!force && !dmi_check_system(msi_dmi_table))
-               return -ENODEV;
+       if (force || dmi_check_system(msi_dmi_table))
+               old_ec_model = 1;
 
        if (auto_brightness < 0 || auto_brightness > 2)
                return -EINVAL;
 MODULE_ALIAS("dmi:*:svnMicro-StarInternational:pnMS-1058:pvr0581:rvnMSI:rnMS-1058:*:ct10:*");
 MODULE_ALIAS("dmi:*:svnMicro-StarInternational:pnMS-1412:*:rvnMSI:rnMS-1412:*:cvnMICRO-STARINT'LCO.,LTD:ct10:*");
 MODULE_ALIAS("dmi:*:svnNOTEBOOK:pnSAM2000:pvr0131*:cvnMICRO-STARINT'LCO.,LTD:ct10:*");
+MODULE_ALIAS("dmi:*:svnMICRO-STARINTERNATIONAL*:pnMS-N034:*");