Re: How to implement rotation for framebuffer?
From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2008-04-04 10:34:13
On Fri, 4 Apr 2008, arun c wrote:
I am working on 2430SDP. SDP has omap2430 as the processor and it's
display controller supports rotation of framebuffer in hardware.
I will explain the hardware rotation in brief.
1) One Physical framebuffer is allocated in memory
2) This physical address ( as well as width and height) is programmed in the
VRFB Module (the hardware rotation engine, it stands for virtual rotated
frame buffer)
3)Then VRFB gives you 4 addresses ( virtual addresses which are
transparent to applications)
VBA0 --> Address for 0 degree rotation
VBA90 --> Address for 90 degree rotation
VBA180 --> Address for 180 degree rotation
VBA270 --> Address for 270 degree rotation
Rotation is achieved like this
Assume you want 90 degree rotation
Processor writes all picture data to VBA90 space and lcd reads all
data from VBA0 space
For this kind of implementation i need to change fb_fix_screeninfo
members (smem_start ,smem_len) and fb_info member( screen_base)
dynamically according to degree of rotation.Yep, that's correct.
Please anybody suggest me good ways to implement this kind of rotation in my driver or point me to some code so that i can refer and implement the same.
Very simple: any change of struct fb_var_screeninfo may cause a change
of fb_fix_screeninfo.
Hence if an application requests to change the rotation angle by
changing fb_var_screeninfo.rotate and issuing an FBIOPUT_VSCREENINFO
ioctl, you update your fb_fix_screeninfo and fb_info.screen_base.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace