From: Sebastian Krzyszkowiak d...@dosowisko.net
Signed-off-by: Martin Jansa martin.ja...@gmail.com
---
.../0004-Attempt-to-fix-VRFB.patch | 320
.../xorg-driver/xf86-video-omapfb_git.bb |3 +-
2 files changed, 322 insertions(+), 1 deletions(-)
create mode 100644
meta-oe/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-Attempt-to-fix-VRFB.patch
diff --git
a/meta-oe/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-Attempt-to-fix-VRFB.patch
b/meta-oe/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-Attempt-to-fix-VRFB.patch
new file mode 100644
index 000..4d2ecd3
--- /dev/null
+++
b/meta-oe/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-Attempt-to-fix-VRFB.patch
@@ -0,0 +1,320 @@
+From 9f034f7a83751e4d1bbff6dd742d54bd96d38230 Mon Sep 17 00:00:00 2001
+From: Eino-Ville Talvala talv...@stanford.edu
+Date: Tue, 23 Aug 2011 18:37:01 +0200
+Subject: [PATCH] Attempt to fix VRFB Signed-off-by: Sebastian Krzyszkowiak
+ d...@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_pixel3); //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,