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.
This commit is contained in:
sevan 2019-01-28 02:25:01 +00:00
parent 8688c9b2af
commit 385db8ab01
3 changed files with 33 additions and 5 deletions

View File

@ -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 @@ add_model_specifics(prop_dictionary_t dict)
{
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 @@ add_model_specifics(prop_dictionary_t dict)
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;

View File

@ -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 @@ uint8_t edid_pismo[128] = {
/* 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
};

View File

@ -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 */