Accel ATI Rage 128 support, the very first step (Help needed)
Ryuichi Oikawa
roikawa at rr.iij4u.or.jp
Thu Oct 28 04:26:24 EST 1999
From: Charlie McLachlan <cim at uk.research.att.com>
Subject: Accel ATI Rage 128 support, the very first step (Help needed)
> I've taken a look at the the Suse code and the Antony's aty128 fb with a
> mind to accelerating console scrolling (for a start).
>
> Starting with the fb device.
>
> I've found the bmove function and guess that's what is used to copy
> bits of the screen around.
>
> As an experiment, I replace it with a function that does nothing.
>
> Thus,
>
> (all the following based on Antony's aty128fb.c)
>
> add a display_switch to fb_info_aty128
>
> struct fb_info_aty128 {
> ...
> struct display_switch dispw;
> ...
> };
>
> then alter aty128_set_disp so that instead of just
>
> disp->dispw = &fbcon_cfb<whatever>;
>
> we have
>
> disp->dispw= &info->dispw;
> memcpy(&info->dispw,&fbcon_cfb<whatever>,sizeof(fbcon_cfb<whatever>));
> info->dispw.bmove=fbcon_aty128_bmove;
>
> where fbcon_aty128_bmove is a function of my own devising that does
> nothing.
>
> The result was that vertical scolling worked fine (i.e. when you typed
> to the bottom of the screen the scroll upward was okay) but when scrooling
> horizontally (like when you back cursor through a line then add more
> characters) the remains of the line (the bit to the right of the cursor)
> is not moved.
>
> So on to the questions:
>
> (I realise some of these might be RTFM answers, but I don't know which FM
> I should be R'ing)
>
> 1) What gives? Why isn't bmove (seemingly) used for vertical console
> scrolls?
>
> 2) If I recompile aty128fb, how do I replace the currently active version
> without having to restart? (i.e. how do I change frame buffer modules?)
>
> 3) Have I got this all wrong? Is bmove even what I should be thinking of?
>
> 4) Where can I find more frame buffer documentation? I've worked most of
> this out from the skellington framebuffer device and Antony's code.
>
> 5) Antony's code references registers through info->regbase (which is a
> big long hex number with some 8's in it). The Suse code references
> registers through (PCIDevice->_basel & 0xffffff00), where PCIDevice is a
> pciconfigPtr found through probing. Is this the same thing?
I have an Xpmac server with Rage128 acceleration support. If you have ADB
keyboard and mouse, please try:
ftp://ppc.linux.or.jp/pub/users/oikawa/Xserver/hw/powermac/Xpmac-3.3.3.1-19991028.gz
Regards,
Ryuichi Oikawa
roikawa at rr.iij4u.or.jp
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-dev
mailing list