[pkg-fso-commits] [SCM] xf86-video-glamo, SMedia Glamo video driver for X.Org branch, master, updated. upstream/0.0.0+20090224.git703acea1-15-g25c4b0e

Lars-Peter Clausen lars at metafoo.de
Mon May 18 16:46:37 UTC 2009


The following commit has been merged in the master branch:
commit 8b82afb51440f33fcbbe609a50ceb2c5986adf57
Author: Lars-Peter Clausen <lars at metafoo.de>
Date:   Fri May 1 23:37:30 2009 +0200

    Code cleanup:
    * Delete unused files
    * Move engine code to it's own file
    * Remove some proxy functions

diff --git a/src/glamo-engine.c b/src/glamo-engine.c
new file mode 100644
index 0000000..895f019
--- /dev/null
+++ b/src/glamo-engine.c
@@ -0,0 +1,236 @@
+/*
+ * Copyright © 2009 Lars-Peter Clausen <lars at metafoo.de>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting documentation, and
+ * that the name of the copyright holders not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission.  The copyright holders make no representations
+ * about the suitability of this software for any purpose.  It is provided "as
+ * is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+
+#include "glamo.h"
+#include "glamo-engine.h"
+
+void
+GLAMOEngineReset(GlamoPtr pGlamo, enum GLAMOEngine engine)
+{
+	CARD32 reg;
+	CARD16 mask;
+	volatile char *mmio = pGlamo->reg_base;
+
+	if (!mmio)
+		return;
+
+	switch (engine) {
+		case GLAMO_ENGINE_CMDQ:
+			reg = GLAMO_REG_CLOCK_2D;
+			mask = GLAMO_CLOCK_2D_CMDQ_RESET;
+			break;
+		case GLAMO_ENGINE_ISP:
+			reg = GLAMO_REG_CLOCK_ISP;
+			mask = GLAMO_CLOCK_ISP2_RESET;
+			break;
+		case GLAMO_ENGINE_2D:
+			reg = GLAMO_REG_CLOCK_2D;
+			mask = GLAMO_CLOCK_2D_RESET;
+			break;
+		default:
+			return;
+			break;
+	}
+	MMIOSetBitMask(mmio, reg, mask, 0xffff);
+    sleep(1);
+    MMIOSetBitMask(mmio, reg, mask, 0);
+    sleep(1);
+}
+
+void
+GLAMOEngineDisable(GlamoPtr pGlamo, enum GLAMOEngine engine)
+{
+	volatile char *mmio = pGlamo->reg_base;
+
+	if (!mmio)
+		return;
+
+    switch (engine) {
+		case GLAMO_ENGINE_CMDQ:
+			MMIOSetBitMask(mmio, GLAMO_REG_CLOCK_2D,
+					GLAMO_CLOCK_2D_EN_M6CLK,
+					0);
+			MMIOSetBitMask(mmio, GLAMO_REG_HOSTBUS(2),
+					GLAMO_HOSTBUS2_MMIO_EN_CMDQ,
+					0);
+			MMIOSetBitMask(mmio, GLAMO_REG_CLOCK_GEN5_1,
+					GLAMO_CLOCK_GEN51_EN_DIV_MCLK,
+					0);
+			break;
+		case GLAMO_ENGINE_ISP:
+			MMIOSetBitMask(mmio, GLAMO_REG_CLOCK_ISP,
+					GLAMO_CLOCK_ISP_EN_M2CLK |
+					GLAMO_CLOCK_ISP_EN_I1CLK,
+					0);
+			MMIOSetBitMask(mmio, GLAMO_REG_CLOCK_GEN5_2,
+					GLAMO_CLOCK_GEN52_EN_DIV_ICLK,
+					0);
+			MMIOSetBitMask(mmio, GLAMO_REG_CLOCK_GEN5_1,
+					GLAMO_CLOCK_GEN51_EN_DIV_JCLK,
+					0);
+			MMIOSetBitMask(mmio, GLAMO_REG_HOSTBUS(2),
+					GLAMO_HOSTBUS2_MMIO_EN_ISP,
+					0);
+			break;
+		case GLAMO_ENGINE_2D:
+			MMIOSetBitMask(mmio, GLAMO_REG_CLOCK_2D,
+					GLAMO_CLOCK_2D_EN_M7CLK |
+					GLAMO_CLOCK_2D_EN_GCLK |
+					GLAMO_CLOCK_2D_DG_M7CLK |
+					GLAMO_CLOCK_2D_DG_GCLK,
+					0);
+			MMIOSetBitMask(mmio, GLAMO_REG_HOSTBUS(2),
+					GLAMO_HOSTBUS2_MMIO_EN_2D,
+					0);
+			MMIOSetBitMask(mmio, GLAMO_REG_CLOCK_GEN5_1,
+					GLAMO_CLOCK_GEN51_EN_DIV_GCLK,
+					0);
+			break;
+		default:
+			break;
+	}
+}
+
+void
+GLAMOEngineEnable(GlamoPtr pGlamo, enum GLAMOEngine engine)
+{
+	volatile char *mmio = pGlamo->reg_base;
+
+	if (!mmio)
+		return;
+
+	switch (engine) {
+		case GLAMO_ENGINE_CMDQ:
+			MMIOSetBitMask(mmio, GLAMO_REG_CLOCK_2D,
+					GLAMO_CLOCK_2D_EN_M6CLK,
+					0xffff);
+			MMIOSetBitMask(mmio, GLAMO_REG_HOSTBUS(2),
+					GLAMO_HOSTBUS2_MMIO_EN_CMDQ,
+					0xffff);
+			MMIOSetBitMask(mmio, GLAMO_REG_CLOCK_GEN5_1,
+					GLAMO_CLOCK_GEN51_EN_DIV_MCLK,
+					0xffff);
+			break;
+		case GLAMO_ENGINE_ISP:
+			MMIOSetBitMask(mmio, GLAMO_REG_CLOCK_ISP,
+					GLAMO_CLOCK_ISP_EN_M2CLK |
+					GLAMO_CLOCK_ISP_EN_I1CLK,
+					0xffff);
+			MMIOSetBitMask(mmio, GLAMO_REG_CLOCK_GEN5_2,
+					GLAMO_CLOCK_GEN52_EN_DIV_ICLK,
+					0xffff);
+			MMIOSetBitMask(mmio, GLAMO_REG_CLOCK_GEN5_1,
+					GLAMO_CLOCK_GEN51_EN_DIV_JCLK,
+					0xffff);
+			MMIOSetBitMask(mmio, GLAMO_REG_HOSTBUS(2),
+					GLAMO_HOSTBUS2_MMIO_EN_ISP,
+					0xffff);
+			break;
+		case GLAMO_ENGINE_2D:
+			MMIOSetBitMask(mmio, GLAMO_REG_CLOCK_2D,
+					GLAMO_CLOCK_2D_EN_M7CLK |
+					GLAMO_CLOCK_2D_EN_GCLK |
+					GLAMO_CLOCK_2D_DG_M7CLK |
+					GLAMO_CLOCK_2D_DG_GCLK,
+					0xffff);
+			MMIOSetBitMask(mmio, GLAMO_REG_HOSTBUS(2),
+					GLAMO_HOSTBUS2_MMIO_EN_2D,
+					0xffff);
+			MMIOSetBitMask(mmio, GLAMO_REG_CLOCK_GEN5_1,
+					GLAMO_CLOCK_GEN51_EN_DIV_GCLK,
+					0xffff);
+			break;
+		default:
+			break;
+	}
+}
+
+bool
+GLAMOEngineBusy(GlamoPtr pGlamo, enum GLAMOEngine engine)
+{
+	volatile char *mmio = pGlamo->reg_base;
+	CARD16 status, mask, val;
+
+	if (!mmio)
+		return FALSE;
+
+	switch (engine)
+	{
+		case GLAMO_ENGINE_CMDQ:
+			mask = 0x3;
+			val  = mask;
+			break;
+		case GLAMO_ENGINE_ISP:
+			mask = 0x3 | (1 << 8);
+			val  = 0x3;
+			break;
+		case GLAMO_ENGINE_2D:
+			mask = 0x3 | (1 << 4);
+			val  = 0x3;
+			break;
+		case GLAMO_ENGINE_ALL:
+		default:
+			mask = 1 << 2;
+			val  = mask;
+			break;
+	}
+
+	status = MMIO_IN16(mmio, GLAMO_REG_CMDQ_STATUS);
+
+	return !((status & mask) == val);
+}
+
+void
+GLAMOEngineWait(GlamoPtr pGlamo,
+		   enum GLAMOEngine engine)
+{
+	volatile char *mmio = pGlamo->reg_base;
+	CARD16 status, mask, val;
+
+	if (!mmio)
+		return;
+
+	switch (engine)
+	{
+		case GLAMO_ENGINE_CMDQ:
+			mask = 0x3;
+			val  = mask;
+			break;
+		case GLAMO_ENGINE_ISP:
+			mask = 0x3 | (1 << 8);
+			val  = 0x3;
+			break;
+		case GLAMO_ENGINE_2D:
+			mask = 0x3 | (1 << 4);
+			val  = 0x3;
+			break;
+		case GLAMO_ENGINE_ALL:
+		default:
+			mask = 1 << 2;
+			val  = mask;
+			break;
+	}
+
+	do {
+		status = MMIO_IN16(mmio, GLAMO_REG_CMDQ_STATUS);
+    } while ((status & mask) != val);
+}
diff --git a/src/glamo-draw.h b/src/glamo-engine.h
similarity index 59%
copy from src/glamo-draw.h
copy to src/glamo-engine.h
index ff36446..187fa1f 100644
--- a/src/glamo-draw.h
+++ b/src/glamo-engine.h
@@ -1,8 +1,4 @@
 /*
- * Copyright  2007 OpenMoko, Inc.
- *
- * This driver is based on Xati,
- * Copyright  2004 Eric Anholt
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -23,37 +19,30 @@
  * OF THIS SOFTWARE.
  */
 
