On Tue, 2002-12-31 at 19:41, Alessandro Astarita wrote:
> Il 00:46, domenica 29 dicembre 2002, Mark Vojkovich ha scritto:
> > > How about GeForce4 support for PowerPC machines?
> >
> > I'm not sure when 4.2.99.3 was cut, but GeForce4 should
> > work on PPC after Fri Nov 8 22:00:14 2002 UTC.
>
> I have an iMac G4 17" widescreen and the graphic card is identified as
> "GeForce 4 440 Go" by XFree86.
>
> I have installed XFree86 4.2.1 from debian unstable with nv driver from
> XFree86 CVS. When i try to start X, the screen stays black. I have to
> hit Alt+F1 to back in console and Ctrl+C to kill the process.
>
> Can anyone help me?
Just in case it helps, try the following kernel patch, it will
ask the firmware to open all display heads on boot and not only
the primary.
Also I've seen comments from Ani Joshi in rivafb about some PPC
boards using CRT2 for primary head, maybe the nv driver doesn't
deal properly with that by default (I'm not yet familiar with
the driver, so don't hit me too hard if it's already dealt with,
I'm still reading all that code to get a better idea of how
those cards work).
diff -Nru a/arch/ppc/kernel/prom_init.c b/arch/ppc/kernel/prom_init.c
--- a/arch/ppc/kernel/prom_init.c Sat Jan 11 00:32:07 2003
+++ b/arch/ppc/kernel/prom_init.c Sat Jan 11 00:32:07 2003
@@ -266,7 +266,7 @@
{
phandle node;
ihandle ih;
- int i;
+ int i, j;
char type[16], *path;
static unsigned char default_colors[] = {
0x00, 0x00, 0x00,
@@ -325,26 +325,26 @@
break;
}
-try_again:
/*
* Open the first display and set its colormap.
*/
- if (prom_num_displays > 0) {
- path = prom_display_paths[0];
+ for (j=0; j<prom_num_displays; j++) {
+ path = prom_display_paths[j];
prom_print("opening display ");
prom_print(path);
ih = call_prom("open", 1, 1, path);
if (ih == 0 || ih == (ihandle) -1) {
prom_print("... failed\n");
- for (i=1; i<prom_num_displays; i++) {
+ for (i=j+1; i<prom_num_displays; i++) {
prom_display_paths[i-1] = prom_display_paths[i];
prom_display_nodes[i-1] = prom_display_nodes[i];
}
- if (--prom_num_displays > 0)
- prom_disp_node = prom_display_nodes[0];
- else
+ if (--prom_num_displays > 0) {
+ prom_disp_node = prom_display_nodes[j];
+ j--;
+ } else
prom_disp_node = NULL;
- goto try_again;
+ continue;
} else {
prom_print("... ok\n");
/*
_______________________________________________
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86