--- 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 {