-#ifndef _GLAMO_DRAW_H_
-#define _GLAMO_DRAW_H_
-
-void GLAMOWaitIdle(GlamoPtr *pGlamo);
+#include <stdbool.h>
 
-#define GLAMO_TRACE_FALL 0
-#define GLAMO_TRACE_DRAW 1
+enum GLAMOEngine {
+	GLAMO_ENGINE_CMDQ,
+	GLAMO_ENGINE_ISP,
+	GLAMO_ENGINE_2D,
+	GLAMO_ENGINE_MPEG,
+	GLAMO_ENGINE_ALL,
+	NB_GLAMO_ENGINES /*should be the last entry*/
+};
 
-#if GLAMO_TRACE_FALL
-#define GLAMO_FALLBACK(x)			\
-do {					\
-	ErrorF("%s: ", __FUNCTION__);	\
-	ErrorF x;			\
-	return FALSE;			\
-} while (0)
-#else
-#define GLAMO_FALLBACK(x) return FALSE
-#endif
+void
+GLAMOEngineEnable(GlamoPtr pGlamo, enum GLAMOEngine engine);
 
-#if GLAMO_TRACE_DRAW
-#define ENTER_DRAW(pix) GLAMOEnterDraw(pix, __FUNCTION__)
-#define LEAVE_DRAW(pix) GLAMOLeaveDraw(pix, __FUNCTION__)
+void
+GLAMOEngineDisable(GlamoPtr pGlamo, enum GLAMOEngine engine);
 
 void
-GLAMOEnterDraw (PixmapPtr pPixmap, const char *function);
+GLAMOEngineReset(GlamoPtr pGlamo, enum GLAMOEngine engine);
+
+bool
+GLAMOEngineBusy(GlamoPtr pGlamo, enum GLAMOEngine engine);
 
 void
-GLAMOLeaveDraw (PixmapPtr pPixmap, const char *function);
-#else /* GLAMO_TRACE */
-#define ENTER_DRAW(pix)
-#define LEAVE_DRAW(pix)
-#endif /* !GLAMO_TRACE */
+GLAMOEngineWait(GlamoPtr pGlamo, enum GLAMOEngine engine);
+
 
-#endif /* _GLAMO_DRAW_H_ */
diff --git a/src/glamo-funcs.c b/src/glamo-funcs.c
deleted file mode 100644
index 0ef64b8..0000000
--- a/src/glamo-funcs.c
+++ /dev/null
@@ -1,558 +0,0 @@
-/*
- * Copyright © 2007 OpenMoko, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission.  The copyright holders make no representations
- * about the suitability of this software for any purpose.  It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
- *
- * Author:
- *  Dodji Seketeli <dodji at openedhand.com>
- */
-#include <unistd.h>
-#if 0
-
-
-#include "glamo-log.h"
-#include "glamo.h"
-#include "glamo-funcs.h"
-#include "glamo-regs.h"
-#include "glamo-cmdq.h"
-void
-GLAMOSetBitMask(GlamoPtr pGlamo, int reg, int mask, int val)
-{
-    MMIOSetBitMask(pGlamo->reg_base, reg, mask, val);
-}
-
-void
-setCmdMode (GlamoPtr pGlamo, Bool on)
-{
-	if (on) {
-		GLAMO_LOG("mark\n");
-		/*TODO: busy waiting is bad*/
-		while (!MMIO_IN16(pGlamo->reg_base, GLAMO_REG_LCD_STATUS1)
-		       & (1 << 15)) {
-			GLAMO_LOG("mark\n");
-			usleep(1 * 1000);
-		}
-		GLAMO_LOG("mark\n");
-		MMIO_OUT16(pGlamo->reg_base,
-			    GLAMO_REG_LCD_COMMAND1,
-			    GLAMO_LCD_CMD_TYPE_DISP |
-			    GLAMO_LCD_CMD_DATA_FIRE_VSYNC);
-		GLAMO_LOG("mark\n");
-		while (!MMIO_IN16(pGlamo->reg_base, GLAMO_REG_LCD_STATUS2)
-		       & (1 << 12)) {
-			GLAMO_LOG("mark\n");
-			usleep(1 * 1000);
-		}
-		/* wait */
-		GLAMO_LOG("mark\n");
-		usleep(100 * 1000);
-	} else {
-		GLAMO_LOG("mark\n");
-		MMIO_OUT16(pGlamo->reg_base,
-			    GLAMO_REG_LCD_COMMAND1,
-			    GLAMO_LCD_CMD_TYPE_DISP |
-			    GLAMO_LCD_CMD_DATA_DISP_SYNC);
-		GLAMO_LOG("mark\n");
-		MMIO_OUT16(pGlamo->reg_base,
-			    GLAMO_REG_LCD_COMMAND1,
-			    GLAMO_LCD_CMD_TYPE_DISP |
-			    GLAMO_LCD_CMD_DATA_DISP_FIRE);
-	}
-}
-
-#define STATUS_ENABLED  0x1
-static int engine_status[NB_GLAMO_ENGINES];
-
-void
-GLAMOResetEngine(GlamoPtr pGlamo, enum GLAMOEngine engine)
-{
-	int reg, mask;
-
-	GLAMO_LOG("enter\n");
-
-	if (!(engine_status[engine] & STATUS_ENABLED))
-		return;
-
-	switch (engine) {
-		case GLAMO_ENGINE_MPEG:
-			reg = GLAMO_REG_CLOCK_MPEG;
-			mask = GLAMO_CLOCK_MPEG_DEC_RESET;
-			break;
-		case GLAMO_ENGINE_ISP:
-			reg = GLAMO_REG_CLOCK_ISP;
-			mask = GLAMO_CLOCK_ISP2_RESET;
-			break;
-		case GLAMO_ENGINE_CMDQ:
-			reg = GLAMO_REG_CLOCK_2D;
-			mask = GLAMO_CLOCK_2D_CMDQ_RESET;
-			break;
-		case GLAMO_ENGINE_2D:
-			reg = GLAMO_REG_CLOCK_2D;
-			mask = GLAMO_CLOCK_2D_RESET;
-			break;
-        default:
-            return;
-	}
-
-	MMIOSetBitMask(pGlamo->reg_base, reg, mask, 0xffff);
-	usleep(1000);
-	MMIOSetBitMask(pGlamo->reg_base, reg, mask, 0);
-	usleep(1000);
-
-	GLAMO_LOG("leave\n");
-}
-
-void
-GLAMOEnableEngine(GlamoPtr pGlamo, enum GLAMOEngine engine)
-{
-	GLAMO_LOG("enter\n");
-	if (engine_status[engine] & STATUS_ENABLED)
-		return;
-
-	MMIOSetBitMask(pGlamo->reg_base,
-			GLAMO_REG_CLOCK_GEN5_1,
-			GLAMO_CLOCK_GEN51_EN_DIV_MCLK,
-			0xffff);
-
-	switch (engine) {
-		case GLAMO_ENGINE_MPEG:
-			MMIOSetBitMask(pGlamo->reg_base,
-					GLAMO_REG_CLOCK_MPEG,
-					GLAMO_CLOCK_MPEG_EN_X6CLK |
-					GLAMO_CLOCK_MPEG_DG_X6CLK |
-					GLAMO_CLOCK_MPEG_EN_X4CLK |
-					GLAMO_CLOCK_MPEG_DG_X4CLK |
-					GLAMO_CLOCK_MPEG_EN_X2CLK |
-					GLAMO_CLOCK_MPEG_DG_X2CLK |
-					GLAMO_CLOCK_MPEG_EN_X0CLK |
-					GLAMO_CLOCK_MPEG_DG_X0CLK,
-					0xffff & ~GLAMO_CLOCK_MPEG_DG_X0CLK);
-			MMIOSetBitMask(pGlamo->reg_base,
-					GLAMO_REG_CLOCK_MPROC,
-					GLAMO_CLOCK_MPROC_EN_M4CLK,
-					0xffff);
-			MMIOSetBitMask(pGlamo->reg_base,
-					GLAMO_REG_CLOCK_GEN5_1,
-					GLAMO_CLOCK_GEN51_EN_DIV_JCLK,
-					0xffff);
-			MMIOSetBitMask(pGlamo->reg_base,
-					GLAMO_REG_HOSTBUS(2),
-					GLAMO_HOSTBUS2_MMIO_EN_MPEG |
-					GLAMO_HOSTBUS2_MMIO_EN_MICROP1,
-					0xffff);
-			MMIOSetBitMask(pGlamo->reg_base,
-					GLAMO_REG_CLOCK_MPROC,
-					GLAMO_CLOCK_MPROC_EN_KCLK,
-					0xffff);
-			break;
-		case GLAMO_ENGINE_ISP:
-			MMIOSetBitMask(pGlamo->reg_base,
-					GLAMO_REG_CLOCK_ISP,
-					GLAMO_CLOCK_ISP_EN_M2CLK |
-					GLAMO_CLOCK_ISP_EN_I1CLK,
-					0xffff);
-			MMIOSetBitMask(pGlamo->reg_base,
-					GLAMO_REG_CLOCK_GEN5_2,
-					GLAMO_CLOCK_GEN52_EN_DIV_ICLK,
-					0xffff);
-			MMIOSetBitMask(pGlamo->reg_base,
-					GLAMO_REG_CLOCK_GEN5_1,
-					GLAMO_CLOCK_GEN51_EN_DIV_JCLK,
-					0xffff);
-			MMIOSetBitMask(pGlamo->reg_base,
-					GLAMO_REG_HOSTBUS(2),
-					GLAMO_HOSTBUS2_MMIO_EN_ISP,
-					0xffff);
-			break;
-		case GLAMO_ENGINE_CMDQ:
-			MMIOSetBitMask(pGlamo->reg_base,
-					GLAMO_REG_CLOCK_2D,
-					GLAMO_CLOCK_2D_EN_M6CLK,
-					0xffff);
-			MMIOSetBitMask(pGlamo->reg_base,
-					GLAMO_REG_HOSTBUS(2),
-					GLAMO_HOSTBUS2_MMIO_EN_CMDQ,
-					0xffff);
-			break;
-		case GLAMO_ENGINE_2D:
-			MMIOSetBitMask(pGlamo->reg_base,
-					GLAMO_REG_CLOCK_2D,
-					GLAMO_CLOCK_2D_EN_M7CLK |
-					GLAMO_CLOCK_2D_EN_GCLK |
-					GLAMO_CLOCK_2D_DG_M7CLK |
-					GLAMO_CLOCK_2D_DG_GCLK,
-					0xffff);
-			MMIOSetBitMask(pGlamo->reg_base,
-					GLAMO_REG_HOSTBUS(2),
-					GLAMO_HOSTBUS2_MMIO_EN_2D,
-					0xffff);
-			MMIOSetBitMask(pGlamo->reg_base,
-					GLAMO_REG_CLOCK_GEN5_1,
-					GLAMO_CLOCK_GEN51_EN_DIV_GCLK,
-					0xffff);
-			break;
-        default:
-            break;
-	}
-	usleep(1000);
-	engine_status[engine] |= STATUS_ENABLED;
-	GLAMO_LOG("leave\n");
-}
-
-
-#ifdef XV
-void
-GLAMOISPWaitEngineIdle (GlamoPtr pGlamo)
-{
-	GLAMO_LOG("enter\n");
-	while (1) {
-		int val = MMIO_IN16(pGlamo->reg_base, GLAMO_REG_ISP_STATUS);
-		if (val & 0x1) {
-			usleep(1 * 1000);
-			GLAMO_LOG("isp busy\n");
-			continue;
-		}
-		break;
-	}
-	GLAMO_LOG("leave\n");
-}
-
-static void
-SetOnFlyLUTRegs(GlamoPtr pGlamo)
-{
-	struct {
-		int src_block_x;
-		int src_block_y;
-		int src_block_w;
-		int src_block_h;
-		int jpeg_out_y;
-		int jpeg_out_x;
-		int fifo_full_cnt;
-		int in_length;
-		int fifo_data_cnt;
-		int in_height;
-	} onfly;
-	RING_LOCALS;
-
-	GLAMO_LOG("enter\n");
-
-	onfly.src_block_y = 32;
-	onfly.src_block_x = 32;
-	onfly.src_block_w = 36;
-	onfly.src_block_h = 35;
-	onfly.jpeg_out_y = 32;
-	onfly.jpeg_out_x = 32;
-	onfly.fifo_full_cnt = onfly.src_block_w * 2 + 2;
-	onfly.in_length = onfly.jpeg_out_x + 3;
-	onfly.fifo_data_cnt = onfly.src_block_w * onfly.src_block_h / 2;
-	onfly.in_height = onfly.jpeg_out_y + 2;
-
-	BEGIN_CMDQ(10);
-	OUT_REG(GLAMO_REG_ISP_ONFLY_MODE1,
-		onfly.src_block_y << 10 | onfly.src_block_x << 2);
-	OUT_REG(GLAMO_REG_ISP_ONFLY_MODE2,
-		onfly.src_block_h << 8 | onfly.src_block_w);
-	OUT_REG(GLAMO_REG_ISP_ONFLY_MODE3,
-		onfly.jpeg_out_y << 8 | onfly.jpeg_out_x);
-	OUT_REG(GLAMO_REG_ISP_ONFLY_MODE4,
-		onfly.fifo_full_cnt << 8 | onfly.in_length);
-	OUT_REG(GLAMO_REG_ISP_ONFLY_MODE5,
-		onfly.fifo_data_cnt << 6 | onfly.in_height);
-	END_CMDQ();
-	GLAMO_LOG("leave\n");
-}
-
-static void
-SetScalingWeightMatrixRegs(GlamoPtr pGlamo)
-{
-	int left = 1 << 14;
-	RING_LOCALS;
-
-	GLAMO_LOG("enter\n");
-
-	/* nearest */
-
-	BEGIN_CMDQ(12);
-	OUT_BURST(GLAMO_REG_ISP_DEC_SCALEH_MATRIX, 10);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEH_MATRIX +  0, left);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEH_MATRIX +  2, 0);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEH_MATRIX +  4, left);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEH_MATRIX +  6, 0);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEH_MATRIX +  8, left);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEH_MATRIX + 10, 0);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEH_MATRIX + 12, left);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEH_MATRIX + 14, 0);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEH_MATRIX + 16, left);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEH_MATRIX + 18, 0);
-	END_CMDQ();
-
-	BEGIN_CMDQ(12);
-	OUT_BURST(GLAMO_REG_ISP_DEC_SCALEV_MATRIX, 10);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEV_MATRIX +  0, left);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEV_MATRIX +  2, 0);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEV_MATRIX +  4, left);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEV_MATRIX +  6, 0);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEV_MATRIX +  8, left);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEV_MATRIX + 10, 0);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEV_MATRIX + 12, left);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEV_MATRIX + 14, 0);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEV_MATRIX + 16, left);
-	OUT_BURST_REG(GLAMO_REG_ISP_DEC_SCALEV_MATRIX + 18, 0);
-	END_CMDQ();
-	GLAMO_LOG("leave\n");
-}
-
-static void
-GLAMOISPYuvRgbPipelineInit(GlamoPtr pGlamo)
-{
-	unsigned short en3;
-	RING_LOCALS;
-
-	GLAMO_LOG("enter.glamos:%#x\n", pGlamo);
-
-	BEGIN_CMDQ(18);
-
-	/*
-	 * set the ISP into YUV 4:2:0 planar mode,
-	 * enable scaling.
-	 */
-	en3 = GLAMO_ISP_EN3_PLANE_MODE |
-		GLAMO_ISP_EN3_YUV_INPUT |
-		GLAMO_ISP_EN3_YUV420 |
-		GLAMO_ISP_EN3_SCALE_IMPROVE;
-
-	OUT_REG(GLAMO_REG_ISP_EN3, en3);
-
-	/*
-	 * In 8.8 fixed point,
-	 *
-	 *  R = Y + 1.402 (Cr-128)
-	 *    = Y + 0x0167 Cr - 0xb3
-	 *
-	 *  G = Y - 0.34414 (Cb-128) - 0.71414 (Cr-128)
-	 *    = Y - 0x0058 Cb - 0x00b6 Cr + 0x89
-	 *
-	 *  B = Y + 1.772 (Cb-128)
-	 *    = Y + 0x01c5 Cb - 0xe2
-	 */
-
-	OUT_REG(GLAMO_REG_ISP_YUV2RGB_11, 0x0167);
-	OUT_REG(GLAMO_REG_ISP_YUV2RGB_21, 0x01c5);
-	OUT_REG(GLAMO_REG_ISP_YUV2RGB_32, 0x00b6);
-	OUT_REG(GLAMO_REG_ISP_YUV2RGB_33, 0x0058);
-	OUT_REG(GLAMO_REG_ISP_YUV2RGB_RG, 0xb3 << 8 | 0x89);
-	OUT_REG(GLAMO_REG_ISP_YUV2RGB_B, 0xe2);
-
-	OUT_REG(GLAMO_REG_ISP_PORT1_DEC_EN, GLAMO_ISP_PORT1_EN_OUTPUT);
-	OUT_REG(GLAMO_REG_ISP_PORT2_EN, GLAMO_ISP_PORT2_EN_DECODE);
-
-	END_CMDQ();
-
-	SetOnFlyLUTRegs(pGlamo);
-	SetScalingWeightMatrixRegs(pGlamo);
-
-	GLAMO_LOG("leave\n");
-}
-
-#if 0
-static void
-GLAMOISPColorKeyOverlayInit(GlamoPtr pGlamo)
-{
-	GLAMO_RETURN_IF_FAIL (pGlamo);
-
-	/*GLAMOSetBitMask(pScreen,
-			GLAMO_REG_ISP_EN2,
-			GLAMO_ISP_EN2_OVERLAY,
-			0x0001);*/
-	MMIOSetBitMask(pGlamo->reg_base,
-			GLAMO_REG_ISP_EN4,
-			GLAMO_ISP_EN4_OVERLAY|GLAMO_ISP_EN4_LCD_OVERLAY,
-			0x0003);
-}
-#endif
-
-void
-GLAMOISPSetColorKeyOverlay(GlamoPtr	pGlamo,
-			   CARD32	start_addr/*addr on 23bits*/,
-			   CARD16	x /*12bits*/,
-			   CARD16	y /*12bits*/,
-			   CARD16	width /*12bits*/,
-			   CARD16	height /*12bits*/,
-			   CARD16	pitch /*12bits*/,
-			   CARD8	red_key /*5bits*/,
-			   CARD8	green_key /*6bits*/,
-			   CARD8	blue_key /*5bits*/)
-{
-	unsigned short green_red_keys = 0;
-	RING_LOCALS;
-
-	GLAMO_LOG("enter. start_addr:%#x, (x,y):(%hd,%hd), "
-		  "width,height:(%dx%d), pitch:%d\n"
-		  "red, green, blue:(%d, %d, %d)\n",
-		  start_addr, x, y, width, height, pitch,
-		  red_key, green_key, blue_key);
-
-	green_red_keys = (green_key << (8+2)) & 0xff00;
-	green_red_keys |= (red_key << 3) & 0x00ff;
-
-	BEGIN_CMDQ(18);
-
-	OUT_REG(GLAMO_REG_ISP_OVERLAY_GR_KEY, green_red_keys);
-	OUT_REG(GLAMO_REG_ISP_OVERLAY_B_KEY, (blue_key << 3) && 0x00ff);
-	OUT_REG(GLAMO_REG_ISP_OVERLAY_ADDRL, start_addr & 0x00ff);
-	OUT_REG(GLAMO_REG_ISP_OVERLAY_ADDRH, start_addr & 0x7f00);
-	OUT_REG(GLAMO_REG_ISP_OVERLAY_X, x & 0x0fff);
-	OUT_REG(GLAMO_REG_ISP_OVERLAY_Y, y & 0x0fff);
-	OUT_REG(GLAMO_REG_ISP_OVERLAY_WIDTH, width & 0x0fff);
-	OUT_REG(GLAMO_REG_ISP_OVERLAY_HEIGHT, width & 0x0fff);
-	OUT_REG(GLAMO_REG_ISP_OVERLAY_PITCH, pitch & 0x0fff);
-	/*TODO: no idea what this one is*/
-	/*OUT_REG(GLAMO_REG_ISP_OVERLAY_BLOCK_XY, 0);*/
-
-	END_CMDQ();
-
-	GLAMO_LOG("leave\n");
-}
-
-void
-GLAMOISPSetColorKeyOverlay2(GlamoPtr	pGlamo,
-			    CARD32	start_addr/*addr on 23bits*/,
-			    CARD16	x /*12bits*/,
-			    CARD16	y /*12bits*/,
-			    CARD16	width /*12bits*/,
-			    CARD16	height /*12bits*/,
-			    CARD16	pitch /*12bits*/,
-			    CARD16	color_key /*16bits*/)
-{
-	CARD8 red, green, blue;
-
-	/*assume color key has rgb 565 format*/
-	red = (color_key >> 11);
-	green = (color_key >> 5) & 0x003f;
-	blue = (color_key) & 0x001f;
-	GLAMOISPSetColorKeyOverlay(pGlamo, start_addr, x, y,
-				   width, height, pitch,
-				   red, green, blue);
-}
-
-void
-GLAMOISPEngineInit (GlamoPtr pGlamo)
-{
-	static Bool isp_enabled, isp_reset;
-
-	GLAMO_LOG("enter\n");
-	if (!isp_enabled) {
-		GLAMOEnableEngine(pGlamo, GLAMO_ENGINE_ISP);
-		isp_enabled = TRUE;
-		GLAMO_LOG("enabled ISP\n");
-	}
-	if (!isp_reset) {
-		GLAMOResetEngine(pGlamo, GLAMO_ENGINE_ISP);
-		GLAMO_LOG("reset ISP\n");
-	}
-	GLAMOISPYuvRgbPipelineInit(pGlamo);
-	/*GLAMOISPColorKeyOverlayInit(pScreen);*/
-	GLAMO_LOG("leave\n");
-}
-
-void
-GLAMOISPDisplayYUVPlanarFrame (GlamoPtr pGlamo,
-			       unsigned int y_addr,
-			       unsigned int u_addr,
-			       unsigned int v_addr,
-			       short y_pitch,
-			       short uv_pitch,
-			       short src_crop_rect_width,
-			       short src_crop_rect_height,
-			       unsigned int dst_addr,
-			       short dst_pitch,
-			       short dst_rect_width,
-			       short dst_rect_height,
-			       short scale_w,
-			       short scale_h)
-{
-	RING_LOCALS;
-
-
-	GLAMO_LOG("enter: y_addr:%#x, u_addr:%#x, v_addr:%#x\n"
-		  "y_pitch:%hd, uv_pitch:%hd\n"
-		  "src_crop_rect(%hdx%hd)\n"
-		  "dst_addr:%#x, dst_pitch:%hd\n"
-		  "dst_rect(%hdx%hd), dst_scale(%hdx%hd)\n",
-		  y_addr, u_addr, v_addr,
-		  y_pitch, uv_pitch,
-		  src_crop_rect_width, src_crop_rect_height,
-		  dst_addr, dst_pitch,
-		  dst_rect_width, dst_rect_height,
-		  scale_w, scale_h);
-
-
-	/*scale_w <<= 11;*/
-	/*scale_h <<= 11;*/
-
-
-	BEGIN_CMDQ(38);
-
-	/*
-	 * set Y, U, V pitches.
-	 */
-	OUT_REG(GLAMO_REG_ISP_DEC_PITCH_Y,  y_pitch & 0x1fff);
-	OUT_REG(GLAMO_REG_ISP_DEC_PITCH_UV, uv_pitch & 0x1fff);
-	OUT_REG(GLAMO_REG_ISP_PORT1_DEC_PITCH, dst_pitch & 0x1fff);
-
-	/*
-	 * set yuv starting addresses, pitches and crop rect size
-	 */
-	OUT_REG(GLAMO_REG_ISP_DEC_Y_ADDRL, y_addr & 0xffff);
-	OUT_REG(GLAMO_REG_ISP_DEC_Y_ADDRH, (y_addr >> 16) & 0x7f);
-
-	OUT_REG(GLAMO_REG_ISP_DEC_U_ADDRL, u_addr & 0xffff);
-	OUT_REG(GLAMO_REG_ISP_DEC_U_ADDRH, (u_addr >> 16) & 0x7f);
-
-	OUT_REG(GLAMO_REG_ISP_DEC_V_ADDRL, v_addr & 0xffff);
-	OUT_REG(GLAMO_REG_ISP_DEC_V_ADDRH, (v_addr >> 16) & 0x7f);
-
-	OUT_REG(GLAMO_REG_ISP_DEC_HEIGHT, src_crop_rect_height & 0x1fff);
-	OUT_REG(GLAMO_REG_ISP_DEC_WIDTH, src_crop_rect_width & 0x1fff);
-
-	/*
-	 * set output coordinates/sizes and scaling
-	 */
-	OUT_REG(GLAMO_REG_ISP_PORT1_DEC_0_ADDRL, dst_addr & 0xffff);
-	OUT_REG(GLAMO_REG_ISP_PORT1_DEC_0_ADDRH, (dst_addr >> 16) & 0x7f);
-
-	OUT_REG(GLAMO_REG_ISP_PORT1_DEC_WIDTH, dst_rect_width & 0x1fff);
-	OUT_REG(GLAMO_REG_ISP_PORT1_DEC_HEIGHT, dst_rect_height & 0x1fff);
-
-	OUT_REG(GLAMO_REG_ISP_DEC_SCALEH, scale_w);
-	OUT_REG(GLAMO_REG_ISP_DEC_SCALEV, scale_h);
-
-	OUT_REG(GLAMO_REG_ISP_EN1, GLAMO_ISP_EN1_FIRE_ISP);
-	OUT_REG(GLAMO_REG_ISP_EN1, 0);
-
-	END_CMDQ();
-
-	GLAMOEngineWait(pGlamo, GLAMO_ENGINE_ALL);
-
-	GLAMO_LOG("leave\n");
-
-}
-
-#endif /*XV*/
-#endif
diff --git a/src/glamo-funcs.h b/src/glamo-funcs.h
deleted file mode 100644
index 6b021cb..0000000
--- a/src/glamo-funcs.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright © 2007 OpenMoko, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission.  The copyright holders make no representations
- * about the suitability of this software for any purpose.  It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
- *
- * Author:
- *  Dodji Seketeli <dodji at openedhand.com>
- */
-#ifndef _GLAMO_FUNCS_H_
-#define _GLAMO_FUNCS_H_
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <assert.h>
-
-void glamoOutReg(GlamoPtr pGlamo, unsigned short reg, unsigned short val);
-
-unsigned short glamoInReg(GlamoPtr pGlamo, unsigned short reg);
-
-void glamoSetBitMask(GlamoPtr pGlamo, int reg, int mask, int val);
-
-void setCmdMode (GlamoPtr pGlamo, Bool on);
-
-Bool glamoRotateLCD (GlamoPtr pGlamo, Rotation rotation);
-
-#ifdef XV
-
-void GLAMOISPWaitEngineIdle (GlamoPtr pGlamo);
-void GLAMOISPEngineInit (GlamoPtr pGlamo);
-void GLAMOISPDisplayYUVPlanarFrame (GlamoPtr pGlamo,
-				    unsigned int y_addr,
-				    unsigned int u_addr,
-				    unsigned int v_addr,
-				    short y_pitch,
-				    short uv_pitch,
-				    short src_crop_rect_width,
-				    short src_crop_rect_height,
-				    unsigned int dst_addr,
-				    short dst_pitch,
-				    short dst_rect_width,
-				    short dst_rect_height,
-				    short scale_w,
-				    short scale_h);
-
-void GLAMOISPSetColorKeyOverlay(GlamoPtr	pGlamo,
-				CARD32	start_addr/*addr on 23bits*/,
-				CARD16	x /*12bits*/,
-				CARD16	y /*12bits*/,
-				CARD16	width /*12bits*/,
-				CARD16	height /*12bits*/,
-				CARD16	pitch /*12bits*/,
-				CARD8	red_key /*5bits*/,
-				CARD8	green_key /*6bits*/,
-				CARD8	blue_key /*5bits*/);
-
-void GLAMOISPSetColorKeyOverlay2(GlamoPtr	pGlamo,
-				 CARD32	start_addr/*addr on 23bits*/,
-				 CARD16	x /*12bits*/,
-				 CARD16	y /*12bits*/,
-				 CARD16	width /*12bits*/,
-				 CARD16	height /*12bits*/,
-				 CARD16	pitch /*12bits*/,
-				 CARD16	color_key /*16bits*/);
-#endif /*XV*/
-
-#endif /*_GLAMO_FUNCS_H_*/
-

-- 
xf86-video-glamo, SMedia Glamo video driver for X.Org



More information about the pkg-fso-commits mailing list