alarm/xf86-video-omapfb to 0.1.1.1-5

This commit is contained in:
Kevin Mihelich 2013-06-19 12:55:37 -06:00
parent 49a630a9ad
commit da5336648a
7 changed files with 528 additions and 26 deletions

View file

@ -0,0 +1,41 @@
From 8fb7d0f99d4afbb574b30cb4f1e66a8f89d94ad5 Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Wed, 26 Jan 2011 12:04:36 +0100
Subject: [PATCH 1/6] 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
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
src/omapfb-crtc.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
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);
+
}
--
1.8.0

View file

@ -0,0 +1,32 @@
From 855c333ac0d16350f895f1d1b9391e9cbb0b6db4 Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Wed, 26 Jan 2011 13:27:20 +0100
Subject: [PATCH 2/6] Revert "Set virtual size when configuring framebuffer"
Virtual size too big, so revert it.
This reverts commit 2653ef07883fbd1a5e7025f9300cf89b79ba429a.
Upstream-Status: Pending
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
src/omapfb-crtc.c | 2 --
1 file changed, 2 deletions(-)
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;
--
1.8.0

View file

@ -0,0 +1,31 @@
From 252f44c072d3447a32127fc9afe5d0d40f3c510e Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Wed, 26 Jan 2011 13:20:20 +0100
Subject: [PATCH 3/6] 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>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
src/omapfb-driver.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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;
--
1.8.0

View file

@ -0,0 +1,33 @@
From cfa46b67f59115f6d8ef9414af60380749ff3eb3 Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Wed, 26 Jan 2011 13:21:12 +0100
Subject: [PATCH 4/6] 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>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
src/omapfb-output-dss.c | 4 ++++
1 file changed, 4 insertions(+)
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;
}
--
1.8.0

View file

@ -0,0 +1,325 @@
From 8b1f697a60e35ab82fffdabfaefdb45e9a9df379 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 5/6] 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>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
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.8.0

View file

