--- acerhk.c.orig 2007-02-10 16:46:23.000000000 +0100 +++ acerhk.c 2010-05-02 15:16:41.000000000 +0200 @@ -1231,6 +1231,17 @@ acerhk_key2name[5] = k_display; /* FN+F3 (Display switch) */ acerhk_key2name[6] = k_res; /* FN+F4 (Display ein/ausschalten) */ break; + case 97600: + /* Medion MD97600, 7 keys, no setup */ + acerhk_key2name[1] = k_help; /* FN+F1 (Help) */ + acerhk_key2name[2] = k_none; + acerhk_key2name[5] = k_display; /* FN+F3 (Display switch) */ + acerhk_key2name[6] = k_res; /* FN+F4 (Display ein/ausschalten) */ + acerhk_key2name[17] = k_p1; + acerhk_key2name[18] = k_p2; + acerhk_key2name[19] = k_p3; + acerhk_key2name[48] = k_wireless; + break; case 42200: /* Medion MD42200, 7 keys, no setup */ acerhk_key2name[2] = k_none; @@ -1313,6 +1324,14 @@ acerhk_model_features = 0x00f00000; acerhk_type = TM_new; break; + case 97600: + /* has WLAN button */ + /* The MD97600 seems to require TM_F_CONNECT at least + once after cold boot, otherwise enabling the WLAN + radio does not work */ + acerhk_model_features = TM_F_WBUTTON | TM_F_CONNECT; + acerhk_type = TM_new; + break; case 42200: /* Medion MD42200 */ /* has WLAN button, should call connect() */ acerhk_model_features = TM_F_WBUTTON | TM_F_CONNECT; @@ -1862,7 +1881,11 @@ } else if (strncmp(str, "MEDIONPC", 8) == 0) { uint medionmodel; - if ((medionmodel = COLUSSI("WIM 2040", 4, reg1, AREA_SIZE)) >= 0) { + if ((medionmodel = COLUSSI("WIM 2090", 8, reg1, AREA_SIZE)) >= 0) { + printk(KERN_INFO"acerhk: found Medion model string:'%s'\n", (char*)reg1+medionmodel); + series = 97600; + } + else if ((medionmodel = COLUSSI("WIM 2040", 4, reg1, AREA_SIZE)) >= 0) { printk(KERN_INFO"acerhk: found Medion model string:'%s'\n", (char*)reg1+medionmodel); series = 96500; } else {