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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.