2001-10-23 06:54:50

by Stuart Young

[permalink] [raw]
Subject: SiS630S FrameBuffer & LCD

Like my previous SiS post, I'm once again using the Clevo lp200t (SiS630S
chipset), and trying to enable the SiS FrameBuffer device. Once again, this
happens on 2.4.9, 2.4.10, and 2.4.12.

On issuing of 'modprobe sisfb' the LCD display gives one of the following
symptoms:

1. The display goes totally blank.
2. The display "glows" an indeterminate color and eventually fades out
(may take a minute to fade out).

In either case, the machine continues to run happily, and I can either ssh
in and/or run programs stuff in the shell (with no visual output). Seems
fbset makes no difference (went through all the resolution/scan/bit-depths
with no luck - from an su'd session via ssh and specifying the FrameBuffer
device directly). The machine has an external VGA port, that by default is
a "mirror" of the LCD display. Plugging a display in makes no difference,
and the display is also blank (tried at boot, before and after the module
has been loaded).

This problem also appears with the XFree86 SiS chipset drivers on the same
machine, and appears to be related to the code that sets the resolutions.
Disabling resolution changes (hacking up the XFree86 SiS driver) and using
Vesa FrameBuffer to set 1024x768 at boot only provides a clumsy workaround
(you can still change bit-depths and scan rates fine, but you can't change
the resolution - changing that causes the problem).

A few messages off the XFree86 Xpert list seem to have shed a little light
on the problem, in that it seems some registers return values that the code
may not understand how to deal with.

It seems plausible that the documentation that SiS has provided is now
out--of-date, and/or the drivers are assuming the wrong things in cases of
the unknown. The problem is easily reproducible, and the SiS630S chipset
(which seems to be the one affected, but may not necessarily be the only
one) is becoming more widespread in laptop/all-in-one PC's.

If you need more information and/or debug output to help resolve this, just
ask.

AMC Enterprises P/L - Stuart Young
First Floor - Network and Systems Admin
3 Chesterville Rd - [email protected]
Cheltenham Vic 3192 - Ph: (03) 9584-2700
http://www.amc.com.au/ - Fax: (03) 9584-2755


Subject: Re: SiS630S FrameBuffer & LCD

On Tue, 23 Oct 2001, Stuart Young wrote:
> Like my previous SiS post, I'm once again using the Clevo lp200t (SiS630S
> chipset), and trying to enable the SiS FrameBuffer device. Once again, this
> happens on 2.4.9, 2.4.10, and 2.4.12.

Well, that piece of ***** chipset will ONLY work if you talk to it through
the VESA BIOS in a laptop I have here. This is fine for XFree86 (we used
the VESA driver), but I don't know if this would work for the kernel VESA
framebuffer driver.

The SiS drivers will basicaly screw your hardware up. You *must* talk to it
through the BIOS, or it will not manage to get the video/LCD timings right or
even hung the PCI bus. Smells like the chipset needs extra data that the
current drivers do not know how to set.

> In either case, the machine continues to run happily, and I can either ssh

Lucky you. Our laptop got a PCI buffer hung out of the deal.

> It seems plausible that the documentation that SiS has provided is now
> out--of-date, and/or the drivers are assuming the wrong things in cases of
> the unknown. The problem is easily reproducible, and the SiS630S chipset
> (which seems to be the one affected, but may not necessarily be the only
> one) is becoming more widespread in laptop/all-in-one PC's.

Indeed. We need fully updated docs from SiS on how to deal with their newest
"contribution" to the onboard-video family.

--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh

2001-10-23 17:36:13

by Alan

[permalink] [raw]
Subject: Re: SiS630S FrameBuffer & LCD

> Indeed. We need fully updated docs from SiS on how to deal with their newest
> "contribution" to the onboard-video family.

SiS actually had a much updated frame buffer console driver that never made
it into the kernel (stuff needed fixing and I never got a reply so it
dropped out of the tree)

It may be worthing finding out if SiS have the relevant stuff around

2001-10-24 07:56:36

by Robert Vojta

[permalink] [raw]
Subject: Re: SiS630S FrameBuffer & LCD

> SiS actually had a much updated frame buffer console driver that never made
> it into the kernel (stuff needed fixing and I never got a reply so it
> dropped out of the tree)

AFAIK the new informations from SiS are still doesn't working. I have this
SiS630 chipset too and I must use VesaFB for correct chipset initialization
and correct settings. VesaFB must have the same resolution and bpp which
I want in X. And I can use accelerated functions in X (not FB) by ugly hack
in sis_driver.c like, so it leaves settings from VesaFB and functions like
SiSPreSetMode(pScrn) and SiSSetMode(xf86Screens[scrnIndex], mode) are
skipped. I have this driver (precompiled) available on my pages
http://www.v0jta.net/gericom/gericom.php3?&menu=4#vga with all steps how
to make this chipset working with linux.

