Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/macppc/macppc Fake the EDID info for the clamshell ...



details:   https://anonhg.NetBSD.org/src/rev/826ae8d842d1
branches:  trunk
changeset: 447918:826ae8d842d1
user:      sevan <sevan%NetBSD.org@localhost>
date:      Mon Jan 28 02:25:01 2019 +0000

description:
Fake the EDID info for the clamshell iBook G3 so X11 works out of the box.
Obtained from the 2nd (firewire) revision iBook, but it's applied to 1st gen
also.

[    93.906] (II) R128(0): I2C bus "VGA-0" initialized.
[    93.907] (II) got 128 bytes worth of EDID from wsdisplay
[    93.908] (II) R128(0): EDID for output LVDS
[    93.908] (II) R128(0): Manufacturer: APP  Model: 9c05  Serial#: 16843009
[    93.908] (II) R128(0): Year: 1999  Week: 9
[    93.908] (II) R128(0): EDID Version: 1.1
[    93.908] (II) R128(0): Digital Display Input
[    93.908] (II) R128(0): Max Image Size [cm]: horiz.: 24  vert.: 18
[    93.908] (II) R128(0): Gamma: 2.28
[    93.908] (II) R128(0): DPMS capabilities: StandBy Suspend Off
[    93.909] (II) R128(0): Supported color encodings: RGB 4:4:4 YCrCb 4:4:4
[    93.909] (II) R128(0): redX: 0.594 redY: 0.345   greenX: 0.317 greenY: 0.494
[    93.909] (II) R128(0): blueX: 0.155 blueY: 0.146   whiteX: 0.312 whiteY: 0.328
[    93.909] (II) R128(0): Supported established timings:
[    93.909] (II) R128(0): 800x600@60Hz
[    93.909] (II) R128(0): Manufacturer's mask: 0
[    93.910] (II) R128(0): Supported detailed timing:
[    93.910] (II) R128(0): clock: 60.0 MHz   Image Size:  275 x 199 mm
[    93.910] (II) R128(0): h_active: 800  h_sync: 840  h_sync_end 968 h_blank_end 1056 h_border: 0
[    93.910] (II) R128(0): v_active: 600  v_sync: 601  v_sync_end 605 v_blanking: 628 v_border: 0
[    93.910] (II) R128(0):  LT121SU-121
[    93.910] (II) R128(0):  LT121SU-121
[    93.910] (II) R128(0): Monitor name: Color LCD
[    93.910] (II) R128(0): EDID (in hex):
[    93.910] (II) R128(0):      00ffffffffffff000610059c01010101
[    93.910] (II) R128(0):      09090101a8181280e816e09858517e27
[    93.910] (II) R128(0):      25505401000001010101010101010101
[    93.911] (II) R128(0):      0101010101017017200031581c202880
[    93.911] (II) R128(0):      140013c710000018000000fe004c5431
[    93.911] (II) R128(0):      323153552d3132310a20000000fe004c
[    93.911] (II) R128(0):      5431323153552d3132310a20000000fc
[    93.911] (II) R128(0):      00436f6c6f72204c43440a2020200037
[    93.912] (II) R128(0): I2C device "VGA-0:ddc2" registered at address 0xA0.

diffstat:

 sys/arch/macppc/macppc/machdep.c     |  13 +++++++++++--
 sys/arch/macppc/macppc/static_edid.c |  22 ++++++++++++++++++++--
 sys/arch/macppc/macppc/static_edid.h |   3 ++-
 3 files changed, 33 insertions(+), 5 deletions(-)

diffs (97 lines):

