Skip to contentSkip to conversation

Resurrect Intel740 driver: i740fb

RFC PATCH Superseded Ondrej Zary 5 participants 8 messages Aug 21, 2011 – Aug 26, 2011 Framebuffer layer

v2 of 5 Superseded Latest is v5 →

lore
Share & tools
lore
#0 lore raw

RFC PATCH v2 1/1 Resurrect Intel740 driver: i740fb

Hello,
this is an v2 attempt to resurrect an old (like 2.4.19) out-of-tree driver for Intel740 graphics cards and modify it for recent kernels. The old driver is located at: http://sourceforge.net/projects/i740fbdev/files/

It was easier to create a new driver based on skeletonfb, using most of the low level HW code from the old driver. The DDC code is completely new.

The driver was tested on two 8MB cards: ManLi and Diamond Stealth II G460

The i740_calc_fifo() function formatting is nice but does not pass checkpatch. Making it checkpatch-compliant makes the code look ugly. How to make it both nice and compatible with Linux coding style?
(the remaining // comments mark things that need attention - missing xpan and suspend/resume)

Changes in v2:
- fixed 15bpp (16bpp 555) mode
- not working 1280x1024-32 is not a bug but card's feature, it's now handled correctly by the driver
- 24bpp modes still don't work in fbtest but it looks like fbtest bug!

Is there any better way to test fb drivers than fbtest?

no signed-off-by yet

drivers/video/Kconfig +11 -0
@@ -1117,6 +1117,17 @@ config FB_RIVA_BACKLIGHT
 	help
 	  Say Y here if you want to control the backlight of your display.
 
+config FB_I740
+	tristate "Intel740 support (EXPERIMENTAL)"
+	depends on EXPERIMENTAL && FB && PCI && X86_32 && AGP_INTEL
+	select FB_MODE_HELPERS
+	select FB_CFB_FILLRECT
+	select FB_CFB_COPYAREA
+	select FB_CFB_IMAGEBLIT
+	select VGASTATE
+	help
+	  This driver supports graphics cards based on Intel740 chip.
+
 config FB_I810
 	tristate "Intel 810/815 support (EXPERIMENTAL)"
 	depends on EXPERIMENTAL && FB && PCI && X86_32 && AGP_INTEL
drivers/video/i740fb.c new file +1259 -0

1,259 lines not on this page · raw message

drivers/video/i740_reg.h new file +309 -0

309 lines not on this page · raw message

Signature · 1 line
Ondrej Zary
#1 lore raw
Quoted 4 lines · Ondrej Zary

The i740_calc_fifo() function formatting is nice but does not pass checkpatch. Making it checkpatch-compliant makes the code look ugly. How to make it both nice and compatible with Linux coding style?

When checkpatch.pl and sanity conflict, sanity should generally win.

-Andi

Signature · 1 line
[email protected] -- Speaking for myself only
#2 lore raw
In reply to Ondrej Zary
Quoted 3 lines

- 24bpp modes still don't work in fbtest but it looks like fbtest bug!

Is there any better way to test fb drivers than fbtest?

X11 fbdev driver ?

Alan

#3 lore raw
Quoted 5 lines · Alan Cox
Quoted 3 lines

- 24bpp modes still don't work in fbtest but it looks like fbtest bug!

Is there any better way to test fb drivers than fbtest?

X11 fbdev driver ?

Thanks, completely forgot about that. It works fine even in 24bpp.

Quoted 1 line

Alan

Signature · 1 line
Ondrej Zary
#4 lore raw
Quoted 8 lines · Ondrej Zary
Quoted 5 lines · Alan Cox
Quoted 3 lines

- 24bpp modes still don't work in fbtest but it looks like fbtest bug!

Is there any better way to test fb drivers than fbtest?

X11 fbdev driver ?

Thanks, completely forgot about that. It works fine even in 24bpp.

Beware that Xorg defaults to 32 bpp for depth 24; did you verify in Xorg.0.log that it was really using 24 bpp?

Signature · 2 lines
Earthling Michel Dänzer           |                   http://www.amd.com
Libre software enthusiast         |          Debian, X and DRI developer
#5 lore raw
Quoted 5 lines · Michel Dänzer
Quoted 4 lines · Ondrej Zary
Quoted 3 lines · Alan Cox
Quoted 3 lines

- 24bpp modes still don't work in fbtest but it looks like fbtest bug!

Quoted 8 lines
Quoted 5 lines
Quoted 3 lines
Quoted 1 line

Is there any better way to test fb drivers than fbtest?

X11 fbdev driver ?

Thanks, completely forgot about that. It works fine even in 24bpp.

Beware that Xorg defaults to 32 bpp for depth 24; did you verify in Xorg.0.log that it was really using 24 bpp?

Yes, found that very quickly as I was testing at 1280x1024 and the card cannot do 32bpp there. I had to set both DefaultDepth and DefaultFbBpp to 24 for X11 to run.

Signature · 1 line
Ondrej Zary
#6 lore raw
In reply to Ondrej Zary
Quoted 33 lines · Ondrej Zary

Hello,
this is an v2 attempt to resurrect an old (like 2.4.19) out-of-tree driver for Intel740 graphics cards and modify it for recent kernels. The old driver is located at: http://sourceforge.net/projects/i740fbdev/files/

It was easier to create a new driver based on skeletonfb, using most of the low level HW code from the old driver. The DDC code is completely new.

The driver was tested on two 8MB cards: ManLi and Diamond Stealth II G460

The i740_calc_fifo() function formatting is nice but does not pass checkpatch. Making it checkpatch-compliant makes the code look ugly. How to make it both nice and compatible with Linux coding style?
(the remaining // comments mark things that need attention - missing xpan and suspend/resume)

Changes in v2:
- fixed 15bpp (16bpp 555) mode
- not working 1280x1024-32 is not a bug but card's feature, it's now handled correctly by the driver
- 24bpp modes still don't work in fbtest but it looks like fbtest bug!

Is there any better way to test fb drivers than fbtest?

no signed-off-by yet

drivers/video/Kconfig      2011-07-30 11:34:10.000000000 +0200 renamed from drivers/video/Kconfig 2011-04-06 03:30:43.000000000 +0200 +0 -0
@@ -1117,6 +1117,17 @@ config FB_RIVA_BACKLIGHT

       help
         Say Y here if you want to control the backlight of your display.

drivers/video/Kconfig      2011-07-30 11:34:10.000000000 +0200 renamed from drivers/video/Kconfig 2011-04-06 03:30:43.000000000 +0200 +1 -0
+config FB_I740

drivers/video/Kconfig      2011-07-30 11:34:10.000000000 +0200

Quoted 10 lines
drivers/video/Kconfig      2011-07-30 11:34:10.000000000 +0200 renamed from drivers/video/Kconfig 2011-04-06 03:30:43.000000000 +0200 +10 -0
+       tristate "Intel740 support (EXPERIMENTAL)"
+       depends on EXPERIMENTAL && FB && PCI && X86_32 && AGP_INTEL
+       select FB_MODE_HELPERS
+       select FB_CFB_FILLRECT
+       select FB_CFB_COPYAREA
+       select FB_CFB_IMAGEBLIT
+       select VGASTATE
+       help
+         This driver supports graphics cards based on Intel740 chip.
+

It shouldn't need AGP_INTEL, as its an AGP card not an integrated chipset, it might need just AGP.

Dave.

#7 lore raw
Quoted 1 line · Dave Airlie

On Sun, Aug 21, 2011 at 9:42 PM, Ondrej Zary <[email protected]>

Quoted 35 lines · wrote:
Quoted 35 lines

Hello,
this is an v2 attempt to resurrect an old (like 2.4.19) out-of-tree driver for Intel740 graphics cards and modify it for recent kernels. The old driver is located at:
http://sourceforge.net/projects/i740fbdev/files/

It was easier to create a new driver based on skeletonfb, using most of the low level HW code from the old driver. The DDC code is completely new.

The driver was tested on two 8MB cards: ManLi and Diamond Stealth II G460

The i740_calc_fifo() function formatting is nice but does not pass checkpatch. Making it checkpatch-compliant makes the code look ugly. How to make it both nice and compatible with Linux coding style? (the remaining // comments mark things that need attention - missing xpan and suspend/resume)

Changes in v2:
- fixed 15bpp (16bpp 555) mode
- not working 1280x1024-32 is not a bug but card's feature, it's now handled correctly by the driver
- 24bpp modes still don't work in fbtest but it looks like fbtest bug!

Is there any better way to test fb drivers than fbtest?

no signed-off-by yet

--- linux-2.6.39-rc2-orig/drivers/video/Kconfig 2011-04-06 03:30:43.000000000 +0200 +++ linux-2.6.39-rc2/drivers/video/Kconfig

 2011-07-30 11:34:10.000000000 +0200 @@ -1117,6 +1117,17 @@ config

FB_RIVA_BACKLIGHT
       help
         Say Y here if you want to control the backlight of your display.

Quoted 14 lines

drivers/video/Kconfig config FB_RIVA_BACKLIGHT · line 1130

Quoted 11 lines
drivers/video/Kconfig +11 -0
+config FB_I740
+       tristate "Intel740 support (EXPERIMENTAL)"
+       depends on EXPERIMENTAL && FB && PCI && X86_32 && AGP_INTEL
+       select FB_MODE_HELPERS
+       select FB_CFB_FILLRECT
+       select FB_CFB_COPYAREA
+       select FB_CFB_IMAGEBLIT
+       select VGASTATE
+       help
+         This driver supports graphics cards based on Intel740 chip.
+

It shouldn't need AGP_INTEL, as its an AGP card not an integrated chipset, it might need just AGP.

Oops, I copied that from I810 and then forgot about it...will fix that to really match the driver requirements.

BTW. i740 cards are really picky, they don't even POST with most boards that don't have i440LX/EX or i440BX/ZX chipsets.

Signature · 1 line
Ondrej Zary