From: Aivils S. <Aiv...@un...> - 2002-02-13 10:24:11
|
Hi Can You ilustrate how to video units assigned with /dev/tty's? How many tty's per unit? Where determined concrete /dev/fbX<->/dev/ttyX binding? con2fb couldn't compile with ruby fb.h. I try 3dfxfb.c v1.17 and get no prompt or blank screen. VGA console and Voodoo3 framebuffer configured. Two keyboards is attatched and mapped with two different vt pointer (checked in keyboard.c, kbd_connect()). Must take_over_console() in framebuffer init routines called? Must be additional getty in inittab for second framebuffer added? I patch 3dfxfb.c . This one allowed compilation. Don't know corpse code logic or not. --- ruby-files/drivers/video/tdfx/3dfxfb.c Fri Jan 11 08:54:07 2002 +++ linr/drivers/video/tdfx/3dfxfb.c Tue Feb 12 20:23:10 2002 @@ -326,12 +326,12 @@ struct tdfx_par *par = (struct tdfx_par *) ptr; unsigned long flags; - spin_lock_irqsave(par->DAClock, flags); + spin_lock_irqsave(&par->DAClock, flags); banshee_make_room(1); tdfx_outl(VIDPROCCFG, tdfx_inl(VIDPROCCFG) ^ VIDCFG_HWCURSOR_ENABLE ); par->hwcursor.timer.expires=jiffies+HZ/2; add_timer(&par->hwcursor.timer); - spin_unlock_irqrestore(par->DAClock, flags); + spin_unlock_irqrestore(&par->DAClock, flags); } static u32 do_calc_pll(int freq, int* freq_out) @@ -790,11 +790,11 @@ /* If we are going to be changing things we should disable the cursor first */ if (info->cursor.enable) { - spin_lock_irqsave(par->DAClock, flags); + spin_lock_irqsave(&par->DAClock, flags); info->cursor.enable = 0; del_timer(&(par->hwcursor.timer)); tdfx_outl(VIDPROCCFG, par->hwcursor.disable); - spin_unlock_irqrestore(par->DAClock, flags); + spin_unlock_irqrestore(&par->DAClock, flags); } /* Disable the Cursor */ @@ -813,11 +813,11 @@ (cursor->cmap.green[cursor->cmap.start+1] << 8) | (cursor->cmap.blue[cursor->cmap.start+1])); fb_copy_cmap(&cursor->cmap, &info->cursor.cmap, 0); - spin_lock_irqsave(par->DAClock, flags); + spin_lock_irqsave(&par->DAClock, flags); banshee_make_room(2); tdfx_outl(HWCURC0, bg_color); tdfx_outl(HWCURC1, fg_color); - spin_unlock_irqrestore(par->DAClock, flags); + spin_unlock_irqrestore(&par->DAClock, flags); } if (cursor->set && FB_CUR_SETPOS) { @@ -830,10 +830,10 @@ info->cursor.pos.y = y; x += 63; y += 63; - spin_lock_irqsave(par->DAClock, flags); + spin_lock_irqsave(&par->DAClock, flags); banshee_make_room(1); tdfx_outl(HWCURLOC, (y << 16) + x); - spin_unlock_irqrestore(par->DAClock, flags); + spin_unlock_irqrestore(&par->DAClock, flags); } /* Not supported so we fake it */ @@ -897,10 +897,10 @@ cursor->enable = 1; info->cursor = *cursor; mod_timer(&par->hwcursor.timer, jiffies+HZ/2); - spin_lock_irqsave(par->DAClock, flags); + spin_lock_irqsave(&par->DAClock, flags); banshee_make_room(1); tdfx_outl(VIDPROCCFG, par->hwcursor.enable); - spin_unlock_irqrestore(par->DAClock, flags); + spin_unlock_irqrestore(&par->DAClock, flags); return 0; } @@ -1231,7 +1231,7 @@ init_timer(&default_par.hwcursor.timer); default_par.hwcursor.timer.function = do_flashcursor; default_par.hwcursor.timer.data = (unsigned long)(&default_par); - spin_lock_init(default_par->DAClock); + spin_lock_init(&default_par.DAClock); } fb_info.cursor.set = 0; fb_info.cursor.enable = 0; Aivils Stoss nosy user |