diff options
Diffstat (limited to 'meta')
7 files changed, 0 insertions, 616 deletions
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-Attempt-to-fix-VRFB.patch b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-Attempt-to-fix-VRFB.patch deleted file mode 100644 index 6b59b9f363..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-Attempt-to-fix-VRFB.patch +++ /dev/null @@ -1,325 +0,0 @@ -From 9f034f7a83751e4d1bbff6dd742d54bd96d38230 Mon Sep 17 00:00:00 2001 -From: Eino-Ville Talvala <talvala@stanford.edu> -Date: Tue, 23 Aug 2011 18:37:01 +0200 -Subject: [PATCH] Attempt to fix VRFB - -Upstream-Status: Pending - -http://dominion.thruhere.net/git/cgit.cgi/xf86-video-omapfb/commit/?h=koen/fixups&id=6833fc9f795265e4943d248103fbaf3463b515d6 - -Signed-off-by: Sebastian Krzyszkowiak <dos@dosowisko.net> - ---- - src/image-format-conversions.c | 4 +- - src/image-format-conversions.h | 2 +- - src/omapfb-driver.c | 28 +++++++++++++-- - src/omapfb-xv-blizzard.c | 1 + - src/omapfb-xv-generic.c | 72 +++++++++++++++++++++++++++++++-------- - src/omapfb-xv.c | 3 ++ - 6 files changed, 88 insertions(+), 22 deletions(-) - -diff --git a/src/image-format-conversions.c b/src/image-format-conversions.c -index dcefa9b..d43427d 100644 ---- a/src/image-format-conversions.c -+++ b/src/image-format-conversions.c -@@ -38,13 +38,13 @@ - #include "image-format-conversions.h" - - /* Basic line-based copy for packed formats */ --void packed_line_copy(int w, int h, int stride, uint8_t *src, uint8_t *dest) -+void packed_line_copy(int w, int h, int src_stride, int dst_stride, uint8_t *src, uint8_t *dest) - { - int i; - int len = w * 2; - for (i = 0; i < h; i++) - { -- memcpy(dest + i * len, src + i * stride, len); -+ memcpy(dest + i * dst_stride, src + i * src_stride, len); - } - } - -diff --git a/src/image-format-conversions.h b/src/image-format-conversions.h -index 584896a..ba7caf2 100644 ---- a/src/image-format-conversions.h -+++ b/src/image-format-conversions.h -@@ -27,7 +27,7 @@ - #include <stdint.h> - - /* Basic line-based copy for packed formats */ --void packed_line_copy(int w, int h, int stride, uint8_t *src, uint8_t *dest); -+void packed_line_copy(int w, int h, int src_stride, int dst_stride, uint8_t *src, uint8_t *dest); - - /* Basic C implementation of YV12/I420 to UYVY conversion */ - void uv12_to_uyvy(int w, int h, int y_pitch, int uv_pitch, uint8_t *y_p, uint8_t *u_p, uint8_t *v_p, uint8_t *dest); -diff --git a/src/omapfb-driver.c b/src/omapfb-driver.c -index 48aa09c..07989f5 100644 ---- a/src/omapfb-driver.c -+++ b/src/omapfb-driver.c -@@ -66,6 +66,7 @@ - #define OMAPFB_VERSION 1000 - #define OMAPFB_DRIVER_NAME "OMAPFB" - #define OMAPFB_NAME "omapfb" -+#define ENFORCE_MODES - - static Bool OMAPFBProbe(DriverPtr drv, int flags); - static Bool OMAPFBPreInit(ScrnInfoPtr pScrn, int flags); -@@ -105,11 +106,13 @@ static SymTabRec OMAPFBChipsets[] = { - typedef enum { - OPTION_ACCELMETHOD, - OPTION_FB, -+ OPTION_ROTATE, - } FBDevOpts; - - static const OptionInfoRec OMAPFBOptions[] = { - { OPTION_ACCELMETHOD, "AccelMethod", OPTV_STRING, {0}, FALSE }, - { OPTION_FB, "fb", OPTV_STRING, {0}, FALSE }, -+ { OPTION_ROTATE, "rotation", OPTV_STRING, {0}, FALSE }, - { -1, NULL, OPTV_NONE, {0}, FALSE } - }; - -@@ -286,6 +289,7 @@ OMAPFBPreInit(ScrnInfoPtr pScrn, int flags) - { - OMAPFBPtr ofb; - EntityInfoPtr pEnt; -+ char *rotate; - rgb zeros = { 0, 0, 0 }; - struct stat st; - -@@ -379,6 +383,8 @@ OMAPFBPreInit(ScrnInfoPtr pScrn, int flags) - pScrn->progClock = TRUE; - pScrn->chipset = "omapfb"; - -+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Rotate test version 0.02\n"); -+ - /* Start with configured virtual size */ - pScrn->virtualX = pScrn->display->virtualX; - pScrn->virtualY = pScrn->display->virtualY; -@@ -496,12 +502,21 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) - ofb->CloseScreen = pScreen->CloseScreen; - pScreen->CloseScreen = OMAPFBCloseScreen; - -+ /* Enforce the default mode (this is silly I guess) */ -+#ifdef ENFORCE_MODES -+ //xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Enforcing modes\n"); -+ //set_mode(ofb, &ofb->default_mode); -+ //pScrn->displayWidth = ofb->fixed_info.line_length / -+ // (ofb->state_info.bits_per_pixel>>3); //ofb->state_info.xres; -+#endif -+ - /* Map our framebuffer memory */ -+ ofb->mem_info.size = ofb->fixed_info.line_length * ofb->state_info.yres; - ofb->fb = mmap (NULL, ofb->mem_info.size, - PROT_READ | PROT_WRITE, MAP_SHARED, - ofb->fd, 0); -- if (ofb->fb == NULL) { -- xf86DrvMsg(scrnIndex, X_ERROR, "Mapping framebuffer memory failed\n"); -+ if (ofb->fb == MAP_FAILED) { -+ xf86DrvMsg(scrnIndex, X_ERROR, "Mapping framebuffer memory failed, wanted %d bytes.\n", ofb->mem_info.size); - return FALSE; - } - -@@ -578,8 +593,13 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) - } else if (!ofb->dss) { - - ofb->plane_info.enabled = 1; -- ofb->plane_info.out_width = ofb->state_info.xres; -- ofb->plane_info.out_height = ofb->state_info.yres; -+ if (ofb->state_info.rotate == 0 || ofb->state_info.rotate == 2) { -+ ofb->plane_info.out_width = ofb->state_info.xres; -+ ofb->plane_info.out_height = ofb->state_info.yres; -+ } else { -+ ofb->plane_info.out_width = ofb->state_info.yres; -+ ofb->plane_info.out_height = ofb->state_info.xres; -+ } - - if (ioctl (ofb->fd, OMAPFB_SETUP_PLANE, &ofb->plane_info)) { - xf86DrvMsg(scrnIndex, X_ERROR, -diff --git a/src/omapfb-xv-blizzard.c b/src/omapfb-xv-blizzard.c -index 406ffc6..b71d2aa 100644 ---- a/src/omapfb-xv-blizzard.c -+++ b/src/omapfb-xv-blizzard.c -@@ -220,6 +220,7 @@ int OMAPFBXVPutImageBlizzard (ScrnInfoPtr pScrn, - packed_line_copy(src_w & ~3, - src_h & ~3, - ((src_w + 1) & ~1) * 2, -+ ofb->port->fixed_info.line_length, - (uint8_t*)buf, - (uint8_t*)ofb->port->fb); - break; -diff --git a/src/omapfb-xv-generic.c b/src/omapfb-xv-generic.c -index e6f89fe..b33f344 100644 ---- a/src/omapfb-xv-generic.c -+++ b/src/omapfb-xv-generic.c -@@ -62,7 +62,7 @@ int OMAPXVAllocPlane(ScrnInfoPtr pScrn) - { - OMAPFBPtr ofb = OMAPFB(pScrn); - -- /* The memory size is already set in OMAPFBXVQueryImageAttributes */ -+ /* The memory size is already set before we get here */ - if (ioctl(ofb->port->fd, OMAPFB_SETUP_MEM, &ofb->port->mem_info) != 0) { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Failed to allocate video plane memory\n"); -@@ -73,19 +73,20 @@ int OMAPXVAllocPlane(ScrnInfoPtr pScrn) - ofb->port->fb = mmap (NULL, ofb->port->mem_info.size, - PROT_READ | PROT_WRITE, MAP_SHARED, - ofb->port->fd, 0); -- if (ofb->port->fb == NULL) { -+ if (ofb->port->fb == MAP_FAILED) { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Mapping video memory failed\n"); - return XvBadAlloc; - } - - /* Update the state info */ -+ /* Let's not - it's bad - if (ioctl (ofb->port->fd, FBIOGET_VSCREENINFO, &ofb->port->state_info)) - { - xf86Msg(X_ERROR, "%s: Reading state info failed\n", __FUNCTION__); - return XvBadAlloc; - } -- -+ */ - return Success; - } - -@@ -93,6 +94,7 @@ int OMAPXVAllocPlane(ScrnInfoPtr pScrn) - int OMAPXVSetupVideoPlane(ScrnInfoPtr pScrn) - { - OMAPFBPtr ofb = OMAPFB(pScrn); -+ int ret; - - if (ioctl (ofb->port->fd, FBIOPUT_VSCREENINFO, &ofb->port->state_info)) - { -@@ -104,6 +106,31 @@ int OMAPXVSetupVideoPlane(ScrnInfoPtr pScrn) - xf86Msg(X_ERROR, "%s: Reading state info failed\n", __FUNCTION__); - return XvBadAlloc; - } -+ /* Changing rotation/nonstd flags can change the fixed info! */ -+ if (ioctl (ofb->port->fd, FBIOGET_FSCREENINFO, &ofb->port->fixed_info)) -+ { -+ xf86Msg(X_ERROR, "%s: Reading state info failed\n", __FUNCTION__); -+ return XvBadAlloc; -+ } -+ /* Correct fixed info requires recalculation of needed memory */ -+ ofb->port->mem_info.size = ofb->port->fixed_info.line_length * ofb->port->state_info.yres; -+ -+ /* Allocate buffer memory */ -+ ret = OMAPXVAllocPlane(pScrn); -+ if (ret != Success) -+ return ret; -+ -+ /* Workaround for reset of mode after memory allo */ -+ if (ioctl (ofb->port->fd, FBIOPUT_VSCREENINFO, &ofb->port->state_info)) -+ { -+ xf86Msg(X_ERROR, "%s: setting state info failed\n", __FUNCTION__); -+ return XvBadAlloc; -+ } -+ if (ioctl (ofb->port->fd, FBIOGET_VSCREENINFO, &ofb->port->state_info)) -+ { -+ xf86Msg(X_ERROR, "%s: Reading state info failed\n", __FUNCTION__); -+ return XvBadAlloc; -+ } - - if(ioctl(ofb->port->fd, OMAPFB_SETUP_PLANE, - &ofb->port->plane_info) != 0) { -@@ -124,6 +151,8 @@ int OMAPFBXVPutImageGeneric (ScrnInfoPtr pScrn, - DrawablePtr pDraw) - { - OMAPFBPtr ofb = OMAPFB(pScrn); -+ short drw_temp; -+ short rot_xres, rot_yres; - - if (!ofb->port->plane_info.enabled - || ofb->port->update_window.x != src_x -@@ -163,13 +192,6 @@ int OMAPFBXVPutImageGeneric (ScrnInfoPtr pScrn, - return Success; - } - -- /* If we don't have the plane running, enable it */ -- if (!ofb->port->plane_info.enabled) { -- ret = OMAPXVAllocPlane(pScrn); -- if (ret != Success) -- return ret; -- } -- - /* Set up the state info, xres and yres will be used for - * scaling to the values in the plane info struct - */ -@@ -179,12 +201,31 @@ int OMAPFBXVPutImageGeneric (ScrnInfoPtr pScrn, - ofb->port->state_info.yres_virtual = 0; - ofb->port->state_info.xoffset = 0; - ofb->port->state_info.yoffset = 0; -- ofb->port->state_info.rotate = 0; -+ //ofb->port->state_info.rotate = 0; - ofb->port->state_info.grayscale = 0; - ofb->port->state_info.activate = FB_ACTIVATE_NOW; - ofb->port->state_info.bits_per_pixel = 0; - ofb->port->state_info.nonstd = xv_to_omapfb_format(image); - -+ /* Plane info does not rotate with state_info */ -+ if (ofb->port->state_info.rotate == 1 || -+ ofb->port->state_info.rotate == 3) { -+ drw_temp = drw_x; -+ drw_x = drw_y; -+ drw_y = drw_temp; -+ -+ drw_temp = drw_w; -+ drw_w = drw_h; -+ drw_h = drw_temp; -+ -+ rot_xres = ofb->port->state_info.yres; -+ rot_yres = ofb->port->state_info.xres; -+ } else { -+ rot_xres = ofb->port->state_info.xres; -+ rot_yres = ofb->port->state_info.yres; -+ } -+ -+ - /* Set up the video plane info */ - ofb->port->plane_info.enabled = 1; - ofb->port->plane_info.pos_x = drw_x; -@@ -193,13 +234,13 @@ int OMAPFBXVPutImageGeneric (ScrnInfoPtr pScrn, - ofb->port->plane_info.out_height = drw_h & ~15; - - /* Cap output to screen size */ -- if (ofb->port->plane_info.out_width > ofb->state_info.xres) { -+ if (ofb->port->plane_info.out_width > rot_xres) { - ofb->port->plane_info.pos_x = 0; -- ofb->port->plane_info.out_width = ofb->state_info.xres; -+ ofb->port->plane_info.out_width = rot_xres; - } -- if (ofb->port->plane_info.out_height > ofb->state_info.yres) { -+ if (ofb->port->plane_info.out_height > rot_yres) { - ofb->port->plane_info.pos_y = 0; -- ofb->port->plane_info.out_height = ofb->state_info.yres; -+ ofb->port->plane_info.out_height = rot_yres; - } - - ret = OMAPXVSetupVideoPlane(pScrn); -@@ -223,6 +264,7 @@ int OMAPFBXVPutImageGeneric (ScrnInfoPtr pScrn, - packed_line_copy(src_w & ~15, - src_h & ~15, - ((src_w + 1) & ~1) * 2, -+ ofb->port->fixed_info.line_length, - (uint8_t*)buf, - (uint8_t*)ofb->port->fb); - break; -diff --git a/src/omapfb-xv.c b/src/omapfb-xv.c -index 1df651e..0fee2c6 100644 ---- a/src/omapfb-xv.c -+++ b/src/omapfb-xv.c -@@ -169,8 +169,11 @@ static int OMAPFBXVQueryImageAttributes (ScrnInfoPtr pScrn, - h = *height; - - w = (w + 1) & ~1; -+ -+ /* Can't calculate these here - don't know line length - ofb->port->mem_info.size = w << 1; - ofb->port->mem_info.size *= h; -+ */ - - return size; - } --- -1.7.5.4 - diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omap-blacklist-tv-out.patch b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omap-blacklist-tv-out.patch deleted file mode 100644 index 9b1ee06ece..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omap-blacklist-tv-out.patch +++ /dev/null @@ -1,27 +0,0 @@ -commit 05efb061f1945425d214ff6b6050883e6d8633bf -Author: Koen Kooi <koen@dominion.thruhere.net> -Date: Wed Jan 26 13:21:12 2011 +0100 - - blacklist tv out - - The tv-out gets added last and the driver tries to reconfigure dvi to TV resolutions, which fails. so blacklist it - - Upstream-Status: Pending - - Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> - -diff --git a/src/omapfb-output-dss.c b/src/omapfb-output-dss.c -index 6cc52de..83cb711 100644 ---- a/src/omapfb-output-dss.c -+++ b/src/omapfb-output-dss.c -@@ -205,6 +205,10 @@ OMAPFBDSSOutputDetect (xf86OutputPtr output) - if(ofb->timings[idx][0] == '\0') - return XF86OutputStatusDisconnected; - -+ // Hack to disable the tv out -+ if (strncmp(output->name, "tv", 2) == 0) -+ return XF86OutputStatusDisconnected; -+ - return XF86OutputStatusConnected; - } - diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omap-force-plain-mode.patch b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omap-force-plain-mode.patch deleted file mode 100644 index bb298b0e6d..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omap-force-plain-mode.patch +++ /dev/null @@ -1,25 +0,0 @@ -commit d28a36bbadc360a9409bf9832f1d4171d7c33dad -Author: Koen Kooi <koen@dominion.thruhere.net> -Date: Wed Jan 26 13:20:20 2011 +0100 - - force 'plain' mode - - The new DSS mode breaks XV, so force plain mode - - Upstream-Status: Pending - - Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> - -diff --git a/src/omapfb-driver.c b/src/omapfb-driver.c -index 018e040..48aa09c 100644 ---- a/src/omapfb-driver.c -+++ b/src/omapfb-driver.c -@@ -326,7 +326,7 @@ OMAPFBPreInit(ScrnInfoPtr pScrn, int flags) - OMAPFBProbeController(ofb->ctrl_name); - - /* Do we have the DSS kernel API? */ -- if (stat(SYSFS_DSS_DIR, &st) == 0) { -+ if (0) { //stat(SYSFS_DSS_DIR, &st) == 0) { - ofb->dss = TRUE; - } else { - ofb->dss = FALSE; diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omap-revert-set-CRTC-limit.patch b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omap-revert-set-CRTC-limit.patch deleted file mode 100644 index 97bf022ab0..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omap-revert-set-CRTC-limit.patch +++ /dev/null @@ -1,34 +0,0 @@ -commit 031516123d25a12808ab4e56ea8deda74946cdcd -Author: Koen Kooi <koen@dominion.thruhere.net> -Date: Wed Jan 26 12:04:36 2011 +0100 - - Revert "Set a large CRTC upper limit to not prune larger resolutions" - - Picture is garbled after switching resolutions, so revert it. - - Virtual size too big, revert the commit 9c4d7592dcb7dc20a48a6f941d9d94bd73d34153. - - Upstream-Status: Pending - -diff --git a/src/omapfb-crtc.c b/src/omapfb-crtc.c -index 9aaa52f..cbeff35 100644 ---- a/src/omapfb-crtc.c -+++ b/src/omapfb-crtc.c -@@ -190,13 +190,13 @@ OMAPFBCRTCInit(ScrnInfoPtr pScrn) - * In practise, this doesn't seem to be supported. - * (no way to setup the overlay offset/base address) - */ -- /* FIXME: figure out what makes sense here. A known max resolution? -- * framebuffer size? -- */ - xf86CrtcSetSizeRange(pScrn, -- 8, 8, 2048, 2048); -+ 8, 8, -+ ofb->state_info.xres_virtual, -+ ofb->state_info.yres_virtual); - - ofb->crtc = xf86CrtcCreate(pScrn, &OMAPFBCrtcFuncs); -+ - } - - diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omap-revert-set-virtual-size.patch b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omap-revert-set-virtual-size.patch deleted file mode 100644 index 8a6eef5cc2..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omap-revert-set-virtual-size.patch +++ /dev/null @@ -1,25 +0,0 @@ -commit cbae688d7df59938ccb4af534ec2ff75cbbe9221 -Author: Koen Kooi <koen@dominion.thruhere.net> -Date: Wed Jan 26 13:27:20 2011 +0100 - - Revert "Set virtual size when configuring framebuffer" - - Virtual size too big, so revert it. - - This reverts commit 2653ef07883fbd1a5e7025f9300cf89b79ba429a. - - Upstream-Status: Pending - -diff --git a/src/omapfb-crtc.c b/src/omapfb-crtc.c -index cbeff35..9655db2 100644 ---- a/src/omapfb-crtc.c -+++ b/src/omapfb-crtc.c -@@ -98,8 +98,6 @@ OMAPFBCrtcCommitChangeMode (xf86CrtcPtr crtc) - v = ofb->state_info; - v.xres = mode->HDisplay; - v.yres = mode->VDisplay; -- v.xres_virtual = crtc->scrn->virtualX; -- v.yres_virtual = crtc->scrn->virtualY; - v.activate = FB_ACTIVATE_NOW; - v.pixclock = KHZ2PICOS(mode->Clock ? mode->Clock : 56000); - v.left_margin = mode->HTotal - mode->HSyncEnd; diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omapfb-neon.diff b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omapfb-neon.diff deleted file mode 100644 index fb3ac8c594..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/omapfb-neon.diff +++ /dev/null @@ -1,148 +0,0 @@ -Upstream-Status: Pending - ---- /tmp/image-format-conversions.h 2009-02-03 10:18:04.000000000 +0100 -+++ git/src/image-format-conversions.h 2009-02-03 10:19:18.000000000 +0100 -@@ -30,6 +30,8 @@ - /* Basic C implementation of YV12/I420 to UYVY conversion */ - void uv12_to_uyvy(int w, int h, int y_pitch, int uv_pitch, uint8_t *y_p, uint8_t *u_p, uint8_t *v_p, uint8_t *dest); - -+/* NEON implementation of YV12/I420 to UYVY conversion */ -+void uv12_to_uyvy_neon(int w, int h, int y_pitch, int uv_pitch, uint8_t *y_p, uint8_t *u_p, uint8_t *v_p, uint8_t *dest); - - #endif /* __IMAGE_FORMAT_CONVERSIONS_H__ */ - ---- /tmp/image-format-conversions.c 2009-02-03 10:18:04.000000000 +0100 -+++ git/src/image-format-conversions.c 2009-02-03 10:16:47.000000000 +0100 -@@ -2,6 +2,7 @@ - * Copyright 2008 Kalle Vahlman, <zuh@iki.fi> - * Ilpo Ruotsalainen, <lonewolf@iki.fi> - * Tuomas Kulve, <tuomas.kulve@movial.com> -+ * Ian Rickards, <ian.rickards@arm.com> - * - * - * Permission to use, copy, modify, distribute and sell this software and its -@@ -89,3 +90,104 @@ - } - } - -+void uv12_to_uyvy_neon(int w, int h, int y_pitch, int uv_pitch, uint8_t *y_p, uint8_t *u_p, uint8_t *v_p, uint8_t *dest) -+{ -+ int x, y; -+ uint8_t *dest_even = dest; -+ uint8_t *dest_odd = dest + w * 2; -+ uint8_t *y_p_even = y_p; -+ uint8_t *y_p_odd = y_p + y_pitch; -+ -+ /*ErrorF("in uv12_to_uyvy, w: %d, pitch: %d\n", w, pitch);*/ -+ if (w<16) -+ { -+ for (y=0; y<h; y+=2) -+ { -+ for (x=0; x<w; x+=2) -+ { -+ /* Output two 2x1 macroblocks to form a 2x2 block from input */ -+ uint8_t u_val = *u_p++; -+ uint8_t v_val = *v_p++; -+ -+ /* Even row, first pixel */ -+ *dest_even++ = u_val; -+ *dest_even++ = *y_p_even++; -+ -+ /* Even row, second pixel */ -+ *dest_even++ = v_val; -+ *dest_even++ = *y_p_even++; -+ -+ /* Odd row, first pixel */ -+ *dest_odd++ = u_val; -+ *dest_odd++ = *y_p_odd++; -+ -+ /* Odd row, second pixel */ -+ *dest_odd++ = v_val; -+ *dest_odd++ = *y_p_odd++; -+ } -+ -+ dest_even += w * 2; -+ dest_odd += w * 2; -+ -+ u_p += ((uv_pitch << 1) - w) >> 1; -+ v_p += ((uv_pitch << 1) - w) >> 1; -+ -+ y_p_even += (y_pitch - w) + y_pitch; -+ y_p_odd += (y_pitch - w) + y_pitch; -+ } -+ } -+ else -+ { -+ for (y=0; y<h; y+=2) -+ { -+ x=w; -+ do { -+ // avoid using d8-d15 (q4-q7) aapcs callee-save registers -+ asm volatile ( -+ "1:\n\t" -+ "vld1.u8 {d0}, [%[u_p]]!\n\t" -+ "sub %[x],%[x],#16\n\t" -+ "cmp %[x],#16\n\t" -+ "vld1.u8 {d1}, [%[v_p]]!\n\t" -+ "vld1.u8 {q1}, [%[y_p_even]]!\n\t" -+ "vzip.u8 d0, d1\n\t" -+ "vld1.u8 {q2}, [%[y_p_odd]]!\n\t" -+ // use 2-element struct stores to zip up y with y&v -+ "vst2.u8 {q0,q1}, [%[dest_even]]!\n\t" -+ "vmov.u8 q1, q2\n\t" -+ "vst2.u8 {q0,q1}, [%[dest_odd]]!\n\t" -+ "bhs 1b\n\t" -+ : [u_p] "+r" (u_p), [v_p] "+r" (v_p), [y_p_even] "+r" (y_p_even), [y_p_odd] "+r" (y_p_odd), -+ [dest_even] "+r" (dest_even), [dest_odd] "+r" (dest_odd), -+ [x] "+r" (x) -+ : -+ : "cc", "memory", "d0","d1","d2","d3","d4","d5" -+ ); -+ if (x!=0) -+ { -+ // overlap final 16-pixel block to process requested width exactly -+ x = 16-x; -+ u_p -= x/2; -+ v_p -= x/2; -+ y_p_even -= x; -+ y_p_odd -= x; -+ dest_even -= x*2; -+ dest_odd -= x*2; -+ x = 16; -+ // do another 16-pixel block -+ } -+ } -+ while (x!=0); -+ -+ dest_even += w * 2; -+ dest_odd += w * 2; -+ -+ u_p += ((uv_pitch << 1) - w) >> 1; -+ v_p += ((uv_pitch << 1) - w) >> 1; -+ -+ y_p_even += (y_pitch - w) + y_pitch; -+ y_p_odd += (y_pitch - w) + y_pitch; -+ } -+ } -+} -+ ---- /tmp/omapfb-xv-generic.c 2009-02-03 10:52:18.000000000 +0100 -+++ git/src/omapfb-xv-generic.c 2009-02-03 10:52:24.000000000 +0100 -@@ -240,7 +240,7 @@ - uint8_t *yb = buf; - uint8_t *ub = yb + (src_y_pitch * src_h); - uint8_t *vb = ub + (src_uv_pitch * (src_h / 2)); -- uv12_to_uyvy(src_w & ~15, -+ uv12_to_uyvy_neon(src_w & ~15, - src_h & ~15, - src_y_pitch, - src_uv_pitch, -@@ -256,7 +256,7 @@ - uint8_t *yb = buf; - uint8_t *vb = yb + (src_y_pitch * src_h); - uint8_t *ub = vb + (src_uv_pitch * (src_h / 2)); -- uv12_to_uyvy(src_w & ~15, -+ uv12_to_uyvy_neon(src_w & ~15, - src_h & ~15, - src_y_pitch, - src_uv_pitch, diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb deleted file mode 100644 index f16441e8db..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb +++ /dev/null @@ -1,32 +0,0 @@ -require xorg-driver-video.inc - -SUMMARY = "X.Org X server -- Texas Instruments OMAP framebuffer driver" - -DESCRIPTION = "omapfb driver supports the basic Texas Instruments OMAP \ -framebuffer." - -LICENSE = "MIT-X & GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=63e2cbac53863f60e2f43343fb34367f" -DEPENDS += "virtual/libx11" - -SRCREV = "28c006c94e57ea71df11ec4fff79d7ffcfc4860f" -PR = "${INC_PR}.6" -PV = "0.1.1+gitr${SRCPV}" - -SRC_URI = "git://git.pingu.fi/xf86-video-omapfb;protocol=http \ - file://omap-revert-set-CRTC-limit.patch \ - file://omap-revert-set-virtual-size.patch \ - file://omap-force-plain-mode.patch \ - file://omap-blacklist-tv-out.patch \ - file://0004-Attempt-to-fix-VRFB.patch \ -" - -S = "${WORKDIR}/git" - -EXTRA_OECONF_armv7a = " --enable-neon " -CFLAGS += " -I${STAGING_INCDIR}/xorg " - -# Use overlay 2 on omap3 to enable other apps to use overlay 1 (e.g. dmai or omapfbplay) -do_compile_prepend_armv7a () { - sed -i -e s:fb1:fb2:g ${S}/src/omapfb-xv.c -} |