diff -r caed42094f1f -r 826ae8d842d1 sys/arch/macppc/macppc/machdep.c
--- a/sys/arch/macppc/macppc/machdep.c  Mon Jan 28 01:09:52 2019 +0000
+++ b/sys/arch/macppc/macppc/machdep.c  Mon Jan 28 02:25:01 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: machdep.c,v 1.168 2018/07/15 05:16:43 maxv Exp $       */
+/*     $NetBSD: machdep.c,v 1.169 2019/01/28 02:25:01 sevan Exp $      */
 
 /*
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.168 2018/07/15 05:16:43 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.169 2019/01/28 02:25:01 sevan Exp $");
 
 #include "opt_compat_netbsd.h"
 #include "opt_ddb.h"
@@ -389,6 +389,8 @@
 {
        const char *bl_rev_models[] = {
                "PowerBook4,3", "PowerBook6,3", "PowerBook6,5", NULL};
+       const char *clamshell[] = {
+               "PowerBook2,1", "PowerBook2,2", NULL};
        const char *pismo[] = {
                "PowerBook3,1", NULL};
        const char *mini1[] = {
@@ -402,6 +404,13 @@
        if (of_compatible(node, bl_rev_models) != -1) {
                prop_dictionary_set_bool(dict, "backlight_level_reverted", 1);
        }
+       if (of_compatible(node, clamshell) != -1) {
+               prop_data_t edid;
+
+               edid = prop_data_create_data(edid_clamshell, sizeof(edid_clamshell));
+               prop_dictionary_set(dict, "EDID", edid);
+               prop_object_release(edid);
+       }
        if (of_compatible(node, pismo) != -1) {
                prop_data_t edid;
 
diff -r caed42094f1f -r 826ae8d842d1 sys/arch/macppc/macppc/static_edid.c
--- a/sys/arch/macppc/macppc/static_edid.c      Mon Jan 28 01:09:52 2019 +0000
+++ b/sys/arch/macppc/macppc/static_edid.c      Mon Jan 28 02:25:01 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: static_edid.c,v 1.1 2011/07/13 22:54:33 macallan Exp $ */
+/*     $NetBSD: static_edid.c,v 1.2 2019/01/28 02:25:01 sevan Exp $ */
 
 /*-
  * Copyright (c) 2011 Michael Lorenz
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: static_edid.c,v 1.1 2011/07/13 22:54:33 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: static_edid.c,v 1.2 2019/01/28 02:25:01 sevan Exp $");
 #include <sys/param.h>
 
 /* EDID blocks for some known hardware that doesn't provide its own */
@@ -55,3 +55,21 @@
 /* 78 */       0x43, 0x44, 0x0a, 0x20, 0x20, 0x20, 0x00, 0x52
 };
 
+uint8_t edid_clamshell[128] = {
+/* 00 */       0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
+/* 08 */       0x06, 0x10, 0x05, 0x9c, 0x01, 0x01, 0x01, 0x01,
+/* 10 */       0x09, 0x09, 0x01, 0x01, 0xa8, 0x18, 0x12, 0x80,
+/* 18 */       0xe8, 0x16, 0xe0, 0x98, 0x58, 0x51, 0x7e, 0x27,
+/* 20 */       0x25, 0x50, 0x54, 0x01, 0x00, 0x00, 0x01, 0x01,
+/* 28 */       0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+/* 30 */       0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x70, 0x17,
+/* 38 */       0x20, 0x00, 0x31, 0x58, 0x1c, 0x20, 0x28, 0x80,
+/* 40 */       0x14, 0x00, 0x13, 0xc7, 0x10, 0x00, 0x00, 0x18,
+/* 48 */       0x00, 0x00, 0x00, 0xfe, 0x00, 0x4c, 0x54, 0x31,
+/* 50 */       0x32, 0x31, 0x53, 0x55, 0x2d, 0x31, 0x32, 0x31,
+/* 58 */       0x0a, 0x20, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x4c,
+/* 60 */       0x54, 0x31, 0x32, 0x31, 0x53, 0x55, 0x2d, 0x31,
+/* 68 */       0x32, 0x31, 0x0a, 0x20, 0x00, 0x00, 0x00, 0xfc,
+/* 70 */       0x00, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x4c,
+/* 78 */       0x43, 0x44, 0x0A, 0x20, 0x20, 0x20, 0x00, 0x37
+};
diff -r caed42094f1f -r 826ae8d842d1 sys/arch/macppc/macppc/static_edid.h
--- a/sys/arch/macppc/macppc/static_edid.h      Mon Jan 28 01:09:52 2019 +0000
+++ b/sys/arch/macppc/macppc/static_edid.h      Mon Jan 28 02:25:01 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: static_edid.h,v 1.1 2011/07/13 22:54:33 macallan Exp $ */
+/*     $NetBSD: static_edid.h,v 1.2 2019/01/28 02:25:01 sevan Exp $ */
 
 /*-
  * Copyright (c) 2011 Michael Lorenz
@@ -30,5 +30,6 @@
 #define STATIC_EDID_H
 
 extern uint8_t edid_pismo[128];
+extern uint8_t edid_clamshell[128];
 
 #endif /* STATIC_EDID_H */



Home | Main Index | Thread Index | Old Index