[Openchrome-devel] openchrome 0.6.0 regressions on VX900 laptop

Kevin Brace kevinbrace at gmx.com
Wed Mar 15 03:56:08 UTC 2017


Hi Xavier,

It appears that 3X5.3B through 3X5.3F contain weird values.
Why is this?

   3d5.3b = 0x0b (Scratch Pad 2)
   3d5.3c = 0x00 (Scratch Pad 3)
   3d5.3d = 0x00 (Scratch Pad 4)
   3d5.3e = 0x00 (Scratch Pad 5)
   3d5.3f = 0x00 (Scratch Pad 6)

The log from yesterday prior to applying the patch (Version 2 of the patch) shows the proper values.

   3d5.3b = 0x03 (Scratch Pad 2)
   3d5.3c = 0x08 (Scratch Pad 3)
   3d5.3d = 0xa4 (Scratch Pad 4)
   3d5.3e = 0x00 (Scratch Pad 5)
   3d5.3f = 0x0a (Scratch Pad 6)

Since OpenChrome Version 0.6 is not using I2C bus for the FP due to detection issues, the only method it now uses for FP detection is 3X5.3F[3:0].
I will say that in the next couple of versions, I will likely bring back I2C bus detection of FP, but with the way the code is written currently, it is very hard to support I2C bus readout of FP.
    For Version 0.6, I put in some new code to "guard" against these values getting wiped out by copying the values when the X Server starts.
The value wipe out unfortunately used to happen with a number of VIA chipset laptops I own, but I doubt this is the cause of the weird values you are seeing.
    If you have a second monitor (VGA) or SSH connection, you can try out using the VIA register dump utility to poke around in order to getting the LVDS1 connected FP to turn on properly.
I am sure you know this, but VX900 OGPM have number of registers listed there, and you may want to turn some of them on / off to see if the distortion goes away. 
Often times, I will need to do this in order to figure out which register is not being initialized properly by the mode setting code.
If you can figure out the missing "magic" register through this, then it will definitely sped up the development process since it is very hard to obtain a VX900 chipset laptop.
    Another thing to think about is doing standby (ACPI S3 State) resume testing.
In most cases, if the computer is not frozen (i.e., Number Lock or Caps Lock is toggling when pressed), then this means that OpenChrome is relying on VGA BIOS setting up certain registers, and I will like to see this eliminated as much as possible.

Regards,

Kevin Brace
The OpenChrome Project maintainer / developer


> Sent: Wednesday, March 15, 2017 at 1:17 AM
> From: "Xavier Bachelot" <xavier at bachelot.org>
> To: "Kevin Brace" <kevinbrace at gmx.com>
> Cc: openchrome-devel at lists.freedesktop.org
> Subject: Re: [Openchrome-devel] openchrome 0.6.0 regressions on VX900 laptop
>
> Hi,
> 
> I came up with almost the same patch after some digging into the VX900
> manual minutes before you sent yours. I guess it took you way less time
> than me though :-)
> 
> So, back at the distorted image, with a working pointer now, I'm not
> sure it was there previously.
> Log and dump attached.
> 
> Regards,
> Xavier
> 
> 
> On 15/03/2017 00:49, Kevin Brace wrote:
> > Hi Xavier,
> > 
> > Sorry for the implicit function death traps.
> > I fixed the problem, and the second version patch should not have the issue.
> > 
> > Regards,
> > 
> > Kevin Brace
> > The OpenChrome Project maintainer / developer
> > 
> > 
> >> Sent: Tuesday, March 14, 2017 at 3:53 PM
> >> From: "Xavier Bachelot" <xavier at bachelot.org>
> >> To: "Kevin Brace" <kevinbrace at gmx.com>, openchrome-devel at lists.freedesktop.org
> >> Subject: Re: [Openchrome-devel] openchrome 0.6.0 regressions on VX900 laptop
> >>
> >> On 14/03/2017 23:24, Xavier Bachelot wrote:
> >>> Hi Kevin,
> >>>
> >>> On 14/03/2017 22:33, Kevin Brace wrote:
> >>>> Hi Xavier,
> >>>>
> >>>> Okay, at least some progress.
> >>>> I was guessing that LVDS1 was still at IGA1, so switching to IGA2 will correct the problem, but I guess there were still some missing pieces.
> >>>> Based on what you reported, I wrote a patch that should now correctly initialize LVDS1 for VX855 and VX900 chipsets.
> >>>> It appears that these only have one LVDS channel as opposed to CX700/VX700 and VX800 chipsets which appear to have two LVDS channels, to which one of them can be used as DVI.
> >>>> I hope the patch works.
> >>>>
> >>> Thanks for the patch. It may or may not work, I can't tell, as both LVDS
> >>> channels are powered down and thus the screen is black.
> >>> I've attached the X log and regs dump.
> >>>
> >> I guess that explains :
> >>
> >> via_fp.c: In function ‘via_lvds_mode_set’:
> >> via_fp.c:1300:13: warning: implicit declaration of function
> >> ‘viaLVDS1SetDithering’ [-Wimplicit-function-declaration]
> >>              viaLVDS1SetDithering(pScrn, Panel->useDithering ? TRUE :
> >> FALSE);
> >>              ^~~~~~~~~~~~~~~~~~~~
> >> via_fp.c:1303:13: warning: implicit declaration of function
> >> ‘viaLVDS1SetOutputFormat’ [-Wimplicit-function-declaration]
> >>              viaLVDS1SetOutputFormat(pScrn, 0x01);
> >>              ^~~~~~~~~~~~~~~~~~~~~~~
> >>
> >> Xavier
> >>
> > 
> 
>


More information about the Openchrome-devel mailing list