Skip to contentSkip to conversation

Which FB to use instead of vesafb?

DISCUSSION Ralf Hildebrandt 4 participants 5 messages Jan 14, 2003 – Jan 15, 2003

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Which framebuffer works with a:

01:00.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 420 Go] (rev a3) (prog-if 00 [VGA])
Subsystem: Toshiba America Info Systems: Unknown device 0001
Flags: bus master, 66Mhz, medium devsel, latency 248, IRQ 10
Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
Memory at ec000000 (32-bit, prefetchable) [size=64M]
Memory at ebf80000 (32-bit, prefetchable) [size=512K]
Expansion ROM at <unassigned> [disabled] [size=128K]
Capabilities: <available only to root>

Signature · 5 lines
Ralf Hildebrandt (Im Auftrag des Referat V a)   [email protected]
Charite Campus Mitte                            Tel.  +49 (0)30-450 570-155
Referat V a - Kommunikationsnetze -             Fax.  +49 (0)30-450 570-916
Basic research is what I'm doing when I don't know what I'm doing.
                                              -- Wernher von Braun
#1 lore raw

Try rivafb, but I hear it is broken in 2.5 :)

Regards
Josh

Quoted 23 lines · Ralf Hildebrandt

Which framebuffer works with a:

01:00.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 420 Go] (rev a3) (prog-if 00 [VGA])
Subsystem: Toshiba America Info Systems: Unknown device 0001
Flags: bus master, 66Mhz, medium devsel, latency 248, IRQ 10
Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
Memory at ec000000 (32-bit, prefetchable) [size=64M]
Memory at ebf80000 (32-bit, prefetchable) [size=512K]
Expansion ROM at <unassigned> [disabled] [size=128K]
Capabilities: <available only to root>

Signature · 11 lines
Ralf Hildebrandt (Im Auftrag des Referat V a)   [email protected]
Charite Campus Mitte                            Tel.  +49 (0)30-450 570-155
Referat V a - Kommunikationsnetze -             Fax.  +49 (0)30-450 570-916
Basic research is what I'm doing when I don't know what I'm doing.
                                              -- Wernher von Braun

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
#2 lore raw
Quoted 1 line · Joshua Kwan

Try rivafb, but I hear it is broken in 2.5 :)

Sound like to be broken..

Quoted 12 lines · Ralf Hildebrandt
Quoted 11 lines

Which framebuffer works with a:

01:00.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 420 Go] (rev a3) (prog-if 00 [VGA])
Subsystem: Toshiba America Info Systems: Unknown device 0001
Flags: bus master, 66Mhz, medium devsel, latency 248, IRQ 10
Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
Memory at ec000000 (32-bit, prefetchable) [size=64M]
Memory at ebf80000 (32-bit, prefetchable) [size=512K]
Expansion ROM at <unassigned> [disabled] [size=128K]
Capabilities: <available only to root>

There were patch around for 2.4. Search for Paul Richards on lkml, or apply this one (Richards version diffed against 2.4.21-pre3).

Signature · 3 lines
Ducrot Bruno
http://www.poupinou.org        Page profaissionelle
http://toto.tu-me-saoules.com  Haume page
drivers/video/riva/Makefile +3 -2
@@ -9,7 +9,8 @@
 
 O_TARGET := rivafb.o
 
-obj-y    := fbdev.o riva_hw.o accel.o
-obj-m    := $(O_TARGET)
+export-objs  := fbdev.o
+
+obj-$(CONFIG_FB_RIVA)      := fbdev.o nv_setup.o riva_hw.o accel.o
 
 include $(TOPDIR)/Rules.make
drivers/video/riva/accel.c +21 -0
@@ -243,10 +243,17 @@
 	setup:		fbcon_riva8_setup,
 	bmove:		fbcon_riva_bmove,
 	clear:		fbcon_riva8_clear,
+#ifdef __BIG_ENDIAN
+	putc:		fbcon_cfb8_putc,
+	putcs:		fbcon_cfb8_putcs,
+	revc:		fbcon_cfb8_revc,
+	clear_margins:	fbcon_cfb8_clear_margins,
+#else
 	putc:		fbcon_riva8_putc,
 	putcs:		fbcon_riva8_putcs,
 	revc:		fbcon_riva8_revc,
 	clear_margins:	fbcon_riva8_clear_margins,
