[Patch] A6J support in asus_acpi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



A6J have LCD, CRT, TV-Out AND DVI ... So /proc/acpi/asus/disp work like this :

  +-------+-----+-----+-----+-----+-----+
  | Bin   | Val | DVI | TV  | CRT | LCD |
  +-------+-----+-----+-----+-----+-----+
  + 0000  +   0 +     +     +     +     +
  +-------+-----+-----+-----+-----+-----+
  + 0001  +   1 +     +     +     +  X  +
  +-------+-----+-----+-----+-----+-----+
  + 0010  +   2 +     +     +  X  +     +
  +-------+-----+-----+-----+-----+-----+
  + 0011  +   3 +     +     +  X  +  X  +
  +-------+-----+-----+-----+-----+-----+
  + 0100  +   4 +     +  X  +     +     +
  +-------+-----+-----+-----+-----+-----+
  + 0101  +   5 +     +  X  +     + X   +
  +-------+-----+-----+-----+-----+-----+
  + 0110  +   6 +     +  X  +  X  +     +
  +-------+-----+-----+-----+-----+-----+
  + 0111  +   7 +     +  X  +  X  +  X  +
  +-------+-----+-----+-----+-----+-----+
  + 1000  +   8 +  X  +     +     +     +
  +-------+-----+-----+-----+-----+-----+
  + 1001  +   9 +  X  +     +     +  X  +
  +-------+-----+-----+-----+-----+-----+
  + 1010  +  10 +  X  +     +  X  +     +
  +-------+-----+-----+-----+-----+-----+
  + 1011  +  11 +  X  +     +  X  +  X  +
  +-------+-----+-----+-----+-----+-----+
  + 1100  +  12 +  X  +  X  +     +     +
  +-------+-----+-----+-----+-----+-----+
  + 1101  +  13 +  X  +  X  +     +  X  +
  +-------+-----+-----+-----+-----+-----+
  + 1110  +  14 +  X  +  X  +  X  +     +
  +-------+-----+-----+-----+-----+-----+
  + 1111  +  15 +  X  +  X  +  X  +  X  +
  +-------+-----+-----+-----+-----+-----+


it should be the same with all ASUS with DVI. I will see this week, a friend have another ASUS with DVI ...

--- linux-2.6.19-rc5/drivers/acpi/asus_acpi.c   2006-11-08 03:24:20.000000000 +0100
+++ linux-2.6.19-rc5-ik/drivers/acpi/asus_acpi.c        2006-11-12 12:03:04.000000000 +0100
@@ -121,6 +121,7 @@
                A1x = 0,        //A1340D, A1300F
                A2x,            //A2500H
                A4G,            //A4700G
+               A6J,            //A6J
                D1x,            //D1
                L2D,            //L2000D
                L3C,            //L3800C
@@ -193,6 +194,18 @@
         .display_get = "\\ADVG"},

        {
+        .name = "A6J",
+        .mt_mled = "MLED",
+        .mt_wled = "WLED",
+        .mt_bt_switch = "BLED",
+        .mt_lcd_switch = xxN_PREFIX "_Q10",
+        .lcd_status = "\\GPL0",
+        .brightness_set = "SPLV",
+        .brightness_get = "GPLV",
+        .display_set = "SDSP",
+        .display_get = "\\SETD"},
+
+       {
         .name = "D1x",
         .mt_mled = "MLED",
         .mt_lcd_switch = "\\Q0D",
@@ -700,6 +713,8 @@

                if (hotk->model == L2D)
                        lcd = ~lcd;
+               else if (hotk->model == A6J)
+                       lcd = lcd >> 6;
        } else {                /* L3H and the like have to be handled differently */
                acpi_status status = 0;
                struct acpi_object_list input;
@@ -873,14 +888,19 @@
        if (!read_acpi_int(hotk->handle, hotk->methods->display_get, &value))
                printk(KERN_WARNING
                       "Asus ACPI: Error reading display status\n");
-       value &= 0x07;          /* needed for some models, shouldn't hurt others */
+
+       if(hotk->model == A6J)
+               value &= 0x0F;          /* A6J use 4bit, last for DVI */
+       else
+               value &= 0x07;          /* needed for some models, shouldn't hurt others */
+
        return sprintf(page, "%d\n", value);
 }

 /*
  * Experimental support for display switching. As of now: 1 should activate
- * the LCD output, 2 should do for CRT, and 4 for TV-Out. Any combination
- * (bitwise) of these will suffice. I never actually tested 3 displays hooked up
+ * the LCD output, 2 should do for CRT, 4 for TV-Out and 8 for DVI. Any combination
+ * (bitwise) of these will suffice. I never actually tested 4 displays hooked up
  * simultaneously, so be warned. See the acpi4asus README for more info.
  */
 static int
@@ -1099,6 +1119,8 @@
                return L5x;
        else if (strncmp(model, "A4G", 3) == 0)
                return A4G;
+       else if (strncmp(model, "A6J", 3) == 0)
+               return A6J;
        else if (strncmp(model, "W1N", 3) == 0)
                return W1N;
        else if (strncmp(model, "W3V", 3) == 0)
-- 
CHARY 'Iksaif' Corentin
corentincj@xxxxxxxxxx - corentincj@xxxxxxxx
http://xf.iksaif.net
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux