2001-12-21 14:53:08

by Thomas Winischhofer

[permalink] [raw]
Subject: @Linus, Marcello, (Alan?) (regards sisfb)


Hi, as you might know, the sisfb driver did not work correctly on
systems with SiS630 and LCD panels, i.e laptops. The problem was the
type of video bridge used, which is LVDS in most cases.

The current driver contained in the kernel can't even work in theory,
because

1) the tables that should have contained necessary data for refresh and
timing were empty, and

2) this data depends on the type of LCD panels attached and is not the
same on all machines.

So, the whole theory with this driver is a failure.

I therefore re-wrote (and commented) the sisfb driver to read out the
BIOS data, instead of its very own tables. On non-SiS630 or non-LVDS
systems, the old code is used.

>From the feedback I got, I know that the driver is working in about 50%
of the SiS630-LVDS-machines out there, depending on what revision of the
SiS630 and LCD panel being used. This is 50% more than before!

The driver has been tested on systems without a video bridge as well
(ie. desktop machines) and it works there as well. This means I didn't
break it for other configurations.

The dark side: The driver is - when used on SiS630 and LVDS - not
LinuxBIOS-capable (because it depends on data stored in the SiS-BIOS)

Are you willing to include the new driver in the kernel?

It's available here: http://members.aon.at/~twinisch/sisfb.tar.gz

I have not made a patch, because this patch would be about as twice as
huge than the whole code. But if you insist, I could make a patch as
well. The code is based on 2.4.16. AFAIK there were no changes to sisfb
up to current 17-rc2. The archive is to be extracted over the existing
code while in /usr/src/linux/drivers/video/sis/

Thomas

--
Thomas Winischhofer
Vienna/Austria Check it out:
mailto:[email protected] http://www.webit.com/tw


2001-12-21 15:41:02

by Alan

[permalink] [raw]
Subject: Re: @Linus, Marcello, (Alan?) (regards sisfb)

> So, the whole theory with this driver is a failure.

Its the same driver core XFree86 uses. Also if you are not looking at a
currentish 2.4 or 2.5 you'll have the wrong code.

> Are you willing to include the new driver in the kernel?
> It's available here: http://members.aon.at/~twinisch/sisfb.tar.gz

If your timings are wrong you may destroy the LCD panel.

2001-12-21 16:47:29

by Alan

[permalink] [raw]
Subject: Re: @Linus, Marcello, (Alan?) (regards sisfb)

> I used the 2.4.16 code as basis. There have not been any patches since
> that (at least in the 2.4 series).

You have current code from SiS then yes.

> The timings are taken from the machine's BIOS. If that data is wrong, no
> driver will ever work.

Ok. You said you have one interface working, does the new driver refuse to load
for unknown chips ?

I'm not fundamentally opposed to changing the driver - the old one works on
my ancient 6326 but its icky code.

Alan

2001-12-21 16:44:09

by Thomas Winischhofer

[permalink] [raw]
Subject: Re: @Linus, Marcello, (Alan?) (regards sisfb)

Alan Cox wrote:
>
> > So, the whole theory with this driver is a failure.
>
> Its the same driver core XFree86 uses. Also if you are not looking at a
> currentish 2.4 or 2.5 you'll have the wrong code.

No, it's not the same driver core. Take a look yourself.

I used the 2.4.16 code as basis. There have not been any patches since
that (at least in the 2.4 series).

I am currently also re-writing the X driver using the new core (and
eventually VESA functions).

> > Are you willing to include the new driver in the kernel?
> > It's available here: http://members.aon.at/~twinisch/sisfb.tar.gz
>
> If your timings are wrong you may destroy the LCD panel.

The timings are taken from the machine's BIOS. If that data is wrong, no
driver will ever work.

By the way: You might also have destroyed your LCD when using the old
drivers with the 0-values.

Thomas

--
Thomas Winischhofer
Vienna/Austria Check it out:
mailto:[email protected] http://www.webit.com/tw

2001-12-25 17:08:08

by Thomas Winischhofer

[permalink] [raw]
Subject: Re: @Linus, Marcello, (Alan?) (regards sisfb)


Hi again.

I just finished an update for the new sisfb driver which is available
here:

http://members.aon.at/~twinisch/sisfb_src_251201.tar.gz

The update was necessary for making sisfb co-operate better with the new
X driver.

Feedback welcome.

Thomas


Thomas Winischhofer wrote:
>
> Hi, as you might know, the sisfb driver did not work correctly on
> systems with SiS630 and LCD panels, i.e laptops. The problem was the
> type of video bridge used, which is LVDS in most cases.
>
> The current driver contained in the kernel can't even work in theory,
> because
>
> 1) the tables that should have contained necessary data for refresh and
> timing were empty, and
>
> 2) this data depends on the type of LCD panels attached and is not the
> same on all machines.
>
> So, the whole theory with this driver is a failure.
>
> I therefore re-wrote (and commented) the sisfb driver to read out the
> BIOS data, instead of its very own tables. On non-SiS630 or non-LVDS
> systems, the old code is used.
>
> From the feedback I got, I know that the driver is working in about 50%
> of the SiS630-LVDS-machines out there, depending on what revision of the
> SiS630 and LCD panel being used. This is 50% more than before!
>
> The driver has been tested on systems without a video bridge as well
> (ie. desktop machines) and it works there as well. This means I didn't
> break it for other configurations.
>
> The dark side: The driver is - when used on SiS630 and LVDS - not
> LinuxBIOS-capable (because it depends on data stored in the SiS-BIOS)
>
> Are you willing to include the new driver in the kernel?
>
> It's available here: <old link, outdated - see above>
>
> I have not made a patch, because this patch would be about as twice as
> huge than the whole code. But if you insist, I could make a patch as
> well. The code is based on 2.4.16. AFAIK there were no changes to sisfb
> up to current 17-rc2. The archive is to be extracted over the existing
> code while in /usr/src/linux/drivers/video/sis/
>
> Thomas

--
Thomas Winischhofer
Vienna/Austria
mailto:[email protected] *** http://www.webit.com/tw

2001-12-26 11:49:26

by bert hubert

[permalink] [raw]
Subject: Re: @Linus, Marcello, (Alan?) (regards sisfb)

On Tue, Dec 25, 2001 at 06:02:11PM +0100, Thomas Winischhofer wrote:
>
> Hi again.
>
> I just finished an update for the new sisfb driver which is available
> here:
>
> http://members.aon.at/~twinisch/sisfb_src_251201.tar.gz

Works for me! Thanks!

On a Gericom Webgine Laptop:
Linux version 2.5.0 (ahu@snapcount) (gcc version 2.95.4 20011006 (Debian prerelease)) #2 Wed Dec 26 12:31:08 CET 2001
Kernel command line: auto BOOT_IMAGE=sis ro root=301 video=sisfb:mode:1024x768x16
(...)
SiS ROM signature = 55 ffffffaa 60 ffffffe9 5f 2 32 2e 30 32 2e 31 (U*_B2.02.1)
sisfb: Assuming BIOS at 0xc00c0000 and copied to RAM (Sig: 55 aa 60)
sisfb: framebuffer at 0xd0000000, mapped to 0xd001c000, size 8192k
sisfb: MMIO at 0xdfee0000, mapped to 0xd081d000, size 128k
sisfb: LVDS bridge and CHRONTEL TV converter detected
sisfb: mode is 1024x768x16 (60Hz), linelength=2048
Console: switching to colour frame buffer device 128x48
fb0: SIS 630 frame buffer device, Version 1.3.09

> The update was necessary for making sisfb co-operate better with the new
> X driver.

Will test that next.

Regards,

bert

--
http://www.PowerDNS.com Versatile DNS Software & Services
http://www.tk the dot in .tk
Netherlabs BV / Rent-a-Nerd.nl - Nerd Available -
Linux Advanced Routing & Traffic Control: http://ds9a.nl/lartc