+#endif
 	fontwidthmask:	FONTWIDTHRANGE(4, 16)
 };
 #endif
@@ -346,10 +353,17 @@
 	setup:		fbcon_riva16_setup,
 	bmove:		fbcon_riva_bmove,
 	clear:		fbcon_riva16_clear,
+#ifdef __BIG_ENDIAN
+	putc:		fbcon_cfb16_putc,
+	putcs:		fbcon_cfb16_putcs,
+	revc:		fbcon_cfb16_revc,
+	clear_margins:	fbcon_cfb16_clear_margins,
+#else
 	putc:		fbcon_riva16_putc,
 	putcs:		fbcon_riva16_putcs,
 	revc:		fbcon_riva1632_revc,
 	clear_margins:	fbcon_riva16_clear_margins,
+#endif
 	fontwidthmask:	FONTWIDTHRANGE(4, 16)
 };
 #endif
@@ -420,10 +434,17 @@
 	setup:		fbcon_riva32_setup,
 	bmove:		fbcon_riva_bmove,
 	clear:		fbcon_riva32_clear,
+#ifdef __BIG_ENDIAN
+	putc:		fbcon_cfb32_putc,
+	putcs:		fbcon_cfb32_putcs,
+	revc:		fbcon_cfb32_revc,
+	clear_margins:	fbcon_cfb32_clear_margins,
+#else
 	putc:		fbcon_riva32_putc,
 	putcs:		fbcon_riva32_putcs,
 	revc:		fbcon_riva1632_revc,
 	clear_margins:	fbcon_riva32_clear_margins,
+#endif
 	fontwidthmask:	FONTWIDTHRANGE(4, 16)
 };
 #endif
drivers/video/riva/fbdev.c +458 -116

815 lines not on this page · raw message

drivers/video/riva/riva_hw.c +325 -132

704 lines not on this page · raw message

drivers/video/riva/riva_hw.h +97 -12

285 lines not on this page · raw message

drivers/video/riva/riva_tbl.h +78 -21

245 lines not on this page · raw message

drivers/video/riva/rivafb.h +38 -1
@@ -16,6 +16,9 @@
 #define NUM_GRC_REGS		0x09
 #define NUM_ATC_REGS		0x15
 
+
+#define RIVAFB_MAX_DRIVERS	10
+
 /* holds the state of the VGA core and extended Riva hw state from riva_hw.c.
  * From KGI originally. */
 struct riva_regs {
@@ -27,11 +30,22 @@
 	RIVA_HW_STATE ext;
 };
 
+struct rivafb_info;
+struct rivafb_driver {
+	struct list_head node;
+	char *name;
+	void *(*probe)(struct rivafb_info *rinfo);
+	void *(*remove)(struct rivafb_info *rinfo, void *data);
+};
+
+int rivafb_register_driver(struct rivafb_driver *driver);
+void rivafb_unregister_driver(struct rivafb_driver *driver);
+
+
 typedef struct {
 	unsigned char red, green, blue, transp;
 } riva_cfb8_cmap_t;
 
