Module Name: xsrc Committed By: macallan Date: Thu Aug 4 01:17:34 UTC 2011
Modified Files: xsrc/external/mit/xf86-video-mach64/dist/src: atipreinit.c Log Message: support ioctl(WSDISPLAYIO_GET_EDID) To generate a diff of this commit: cvs rdiff -u -r1.1.1.4 -r1.2 \ xsrc/external/mit/xf86-video-mach64/dist/src/atipreinit.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: xsrc/external/mit/xf86-video-mach64/dist/src/atipreinit.c diff -u xsrc/external/mit/xf86-video-mach64/dist/src/atipreinit.c:1.1.1.4 xsrc/external/mit/xf86-video-mach64/dist/src/atipreinit.c:1.2 --- xsrc/external/mit/xf86-video-mach64/dist/src/atipreinit.c:1.1.1.4 Sat Jul 23 08:11:59 2011 +++ xsrc/external/mit/xf86-video-mach64/dist/src/atipreinit.c Thu Aug 4 01:17:34 2011 @@ -27,6 +27,13 @@ #include <string.h> #include <stdio.h> +#ifdef __NetBSD__ +#include <sys/time.h> +#include <sys/ioctl.h> +#include <errno.h> +#include <dev/wscons/wsconsio.h> +#endif + #include "ati.h" #include "atiadjust.h" #include "atiaudio.h" @@ -56,6 +63,8 @@ #include "xf86RAC.h" #endif +#include "xf86Priv.h" + /* * FreeScreen handles the clean-up. */ @@ -529,7 +538,7 @@ # define pATIHW (&pATI->OldHW) -#ifndef AVOID_CPIO +#ifndef AVOID_CPIO_ xf86Int10InfoPtr pInt10Info = NULL; vbeInfoPtr pVBE = NULL; @@ -648,7 +657,6 @@ ATIClaimBusSlot(pGDev->active, pATI); #ifndef AVOID_CPIO - #ifdef TV_OUT pATI->pVBE = NULL; @@ -725,6 +733,23 @@ pVBE = NULL; pInt10Info = NULL; #endif /* TV_OUT */ +#endif /* AVOID_CPIO */ +#ifdef __NetBSD__ + if (ConfiguredMonitor == NULL) { + struct wsdisplayio_edid_info ei; + char buffer[1024]; + int i, j; + + ei.edid_data = buffer; + ei.buffer_size = 1024; + if (ioctl(xf86Info.screenFd, WSDISPLAYIO_GET_EDID, &ei) != -1) { + xf86Msg(X_INFO, "got %d bytes worth of EDID from wsdisplay\n", ei.data_size); + ConfiguredMonitor = xf86InterpretEDID(pScreenInfo->scrnIndex, buffer); + } else + xf86Msg(X_INFO, "ioctl failed %d\n", errno); + } +#endif + if (ConfiguredMonitor && !(flags & PROBE_DETECT)) { @@ -732,10 +757,10 @@ xf86SetDDCproperties(pScreenInfo, ConfiguredMonitor); } +#ifndef AVOID_CPIO /* DDC module is no longer needed at this point */ xf86UnloadSubModule(pDDCModule); - -#endif /* AVOID_CPIO */ +#endif if (flags & PROBE_DETECT) {