From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: linux-kernel@vger.kernel.org, greg@kroah.com
Subject: [PATCH 10/29] gma500: 2D acceleration tidying
Date: Tue, 28 Jun 2011 23:05:20 +0100 [thread overview]
Message-ID: <20110628220518.898.80069.stgit@bob.linux.org.uk> (raw)
In-Reply-To: <20110628220151.898.15775.stgit@bob.linux.org.uk>
From: Alan Cox <alan@linux.intel.com>
We have a FIXME to do the power management for which the framework now
exists, and we also need to deal with an erratum. Some operations exactly 8
pixels wide or high fail. The work around is to do two smaller ones (see
the Intel released X driver bits) but for console quite frankly if it's
8bits wide and/or high its not worth it so fall back.
Signed-off-by: Alan Cox <alan@linux.intel.com>
---
drivers/staging/gma500/psb_2d.c | 19 +++++++++++++------
1 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/drivers/staging/gma500/psb_2d.c b/drivers/staging/gma500/psb_2d.c
index c3d7085..494bad5 100644
--- a/drivers/staging/gma500/psb_2d.c
+++ b/drivers/staging/gma500/psb_2d.c
@@ -183,10 +183,14 @@ static void psbfb_fillrect_accel(struct fb_info *info,
cfb_fillrect(info, r);
return;
}
-
+ if (!gma_power_begin(dev, false)) {
+ cfb_fillrect(info, r);
+ return;
+ }
psb_accel_2d_fillrect(dev_priv,
offset, stride, format,
r->dx, r->dy, r->width, r->height, r->color);
+ gma_power_end(dev);
}
void psbfb_fillrect(struct fb_info *info,
@@ -198,9 +202,7 @@ void psbfb_fillrect(struct fb_info *info,
if (1 || (info->flags & FBINFO_HWACCEL_DISABLED))
return cfb_fillrect(info, rect);
- /*psb_check_power_state(dev, PSB_DEVICE_SGX); */
psbfb_fillrect_accel(info, rect);
- /* Drop power again here on MRST FIXMEAC */
}
static u32 psb_accel_2d_copy_direction(int xdir, int ydir)
@@ -331,10 +333,15 @@ static void psbfb_copyarea_accel(struct fb_info *info,
return;
}
+ if (!gma_power_begin(dev, false)) {
+ cfb_copyarea(info, a);
+ return;
+ }
psb_accel_2d_copy(dev_priv,
offset, stride, src_format,
offset, stride, dst_format,
a->sx, a->sy, a->dx, a->dy, a->width, a->height);
+ gma_power_end(dev);
}
void psbfb_copyarea(struct fb_info *info,
@@ -343,12 +350,12 @@ void psbfb_copyarea(struct fb_info *info,
if (unlikely(info->state != FBINFO_STATE_RUNNING))
return;
- if (info->flags & FBINFO_HWACCEL_DISABLED)
+ /* Avoid the 8 pixel erratum */
+ if (region->width == 8 || region->height == 8 ||
+ (info->flags & FBINFO_HWACCEL_DISABLED))
return cfb_copyarea(info, region);
- /* psb_check_power_state(dev, PSB_DEVICE_SGX); */
psbfb_copyarea_accel(info, region);
- /* Need to power back off here for MRST FIXMEAC */
}
void psbfb_imageblit(struct fb_info *info, const struct fb_image *image)
next prev parent reply other threads:[~2011-06-28 22:05 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-28 22:02 [PATCH 00/29] GMA500 updates Alan Cox
2011-06-28 22:03 ` [PATCH 01/29] gma500: fix warnings Alan Cox
2011-06-28 22:03 ` [PATCH 02/29] gma500: Make GTT pages uncached Alan Cox
2011-06-28 22:03 ` [PATCH 03/29] gma500: Ensure the frame buffer has a linear virtual mapping Alan Cox
2011-06-28 22:03 ` [PATCH 04/29] gma500: Set the correct bits according to the pipe Alan Cox
2011-06-28 22:04 ` [PATCH 05/29] gma500: Fix uninitialized variable and style issues Alan Cox
2011-06-28 22:04 ` [PATCH 06/29] gma500: revamp frame buffer creation and handling Alan Cox
2011-06-29 16:38 ` Jesse Barnes
2011-06-29 18:44 ` Alan Cox
2011-06-28 22:04 ` [PATCH 07/29] gma500: Do sane FB cleanup Alan Cox
2011-06-28 22:04 ` [PATCH 08/29] gma500: trim some of the debug Alan Cox
2011-06-28 22:05 ` [PATCH 09/29] gma500: polish for completion of this phase Alan Cox
2011-06-28 22:05 ` Alan Cox [this message]
2011-06-28 22:05 ` [PATCH 11/29] gma500: nuke the last bits of TTM code Alan Cox
2011-06-28 22:05 ` [PATCH 12/29] gma500: nuke the PSB debug stuff Alan Cox
2011-06-28 22:06 ` [PATCH 13/29] gma500: Kill spare kref Alan Cox
2011-06-28 22:06 ` [PATCH 14/29] gma500: GEM glue Alan Cox
2011-06-28 22:06 ` [PATCH 15/29] gma500: Use the GEM tweaks to provide a GEM frame buffer Alan Cox
2011-06-28 22:06 ` [PATCH 16/29] gma500: CodingStyle pass Alan Cox
2011-06-28 22:07 ` [PATCH 17/29] gma500: 2D polish Alan Cox
2011-06-28 22:07 ` [PATCH 18/29] gma500: Medfield support Alan Cox
2011-06-28 22:07 ` [PATCH 19/29] gma500: Move our other GEM helper into the bits want to push into GEM Alan Cox
2011-06-28 22:07 ` [PATCH 20/29] gma500: Extract BIOSisy stuff from psb_drv Alan Cox
2011-06-28 22:08 ` [PATCH 21/29] gma500: psb_fb tidy/cleanup pass Alan Cox
2011-06-28 22:08 ` [PATCH 22/29] gma500: Only fiddle with clock gating on PSB Alan Cox
2011-06-28 22:08 ` [PATCH 23/29] gma500: being abstracting out devices a bit more Alan Cox
2011-06-28 22:08 ` [PATCH 24/29] gma500: continue abstracting platform specific code Alan Cox
2011-06-28 22:08 ` [PATCH 25/29] gma500: Fix early Medfield crash Alan Cox
2011-06-28 22:09 ` [PATCH 26/29] gma500: Read the GCT panel type information for Medfield Alan Cox
2011-06-28 22:09 ` [PATCH 27/29] gma500: enable Medfield CRTC support Alan Cox
2011-06-28 22:09 ` [PATCH 28/29] gma500: drivers/staging/gma501/psb_intel_display.c: fix build Alan Cox
2011-06-28 22:09 ` [PATCH 29/29] gma500: fix build without backlight device support Alan Cox
-- strict thread matches above, loose matches on Subject: below --
2011-06-16 16:05 [PATCH 00/29] gma500: pending patches versus next 20110616 Alan Cox
2011-06-16 16:34 ` [PATCH 10/29] gma500: 2D acceleration tidying Alan Cox
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=20110628220518.898.80069.stgit@bob.linux.org.uk \
--to=alan@lxorguk.ukuu.org.uk \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
/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