From: Keith Williams <espian@linuxinstruments.com>
To: linux-fbdev-devel@lists.sourceforge.net
Subject: Enabling Hardware acceleration in existing framebuffer driver
Date: Fri, 04 Jul 2008 11:56:02 -0400 [thread overview]
Message-ID: <486E4812.5070803@linuxinstruments.com> (raw)
Hi, all,
I have an embedded board with a s1d13506 epson display chip. There is a
s1d13xxxfb driver that was written for the '806 that generally works
well for the '506.
The '506 does have some 2D hardware acceleration capabilities. Last
night I wrote a fillrect routine as an initial test of how much
performance improvement I could potentially see from enabling acceleration.
However, neither DirectFB nor fbset is picking up on the enabled
acceleration. I'm not sure if there is something more that I need to do.
Below are portions of the driver that I modified:
info->par = default_par;
info->fbops = &s1d13xxxfb_fbops;
info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN |
FBINFO_HWACCEL_FILLRECT;
--The above should set the fb_info flags to show that fillrect
acceleration is available
void s1d13xxxfb_fillrect (struct fb_info *p, const struct fb_fillrect *rect)
{
u32 destination_address;
struct s1d13xxxfb_par *par = p->par;
if (p->state != FBINFO_STATE_RUNNING)
return;
destination_address = (((rect->dy)*480*2)+(rect->dx)*2);
s1d13xxxfb_writereg(par, S1DREG_BBLT_DST_START0,
(destination_address & 0xff));
s1d13xxxfb_writereg(par, S1DREG_BBLT_DST_START1,
((destination_address >> 8) & 0xff));
s1d13xxxfb_writereg(par, S1DREG_BBLT_DST_START2,
((destination_address >> 16) & 0xff));
/// SNIP ///
--This is the beginning of the fillrect acceleration routine (right now
just hardcoded for my particular set-up)
/* framebuffer information structures */
static struct fb_ops s1d13xxxfb_fbops = {
.owner = THIS_MODULE,
.fb_set_par = s1d13xxxfb_set_par,
.fb_setcolreg = s1d13xxxfb_setcolreg,
.fb_blank = s1d13xxxfb_blank,
.fb_pan_display = s1d13xxxfb_pan_display,
/* to be replaced by any acceleration we can */
.fb_fillrect = s1d13xxxfb_fillrect,
.fb_copyarea = cfb_copyarea,
.fb_imageblit = cfb_imageblit,
};
--This is I've added the s1d13xxxfb_fillrect to the fb_ops structure.
Is there anything else that I need to do?
Thanks for any insight.
Keith
-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
next reply other threads:[~2008-07-04 15:56 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-04 15:56 Keith Williams [this message]
2008-07-04 16:22 ` Enabling Hardware acceleration in existing framebuffer driver Krzysztof Helt
2008-07-04 16:33 ` Keith Williams
2008-07-04 17:32 ` Krzysztof Helt
2008-07-04 18:21 ` Ville Syrjälä
2008-07-04 19:09 ` Robert Reif
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=486E4812.5070803@linuxinstruments.com \
--to=espian@linuxinstruments.com \
--cc=linux-fbdev-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).