src/via_outputs.c | 27 ++++++++ src/via_vt1632.c | 177 +++++++++++++++++++++++++++++++++++++----------------- 2 files changed, 149 insertions(+), 55 deletions(-)
New commits: commit 19f47226eba40d2fd5c2c770bc3542d12efa1d57 Author: Kevin Brace <kevinbr...@gmx.com> Date: Sat Feb 20 02:12:57 2016 -0800 Added debug messages to via_dvi_init Added debug messages to via_dvi_init function inside via_outputs.c. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_outputs.c b/src/via_outputs.c index 2cada37..e57fe53 100644 --- a/src/via_outputs.c +++ b/src/via_outputs.c @@ -1008,20 +1008,39 @@ via_dvi_init(ScrnInfoPtr pScrn) I2CDevPtr pDev = NULL; I2CSlaveAddr addr = 0x10; + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Entered via_dvi_init.\n")); + if (!pVia->pI2CBus2 || !pVia->pI2CBus3) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "I2C Bus 2 or I2C Bus 3 does not exist.\n"); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_dvi_init.\n")); return; } if (xf86I2CProbeAddress(pVia->pI2CBus3, addr)) { + xf86DrvMsg(pScrn->scrnIndex, X_PROBED, + "VT1632A found on I2C Bus 3.\n"); pBus = pVia->pI2CBus3; } else if (xf86I2CProbeAddress(pVia->pI2CBus2, addr)) { + xf86DrvMsg(pScrn->scrnIndex, X_PROBED, + "VT1632A found on I2C Bus 2.\n"); pBus = pVia->pI2CBus2; } else { + xf86DrvMsg(pScrn->scrnIndex, X_PROBED, + "VT1632A not found on I2C Bus 2 or I2C Bus 3.\n"); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_dvi_init.\n")); return; } pDev = xf86CreateI2CDevRec(); if (!pDev) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Failed to create I2C bus structure.\n"); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_dvi_init.\n")); return; } @@ -1030,17 +1049,25 @@ via_dvi_init(ScrnInfoPtr pScrn) pDev->pI2CBus = pBus; if (!xf86I2CDevInit(pDev)) { xf86DestroyI2CDevRec(pDev, TRUE); + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Failed to initialize a device on I2C bus.\n"); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_dvi_init.\n")); return; } if (!via_vt1632_probe(pScrn, pDev)) { xf86DestroyI2CDevRec(pDev, TRUE); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_dvi_init.\n")); return; } private_data = via_vt1632_init(pScrn, pDev); if (!private_data) { xf86DestroyI2CDevRec(pDev, TRUE); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_dvi_init.\n")); return; } commit b89cfe5583e02c87ea28384a5f6ace5372ae115f Author: Kevin Brace <kevinbr...@gmx.com> Date: Sat Feb 20 01:51:04 2016 -0800 Added debug messages to via_vt1632.c Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_vt1632.c b/src/via_vt1632.c index d90320a..9a72cc6 100644 --- a/src/via_vt1632.c +++ b/src/via_vt1632.c @@ -47,14 +47,20 @@ xf86I2CMaskByte(I2CDevPtr d, I2CByte subaddr, I2CByte value, I2CByte mask) static void via_vt1632_dump_registers(ScrnInfoPtr pScrn, I2CDevPtr pDev) { - int i; - CARD8 tmp; + int i; + CARD8 tmp; - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VT1632: dumping registers:\n")); - for (i = 0; i <= 0x0f; i++) { - xf86I2CReadByte(pDev, i, &tmp); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VT1632: 0x%02x: 0x%02x\n", i, tmp)); - } + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Entered via_vt1632_dump_registers.\n")); + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VT1632A: dumping registers:\n")); + for (i = 0; i <= 0x0f; i++) { + xf86I2CReadByte(pDev, i, &tmp); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VT1632A: 0x%02x: 0x%02x\n", i, tmp)); + } + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_vt1632_dump_registers.\n")); } @@ -64,14 +70,19 @@ via_vt1632_power(xf86OutputPtr output, BOOL on) struct ViaVT1632PrivateData * Private = output->driver_private; ScrnInfoPtr pScrn = output->scrn; + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Entered via_vt1632_power.\n")); if (on == TRUE) { - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VT1632: power on\n")); xf86I2CMaskByte(Private->VT1632I2CDev, 0x08, 0x01, 0x01); } else { - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VT1632: power off\n")); xf86I2CMaskByte(Private->VT1632I2CDev, 0x08, 0x00, 0x01); } + + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VT1632A: Power %s.\n", + on ? "On" : "Off"); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_vt1632_power.\n")); } void @@ -80,13 +91,19 @@ via_vt1632_save(xf86OutputPtr output) struct ViaVT1632PrivateData * Private = output->driver_private; ScrnInfoPtr pScrn = output->scrn; - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "VT1632: saving state of registers 0x08, 0x09, 0x0A and 0x0C\n")); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Entered via_vt1632_save.\n")); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "VT1632A: Saving the content of registers " + "0x08, 0x09, 0x0A, and 0x0C.\n")); xf86I2CReadByte(Private->VT1632I2CDev, 0x08, &Private->Register08); xf86I2CReadByte(Private->VT1632I2CDev, 0x09, &Private->Register09); xf86I2CReadByte(Private->VT1632I2CDev, 0x0A, &Private->Register0A); xf86I2CReadByte(Private->VT1632I2CDev, 0x0C, &Private->Register0C); + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_vt1632_save.\n")); } void @@ -95,26 +112,45 @@ via_vt1632_restore(xf86OutputPtr output) struct ViaVT1632PrivateData * Private = output->driver_private; ScrnInfoPtr pScrn = output->scrn; - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "VT1632: restoring register 0x08, 0x09, 0x0A and 0x0C\n")); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Entered via_vt1632_restore.\n")); + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "VT1632A: Restoring registers 0x08, 0x09, " + "0x0A, and 0x0C.\n")); xf86I2CWriteByte(Private->VT1632I2CDev, 0x08, Private->Register08); xf86I2CWriteByte(Private->VT1632I2CDev, 0x09, Private->Register09); xf86I2CWriteByte(Private->VT1632I2CDev, 0x0A, Private->Register0A); xf86I2CWriteByte(Private->VT1632I2CDev, 0x0C, Private->Register0C); + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_vt1632_restore.\n")); } int via_vt1632_mode_valid(xf86OutputPtr output, DisplayModePtr pMode) { - struct ViaVT1632PrivateData * Private = output->driver_private; + struct ViaVT1632PrivateData * Private = output->driver_private; + ScrnInfoPtr pScrn = output->scrn; + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Entered via_vt1632_mode_valid.\n")); - if (pMode->Clock < Private->DotclockMin) - return MODE_CLOCK_LOW; + if (pMode->Clock < Private->DotclockMin) { + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_vt1632_mode_valid.\n")); + return MODE_CLOCK_LOW; + } - if (pMode->Clock > Private->DotclockMax) - return MODE_CLOCK_HIGH; + if (pMode->Clock > Private->DotclockMax) { + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_vt1632_mode_valid.\n")); + return MODE_CLOCK_HIGH; + } - return MODE_OK; + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_vt1632_mode_valid.\n")); + return MODE_OK; } void @@ -124,13 +160,19 @@ via_vt1632_mode_set(xf86OutputPtr output, DisplayModePtr mode, struct ViaVT1632PrivateData * Private = output->driver_private; ScrnInfoPtr pScrn = output->scrn; - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "VT1632: enabling DVI encoder\n")); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Entered via_vt1632_mode_set.\n")); + + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "VT1632A: Enabling DVI.\n"); xf86I2CWriteByte(Private->VT1632I2CDev, 0x0C, 0x89); xf86I2CWriteByte(Private->VT1632I2CDev, 0x08, VIA_VT1632_VEN | VIA_VT1632_HEN | VIA_VT1632_EDGE | VIA_VT1632_PDB); via_vt1632_dump_registers(pScrn, Private->VT1632I2CDev); + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_vt1632_mode_set.\n")); } xf86OutputStatus @@ -141,52 +183,74 @@ via_vt1632_detect(xf86OutputPtr output) ScrnInfoPtr pScrn = output->scrn; CARD8 tmp; + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Entered via_vt1632_detect.\n")); + xf86I2CReadByte(Private->VT1632I2CDev, 0x09, &tmp); if (tmp && 0x02) { - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VT1632: DVI is connected\n"); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "VT1632A: DVI device is detected.\n"); status = XF86OutputStatusConnected; } + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_vt1632_detect.\n")); return status; } BOOL via_vt1632_probe(ScrnInfoPtr pScrn, I2CDevPtr pDev) { - CARD8 buf = 0; - CARD16 VendorID = 0; - CARD16 DeviceID = 0; - - xf86I2CReadByte(pDev, 0, &buf); - VendorID = buf; - xf86I2CReadByte(pDev, 1, &buf); - VendorID |= buf << 8; - - xf86I2CReadByte(pDev, 2, &buf); - DeviceID = buf; - xf86I2CReadByte(pDev, 3, &buf); - DeviceID |= buf << 8; - - if (VendorID != 0x1106 || DeviceID != 0x3192) { - return FALSE; - } - - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VT1632 DVI transmitter detected\n"); - - return TRUE; + CARD8 buf = 0; + CARD16 VendorID = 0; + CARD16 DeviceID = 0; + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Entered via_vt1632_probe.\n")); + + xf86I2CReadByte(pDev, 0, &buf); + VendorID = buf; + xf86I2CReadByte(pDev, 1, &buf); + VendorID |= buf << 8; + + xf86I2CReadByte(pDev, 2, &buf); + DeviceID = buf; + xf86I2CReadByte(pDev, 3, &buf); + DeviceID |= buf << 8; + + if (VendorID != 0x1106 || DeviceID != 0x3192) { + xf86DrvMsg(pScrn->scrnIndex, X_PROBED, + "VT1632A DVI transmitter not detected.\n"); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_vt1632_probe.\n")); + return FALSE; + } + + xf86DrvMsg(pScrn->scrnIndex, X_PROBED, + "VT1632A DVI transmitter detected.\n"); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_vt1632_probe.\n")); + return TRUE; } struct ViaVT1632PrivateData * via_vt1632_init(ScrnInfoPtr pScrn, I2CDevPtr pDev) { - VIAPtr pVia = VIAPTR(pScrn); - struct ViaVT1632PrivateData * Private = NULL; - CARD8 buf = 0; - - Private = xnfcalloc(1, sizeof(struct ViaVT1632PrivateData)); - if (!Private) { - return NULL; - } - Private->VT1632I2CDev = pDev; + VIAPtr pVia = VIAPTR(pScrn); + struct ViaVT1632PrivateData * Private = NULL; + CARD8 buf = 0; + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Entered via_vt1632_init.\n")); + + Private = xnfcalloc(1, sizeof(struct ViaVT1632PrivateData)); + if (!Private) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Failed to allocate memory for DVI initialization.\n"); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_vt1632_init.\n")); + return NULL; + } + Private->VT1632I2CDev = pDev; xf86I2CReadByte(pDev, 0x06, &buf); Private->DotclockMin = buf * 1000; @@ -194,11 +258,14 @@ via_vt1632_init(ScrnInfoPtr pScrn, I2CDevPtr pDev) xf86I2CReadByte(pDev, 0x07, &buf); Private->DotclockMax = (buf + 65) * 1000; - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VT1632: dotclock range %d-%dMHz\n", - Private->DotclockMin / 1000, - Private->DotclockMax / 1000); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VT1632A: Dot Clock Range: %d " + "to %d MHz.\n", + Private->DotclockMin / 1000, + Private->DotclockMax / 1000); via_vt1632_dump_registers(pScrn, pDev); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting via_vt1632_init.\n")); return Private; } _______________________________________________ Openchrome-devel mailing list Openchrome-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/openchrome-devel