]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android-sdk/kernel-video.git/commitdiff
gc320: OMAP4: adding BLTsville header files
authorDavid Sin <davidsin@ti.com>
Mon, 24 Dec 2012 13:14:43 +0000 (15:14 +0200)
committerPraneeth Bajjuri <praneeth@ti.com>
Fri, 12 Jul 2013 22:45:13 +0000 (17:45 -0500)
Change-Id: If573d2ea6f0d6e858e2dae94a629458d2d767cc5
Signed-off-by: David Sin <davidsin@ti.com>
Signed-off-by: Volodymyr Mieshkov <volodymyr.mieshkov@ti.com>
Signed-off-by: Sundar Raman <sunds@ti.com>
include/linux/bltsville.h
include/linux/bvbuffdesc.h
include/linux/bvcache.h [new file with mode: 0644]
include/linux/bventry.h
include/linux/bverror.h
include/linux/bvsurfgeom.h

index 88f72476f1ab540852957e49e615309d3c5a3aa3..97c0ecad32e28c153e7dfe329cc2d2b0d79babab 100644 (file)
@@ -20,6 +20,7 @@
 #include "bvblend.h"
 #include "bvfilter.h"
 #include "bvbuffdesc.h"
+#include "bvcache.h"
 #include "bventry.h"
 #include "bvsurfgeom.h"
 