---
XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c.orig
Fri Jul 13 20:42:56 2001
+++
XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c
@@ -1210,7 +1210,9 @@
vgaHWRestore(pScrn, vgaReg, VGA_SR_MODE);

if ((pSiS->Chipset == PCI_CHIP_SIS300) ||
+#if 0
(pSiS->Chipset == PCI_CHIP_SIS630) ||
+#endif
(pSiS->Chipset == PCI_CHIP_SIS540)) {
SiSPreSetMode(pScrn);
SiSSetMode(pScrn, pScrn->currentMode);
@@ -1550,7 +1552,9 @@
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
SISPtr pSiS = SISPTR(pScrn);
if ((pSiS->Chipset == PCI_CHIP_SIS300) ||
+#if 0
(pSiS->Chipset == PCI_CHIP_SIS630) ||
+#endif
(pSiS->Chipset == PCI_CHIP_SIS540))
return SiSSetMode(xf86Screens[scrnIndex], mode);
else
@@ -1661,7 +1665,9 @@

/* Should we re-save the text mode on each VT enter? */
if((pSiS->Chipset == PCI_CHIP_SIS300) ||
+#if 0
(pSiS->Chipset == PCI_CHIP_SIS630) ||
+#endif
(pSiS->Chipset == PCI_CHIP_SIS540)) {
SiSPreSetMode(pScrn);
if (!SiSSetMode(pScrn, pScrn->currentMode))

--Robert V0jta

--
Robert Vojta <vojta at {pharocom.net - work | v0jta.net - private}>
GPG: ID 1024D/A0CB7953 http://www.v0jta.net/


Attachments:
(No filename) (2.13 kB)
(No filename) (240.00 B)
Download all attachments

2001-10-25 00:10:18

by Stuart Young

[permalink] [raw]
Subject: Re: SiS630S FrameBuffer & LCD

At 09:54 AM 24/10/01 +0200, Robert Vojta wrote:

> AFAIK the new informations from SiS are still doesn't working. I have
> this SiS630 chipset too and I must use VesaFB for correct chipset
> initialization and correct settings. VesaFB must have the same resolution
> and bpp which I want in X. And I can use accelerated functions in X (not
> FB) by ugly hack in sis_driver.c like, so it leaves settings from VesaFB
> and functions like SiSPreSetMode(pScrn)
> and SiSSetMode(xf86Screens[scrnIndex], mode) are skipped. I have this
> driver (precompiled) available on my pages
> http://www.v0jta.net/gericom/gericom.php3?&menu=4#vga with all steps how
> to make this chipset working with linux.

I have a similar patch at...
http://members.optushome.com.au/cefiar1/sis_vesa_fb_hack.diff
..which does the same, except you need to add...

Option "VesaFBHack" "true"

..to the Drivers section of your XF86Config-4 file to enable it.

Got a binary as well, search the XFree86 Xpert list if you want more info.

If the kernel SiS FrameBuffer driver is fixed first, this way will still
work, and maybe a more decent XFree86 patch could use the FrameBuffer mode
sets and so on to change modes, till the XFree86 driver is fixed, and
providing such info to the XFree86 team to fix the bug there as well. I
have yet to hear anything from SiS (and a few SiS employees are on l-k as
well as Xpert) on what they think this could be, or about up-to-date docs.


AMC Enterprises P/L - Stuart Young
First Floor - Network and Systems Admin
3 Chesterville Rd - [email protected]
Cheltenham Vic 3192 - Ph: (03) 9584-2700
http://www.amc.com.au/ - Fax: (03) 9584-2755

2001-10-25 00:19:49

by Stuart Young

[permalink] [raw]
Subject: Re: SiS630S FrameBuffer & LCD

At 06:42 PM 23/10/01 +0100, Alan Cox wrote:
>SiS actually had a much updated frame buffer console driver that never made
>it into the kernel (stuff needed fixing and I never got a reply so it
>dropped out of the tree)

Did this make it into any -pre's or -ac's that you remember? Might give me
somewhere to start at and figure out where the problem lies. Even a general
idea will do, as I'll search it down.

>It may be worthing finding out if SiS have the relevant stuff around

I'll try and contact someone at SiS about relevant info.

PS: Sorry about the reply time, was off sick from work for a day, which is
where I'm subscribed to l-k.

Stuart Young - [email protected]
(aka Cefiar) - [email protected]

[All opinions expressed in the above message are my]
[own and not necessarily the views of my employer..]

2001-10-25 12:44:33

by Alan

[permalink] [raw]
Subject: Re: SiS630S FrameBuffer & LCD

> Did this make it into any -pre's or -ac's that you remember? Might give me
> somewhere to start at and figure out where the problem lies. Even a general
> idea will do, as I'll search it down.
>

I have the escaped code from SiS in my in queue now. I'll go over it and
see about getting it merged