@ -1,6 +1,22 @@
diff -urN a/src/compat-api.h b/src/compat-api.h
--- a/src/compat-api.h 1969-12-31 17:00:00.000000000 -0700
+++ b/src/compat-api.h 2013-06-19 11:54:57.509601128 -0600
From 803ecf2909949e6152f4a81b6cbb92a4430679ac Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Fri, 23 Nov 2012 00:31:06 +0100
Subject: [PATCH 6/6] omapfb: port to new xserver video API
Upstream-Status: Pending
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
src/compat-api.h | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++
src/omapfb-driver.c | 41 ++++++++++++-----------
2 files changed, 118 insertions(+), 19 deletions(-)
create mode 100644 src/compat-api.h
diff --git a/src/compat-api.h b/src/compat-api.h
new file mode 100644
index 0000000..b1591b1
--- /dev/null
+++ b/src/compat-api.h
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2012 Red Hat, Inc.
@ -98,9 +114,10 @@ diff -urN a/src/compat-api.h b/src/compat-api.h
+#endif
+
+#endif
diff -urN a/src/omapfb-driver.c b/src/omapfb-driver.c
--- a/src/omapfb-driver.c 2011-03-27 21:59:56.000000000 -0600
+++ b/src/omapfb-driver.c 2013-06-19 11:56:22.509162085 -0600
diff --git a/src/omapfb-driver.c b/src/omapfb-driver.c
index 07989f5..486ffa4 100644
--- a/src/omapfb-driver.c
+++ b/src/omapfb-driver.c
@@ -44,6 +44,8 @@
#include "exa.h"
@ -110,7 +127,7 @@ diff -urN a/src/omapfb-driver.c b/src/omapfb-driver.c
#ifdef HAVE_XEXTPROTO_71
#include <X11/extensions/dpmsconst.h>
#else
@@ -69,10 +71,10 @@
@@ -70,10 +72,10 @@
static Bool OMAPFBProbe(DriverPtr drv, int flags);
static Bool OMAPFBPreInit(ScrnInfoPtr pScrn, int flags);
@ -125,7 +142,7 @@ diff -urN a/src/omapfb-driver.c b/src/omapfb-driver.c
static Bool
OMAPFBEnsureRec(ScrnInfoPtr pScrn)
@@ -475,7 +477,7 @@
@@ -481,7 +483,7 @@ OMAPFBXvScreenInit(ScreenPtr pScreen)
}
static Bool
@ -134,7 +151,7 @@ diff -urN a/src/omapfb-driver.c b/src/omapfb-driver.c
{
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
OMAPFBPtr ofb = OMAPFB(pScrn);
@@ -484,11 +486,11 @@
@@ -490,11 +492,11 @@ OMAPFBCloseScreen(int scrnIndex, ScreenPtr pScreen)
pScreen->CloseScreen = ofb->CloseScreen;
@ -148,16 +165,16 @@ diff -urN a/src/omapfb-driver.c b/src/omapfb-driver.c
{
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
OMAPFBPtr ofb = OMAPFB(pScrn);
@@ -501,7 +503,7 @@
@@ -516,7 +518,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
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);
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Mapping framebuffer memory failed, wanted %d bytes.\n", ofb->mem_info.size);
return FALSE;
}
@@ -511,7 +513,7 @@
@@ -526,7 +528,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
/* Only support TrueColor for now */
if (!miSetVisualTypes(pScrn->depth, TrueColorMask,
pScrn->rgbBits, pScrn->defaultVisual)) {
@ -166,7 +183,7 @@ diff -urN a/src/omapfb-driver.c b/src/omapfb-driver.c
" for %d bits per pixel [1]\n",
pScrn->bitsPerPixel);
return FALSE;
@@ -519,7 +521,7 @@
@@ -534,7 +536,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
/* Set up pixmap depth information */
if (!miSetPixmapDepths()) {
@ -175,7 +192,7 @@ diff -urN a/src/omapfb-driver.c b/src/omapfb-driver.c
return FALSE;
}
@@ -531,7 +533,7 @@
@@ -546,7 +548,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
pScrn->virtualY, pScrn->xDpi,
pScrn->yDpi, pScrn->displayWidth,
pScrn->bitsPerPixel)) {
@ -184,7 +201,7 @@ diff -urN a/src/omapfb-driver.c b/src/omapfb-driver.c
return FALSE;
}
@@ -552,7 +554,7 @@
@@ -567,7 +569,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
/* Initialize XRender fallbacks */
if (!fbPictureInit(pScreen, NULL, 0)) {
@ -193,7 +210,7 @@ diff -urN a/src/omapfb-driver.c b/src/omapfb-driver.c
return FALSE;
}
@@ -564,7 +566,7 @@
@@ -579,7 +581,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
/* Initialize default colormap */
if (!miCreateDefColormap(pScreen)) {
@ -202,7 +219,7 @@ diff -urN a/src/omapfb-driver.c b/src/omapfb-driver.c
"creating default colormap failed\n");
return FALSE;
}
@@ -574,7 +576,7 @@
@@ -589,7 +591,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
/* This is non-fatal since we might be running against older
* kernel driver in which case we only do basic 2D stuff...
*/
@ -211,8 +228,8 @@ diff -urN a/src/omapfb-driver.c b/src/omapfb-driver.c
} else if (!ofb->dss) {
ofb->plane_info.enabled = 1;
@@ -582,7 +584,7 @@
ofb->plane_info.out_height = ofb->state_info.yres;
@@ -602,7 +604,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
}
if (ioctl (ofb->fd, OMAPFB_SETUP_PLANE, &ofb->plane_info)) {
- xf86DrvMsg(scrnIndex, X_ERROR,
@ -220,7 +237,7 @@ diff -urN a/src/omapfb-driver.c b/src/omapfb-driver.c
"%s: Plane setup failed: %s\n",
__FUNCTION__, strerror(errno));
return FALSE;
@@ -625,9 +627,10 @@
@@ -645,9 +647,10 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
return TRUE;
}
@ -233,7 +250,7 @@ diff -urN a/src/omapfb-driver.c b/src/omapfb-driver.c
}
void
@@ -679,14 +682,14 @@
@@ -699,14 +702,14 @@ OMAPFBPrintCapabilities(ScrnInfoPtr pScrn,
/*** Unimplemented: */
static Bool
@ -250,3 +267,6 @@ diff -urN a/src/omapfb-driver.c b/src/omapfb-driver.c
{
xf86Msg(X_NOT_IMPLEMENTED, "%s\n", __FUNCTION__);
}
--
1.8.0

View file

@ -6,20 +6,40 @@ buildarch=4
pkgname="xf86-video-omapfb"
pkgver=0.1.1.1
pkgrel=4
pkgrel=5
arch=('armv7h')
url="http://gitweb.pingu.fi/?p=xf86-video-omapfb.git"
license=('GPL2')
makedepends=('pkgconfig' 'xorg-server-devel' 'resourceproto' 'scrnsaverproto')
options=('!libtool')
source=("http://archlinuxarm.org/builder/src/xf86-video-omapfb_0.1.1.1.tar.gz"
"xorg-api.patch")
"0001-Revert-Set-a-large-CRTC-upper-limit-to-not-prune-lar.patch"
"0002-Revert-Set-virtual-size-when-configuring-framebuffer.patch"
"0003-force-plain-mode.patch"
"0004-blacklist-tv-out.patch"
"0005-Attempt-to-fix-VRFB.patch"
"0006-omapfb-port-to-new-xserver-video-API.patch")
md5sums=('a9bca5424bd76d53b78826f9d5fa4abe'
'30d0a22f99654dfa4c8249cd76ad6839')
'f52826ee0feb5aefc92431df973a6ed2'
'22d822068b570115a4613b73cb719ffd'
'8e04b609ba12d094edecc2ada8335951'
'1abeb90f138fc86015960a9269612e91'
'2acd1c0448e4628353d084f0374c48b6'
'4094ad2bb96ecd5c6faf51f09a7ce65b')
prepare() {
cd "${srcdir}/${pkgname}-${pkgver}"
patch -p1 -i ../0001-Revert-Set-a-large-CRTC-upper-limit-to-not-prune-lar.patch
patch -p1 -i ../0002-Revert-Set-virtual-size-when-configuring-framebuffer.patch
patch -p1 -i ../0003-force-plain-mode.patch
patch -p1 -i ../0004-blacklist-tv-out.patch
patch -p1 -i ../0005-Attempt-to-fix-VRFB.patch
patch -p1 -i ../0006-omapfb-port-to-new-xserver-video-API.patch
}
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
patch -p1 -i ../xorg-api.patch
./autogen.sh
./configure --prefix=/usr