@@ -86,7 +87,11 @@ struct bvrect {
 
 #define BVFLAG_SCALE_RETURN    0x00100000 /* return scale type used */
 #define BVFLAG_DITHER_RETURN   0x00200000 /* return dither type used */
-/**** Bits 31-22 reserved ****/
+
+
+#define BVFLAG_SRC2_AUXDSTRECT 0x00400000 /* src2auxdstrect used */
+#define BVFLAG_MASK_AUXDSTRECT 0x00800000 /* maskauxdstrect used */
+/**** Bits 31-24 reserved ****/
 
 /*
  * BVIMPL_* - BLTsville implementations may be combined under managers to
@@ -117,7 +122,7 @@ struct bvrect {
 #define BVSCALEDEF_IMPLICIT    (0 << BVSCALEDEF_CLASS_SHIFT)
 #define BVSCALEDEF_EXPLICIT    (1 << BVSCALEDEF_CLASS_SHIFT)
 /* 2-3 reserved */
-#define BVSCALEDEF_CLASS_MASK  (3 << BVSCALEDEF_CLASS_MASK)
+#define BVSCALEDEF_CLASS_MASK  (3 << BVSCALEDEF_CLASS_SHIFT)
 
 /**** IMPLICIT definitions ****/
 /*** Bits 21-16 indicate the quality (speed) desired ***/
@@ -126,7 +131,7 @@ struct bvrect {
 #define BVSCALEDEF_GOOD                (0x15 << BVSCALEDEF_QUALITY_SHIFT)
 #define BVSCALEDEF_BETTER      (0x2A << BVSCALEDEF_QUALITY_SHIFT)
 #define BVSCALEDEF_BEST                (0x3F << BVSCALEDEF_QUALITY_SHIFT)
-#define BVSCALEDEF_QUALITY_MASK        (0x3F << BVSCALEDEF_QUALITY_MASK)
+#define BVSCALEDEF_QUALITY_MASK        (0x3F << BVSCALEDEF_QUALITY_SHIFT)
 /* Bits 15-12 are reserved */
 /*** Bits 11-8 indicate the desired technique ***/
 #define BVSCALEDEF_TECHNIQUE_SHIFT 8
@@ -142,7 +147,7 @@ struct bvrect {
 #define BVSCALEDEF_PHOTO       (1 << BVSCALEDEF_TYPE_SHIFT)
 #define BVSCALEDEF_DRAWING     (2 << BVSCALEDEF_TYPE_SHIFT)
 /* 3 reserved */
-#define BVSCALEDEF_TYPE_MASK   (3 << BVSCALEDEF_TYPE_MASK)
+#define BVSCALEDEF_TYPE_MASK   (3 << BVSCALEDEF_TYPE_SHIFT)
 
 /**** EXPLICIT definitions ****/
 /* Bits 21-16 reserved */
@@ -586,6 +591,9 @@ struct bvbltparams {
                                                         error; handle contains
                                                         callbackdata below */
        unsigned long callbackdata;     /* (i) callback data */
+
+       struct bvrect src2auxdstrect;
+       struct bvrect maskauxdstrect;
 };
 
 #endif /* BLTSVILLE_H */
index 543b5d12bf54d72cf20b5f400c0beff70eb05b5d..8dab36f473c057884d3ade223e9383eea382fc48 100644 (file)
  */
 struct bvbuffmap;
 
+#define BVATDEF_VENDOR_SHIFT   24
+#define BVATDEF_VENDOR_MASK    (0xFF << BVATDEF_VENDOR_SHIFT)
+
+/* Common aux type */
+#define BVATDEF_VENDOR_ALL     (0x00 << BVATDEF_VENDOR_SHIFT)
+
+/* Texas Instruments, Inc. */
+#define BVATDEF_VENDOR_TI      (0x01 << BVATDEF_VENDOR_SHIFT)
+
+enum bvauxtype {
+       BVAT_NONE = 0,  /* auxptr not used */
+       BVAT_PHYSDESC = /* handle points to bvphysdesc struct */
+               BVATDEF_VENDOR_ALL + 1,
+
+#ifdef BVAT_EXTERNAL_INCLUDE
+#include BVAT_EXTERNAL_INCLUDE
+#endif
+};
+
+
+struct bvphysdesc {
+       unsigned int structsize;        /* used to identify struct version */
+       unsigned long pagesize;         /* page size in bytes */
+       unsigned long *pagearray;       /* array of physical pages */
+       unsigned int pagecount;         /* number of pages in the pagearray */
+       unsigned long pageoffset;       /* page offset in bytes */
+};
+
 /*
  * bvbuffdesc - This structure is used to specify the buffer parameters
  * in a call to bv_map().
@@ -32,10 +60,9 @@ struct bvbuffdesc {
        void *virtaddr;                 /* virtual ptr to start of buffer */
        unsigned long length;           /* length of the buffer in bytes */
        struct bvbuffmap *map;          /* resource(s) associated w/buffer */
-       unsigned long pagesize;         /* page size in bytes */
-       unsigned long *pagearray;       /* array of physical page addresses */
-       unsigned int pagecount;         /* number of pages in the page array */
-       unsigned long pageoffset;       /* page offset in bytes */
+       enum bvauxtype auxtype;         /* type of auxptr */
+       void *auxptr;                   /* additional buffer description data;
+                                       type depends on auxtype */
 };
 
 #endif /* BVBUFFDESC_H */
diff --git a/include/linux/bvcache.h b/include/linux/bvcache.h
new file mode 100644 (file)
index 0000000..af7f0ab
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * bvcache.h
+ *
+ * Copyright (C) 2012 Texas Instruments, Inc.
+ *
+ * This package is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+#ifndef BVCACHE_H_
+#define BVCACHE_H_
+
+/* Forward declarations */
+struct bvbuffdesc;
+struct bvsurfgeom;
+struct bvrect;
+
+/*
+ * This defines which cache operation the user intends to use
+ * BVCACHE_CPU_TO_DEVICE = clean
+ * BVCACHE_CPU_FROM_DEVICE = invalidate
+ * BVCACHE_BIDIRECTIONAL = flush
+ */
+enum bvcacheop {
+       BVCACHE_BIDIRECTIONAL = 0,
+       BVCACHE_CPU_TO_DEVICE = 1,
+       BVCACHE_CPU_FROM_DEVICE = 2,
+       BVCACHE_RESERVED3 = 3,
+};
+
+struct bvcopparams {
+       unsigned int structsize;        /* used to identify struct version */
+       struct bvbuffdesc *desc;
+       struct bvsurfgeom *geom;
+       struct bvrect     *rect;
+       enum bvcacheop cacheop;
+};
+
+#endif /* BVCACHE_H_ */
index d26fec9a0c26843387a7b30e80a00f96bcb58149..272c0e673d90340464e032f40d05d845678133ad 100644 (file)
 /* Forward declarations */
 struct bvbuffdesc;
 struct bvbltparams;
-
+struct bvcopparams;
 /*
  * BLTsville interface definition.
  */
 typedef enum bverror (*BVFN_MAP) (struct bvbuffdesc *buffdesc);
 typedef enum bverror (*BVFN_UNMAP) (struct bvbuffdesc *buffdesc);
 typedef enum bverror (*BVFN_BLT) (struct bvbltparams *bltparams);
+typedef enum bverror (*BVFN_CACHE)(struct bvcopparams *copparams);
 
 struct bventry {
+       unsigned int structsize;        /* used to identify struct version */
        BVFN_MAP bv_map;
        BVFN_UNMAP bv_unmap;
        BVFN_BLT bv_blt;
+       BVFN_CACHE bv_cache;
 };
 
 #endif /* BVENTRY_H */
index 3aa29779e320fb3a24b4844ff90a89e066f0e2f6..63abc703b40cd1739ad65e7e0b2082beb4619304 100644 (file)
@@ -292,6 +292,12 @@ enum bverror {
        BVERR_MEMORY_ERROR =    /* async operation triggered memory error */
                BVERRDEF_VENDOR_ALL + 51000,
 
+       BVERR_FORMAT =          /* unsupported format */
+               BVERRDEF_VENDOR_ALL + 52000,
+
+       BVERR_CACHEOP =         /* unsupported cache operation */
+               BVERRDEF_VENDOR_ALL + 60000,
+
 #ifdef BVERR_EXTERNAL_INCLUDE
 #include BVERR_EXTERNAL_INCLUDE
 #endif
index 924e45a65c24dd0a82f60a2ff6ca9826e3db7791..ef0ea2bc6d9d7ea66787c5cd70bbff9e4afb6987 100644 (file)
@@ -35,9 +35,6 @@ struct bvsurfgeom {
                                           paletteformat; only valid when
                                           format includes BVFMTDEF_LUT;
                                           number of entries is 2^bpp. */
-       long physstride;                /* distance from one pixel to the
-                                          pixel immediately below it in
-                                          physical address space */
 };
 
 #endif /* BVSURFGEOM_H */