-struct rivafb_info;
 struct rivafb_info {
 	struct fb_info info;	/* kernel framebuffer info */
 
@@ -51,12 +65,18 @@
 	struct riva_regs initial_state;	/* initial startup video mode */
 	struct riva_regs current_state;
 
+	unsigned char *EDID;
+
 	struct display disp;
 	int currcon;
 	struct display *currcon_display;
 
 	struct rivafb_info *next;
 
+	struct rivafb_driver	*(drivers[RIVAFB_MAX_DRIVERS]);
+	void			*(drivers_data[RIVAFB_MAX_DRIVERS]);
+	unsigned int		drivers_count;
+
 	struct pci_dev *pd;	/* pointer to board's pci info */
 	unsigned base0_region_size;	/* size of control register region */
 	unsigned base1_region_size;	/* size of framebuffer region */
@@ -67,6 +87,16 @@
 
 	riva_cfb8_cmap_t palette[256];	/* VGA DAC palette cache */
 
+	int panel_xres, panel_yres;
+	int clock;
+	int hOver_plus, hSync_width, hblank;
+	int vOver_plus, vSync_width, vblank;
+	int hAct_high, vAct_high, interlaced;
+	int synct, misc;
+
+	int use_default_var;
+	int got_dfpinfo;
+
 #if defined(FBCON_HAS_CFB16) || defined(FBCON_HAS_CFB32)
 	union {
 #ifdef FBCON_HAS_CFB16
@@ -80,6 +110,13 @@
 #ifdef CONFIG_MTRR
 	struct { int vram; int vram_valid; } mtrr;
 #endif
+	unsigned int Chipset;
+	int forceCRTC;
+	Bool SecondCRTC;
+	int FlatPanel;
 };
+
+void riva_common_setup(struct rivafb_info*);
+
 
 #endif /* __RIVAFB_H */
include/linux/pci_ids.h +17 -0
@@ -912,12 +912,29 @@
 #define PCI_DEVICE_ID_NVIDIA_GEFORCE2_GTS2	0x0151
 #define PCI_DEVICE_ID_NVIDIA_GEFORCE2_ULTRA	0x0152
 #define PCI_DEVICE_ID_NVIDIA_QUADRO2_PRO	0x0153
+#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_460	0x0170
+#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_440	0x0171
+#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_420	0x0172
+#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_440_GO	0x0174
+#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_420_GO	0x0175
+#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_420_GO_M32	0x0176
+#define PCI_DEVICE_ID_NVIDIA_QUADRO4_500XGL	0x0178
+#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_440_GO_M64	0x0179
+#define PCI_DEVICE_ID_NVIDIA_QUADRO4_200	0x017A
+#define PCI_DEVICE_ID_NVIDIA_QUADRO4_550XGL	0x017B
+#define PCI_DEVICE_ID_NVIDIA_QUADRO4_500_GOGL	0x017C
 #define PCI_DEVICE_ID_NVIDIA_IGEFORCE2		0x01a0
 #define PCI_DEVICE_ID_NVIDIA_NFORCE_IDE		0x01bc
 #define PCI_DEVICE_ID_NVIDIA_GEFORCE3		0x0200
 #define PCI_DEVICE_ID_NVIDIA_GEFORCE3_1		0x0201
 #define PCI_DEVICE_ID_NVIDIA_GEFORCE3_2		0x0202
 #define PCI_DEVICE_ID_NVIDIA_QUADRO_DDC		0x0203
+#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4600	0x0250
+#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4400	0x0251
+#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4200	0x0253
+#define PCI_DEVICE_ID_NVIDIA_QUADRO4_900XGL	0x0258
+#define PCI_DEVICE_ID_NVIDIA_QUADRO4_750XGL	0x0259
+#define PCI_DEVICE_ID_NVIDIA_QUADRO4_700XGL	0x025B
 
 #define PCI_VENDOR_ID_IMS		0x10e0
 #define PCI_DEVICE_ID_IMS_8849		0x8849
#3 lore raw
Quoted 4 lines
Quoted 2 lines

Try rivafb, but I hear it is broken in 2.5 :)

Sound like to be broken..

I have new patches at http://phoenix.infradead.org/~jsimmons/fbdev.diff.gz.

Quoted 2 lines

There were patch around for 2.4. Search for Paul Richards on lkml, or apply this one (Richards version diffed against 2.4.21-pre3).

The above patch is basiclly his ported to the new api.

#4 lore raw
In reply to Joshua Kwan

* Joshua Kwan <[email protected]>:

Quoted 1 line

Try rivafb, but I hear it is broken in 2.5 :)

Nevermind, I'm not mentally 2.5.x ready anyway. I'll stick to 2.4.21-sumthin

Signature · 6 lines
Ralf Hildebrandt (Im Auftrag des Referat V a)   [email protected]
Charite Campus Mitte                            Tel.  +49 (0)30-450 570-155
Referat V a - Kommunikationsnetze -             Fax.  +49 (0)30-450 570-916
What about the four lusers of the apocalypse? 
I nominate: "advertising", "can't log in", "power switch" and "what backup?"
Runners-up: "But I only changed one line" and  "What's the any key"?