[PORT FROM R2] atomisp: css/fw release from baseline of 12dec2011
authorLokesh Gupta <lokesh.gupta@intel.com>
Thu, 15 Dec 2011 15:56:51 +0000 (16:56 +0100)
committerbuildbot <buildbot@intel.com>
Thu, 22 Dec 2011 08:02:49 +0000 (00:02 -0800)
BZ: 18089

This release provides the following fixes:
    - Add cache control to acceleration API
    - Fix XNR bug

Change-Id: I0185d5624362618ea019f267aa6e7100c9b12341
Orig-Change-Id: I7fd0c5b40a4ab97a475a5e8ee93417333761dcb9
Signed-off-by: Lokesh Gupta <lokesh.gupta@intel.com>
Reviewed-on: http://android.intel.com:8080/27653
Reviewed-by: buildbot <buildbot@intel.com>
Reviewed-by: Kruger, Jozef <jozef.kruger@intel.com>
Reviewed-by: Wang, Wen W <wen.w.wang@intel.com>
Reviewed-on: http://android.intel.com:8080/29599
Reviewed-by: Lampila, KalleX <kallex.lampila@intel.com>
Reviewed-by: Koski, Anttu <anttu.koski@intel.com>
Tested-by: Koski, Anttu <anttu.koski@intel.com>
Tested-by: buildbot <buildbot@intel.com>
drivers/media/video/atomisp/css/sh_css_accelerate.c
drivers/media/video/atomisp/css/sh_css_accelerate.h
drivers/media/video/atomisp/css/sh_css_types.h

index 1818572..8f90cdb 100644 (file)
@@ -149,6 +149,30 @@ sh_css_argument_type(struct sh_css_acc_fw *firmware, unsigned num)
        return SH_CSS_ACC_SP_ARGS(firmware)[num];
 }
 
+size_t
+sh_css_argument_get_size(struct sh_css_acc_fw *firmware, unsigned num)
+{
+       return firmware->header.sp_args[num].size;
+}
+
+unsigned
+sh_css_num_accelerator_args(struct sh_css_acc_fw *firmware)
+{
+       return firmware->header.sp.args_cnt;
+}
+
+void
+sh_css_acc_stabilize(struct sh_css_acc_fw *firmware, unsigned num, bool stable)
+{
+       firmware->header.sp_args[num].stable = stable;
+}
+
+bool
+sh_css_acc_is_stable(struct sh_css_acc_fw *firmware, unsigned num)
+{
+       return firmware->header.sp_args[num].stable;
+}
+
 static void
 copy_sp_arguments(struct sh_css_acc_fw *firmware, bool to_sp)
 {
@@ -172,6 +196,8 @@ copy_sp_arguments(struct sh_css_acc_fw *firmware, bool to_sp)
                case SH_CSS_ACC_ARG_PTR_IN:
                case SH_CSS_ACC_ARG_PTR_OUT:
                case SH_CSS_ACC_ARG_PTR_IO:
+               case SH_CSS_ACC_ARG_PTR_NOFLUSH:
+               case SH_CSS_ACC_ARG_PTR_STABLE:
                        value = &firmware->header.sp_args[i].value;
                        size = sizeof(void *);
                        break;
index ce139b1..1b566b3 100644 (file)
@@ -54,6 +54,22 @@ sh_css_argument_set_host(struct sh_css_acc_fw *firmware,
 void *
 sh_css_argument_get_host(struct sh_css_acc_fw *firmware, unsigned num);
 
+/* Get size for argument <num> */
+size_t
+sh_css_argument_get_size(struct sh_css_acc_fw *firmware, unsigned num);
+
+/* Get the number of accelerator arguments */
+unsigned
+sh_css_num_accelerator_args(struct sh_css_acc_fw *firmware);
+
+/* Destabilize argument <num>, i.e. flush it from the cache */
+void
+sh_css_acc_stabilize(struct sh_css_acc_fw *firmware, unsigned num, bool stable);
+
+/* Check stability of argument <num> */
+bool
+sh_css_acc_is_stable(struct sh_css_acc_fw *firmware, unsigned num);
+
 /* Start the sp, which will start the isp.
    Load the firmware if not yet loaded.
 */
index 2c3df93..86a5247 100644 (file)
@@ -714,15 +714,18 @@ enum sh_css_acc_arg_type {
        SH_CSS_ACC_ARG_PTR_IN,       /* Pointer input argument */
        SH_CSS_ACC_ARG_PTR_OUT,      /* Pointer output argument */
        SH_CSS_ACC_ARG_PTR_IO,       /* Pointer in/output argument */
+       SH_CSS_ACC_ARG_PTR_NOFLUSH,  /* Pointer argument will not be flushed */
+       SH_CSS_ACC_ARG_PTR_STABLE,   /* Pointer input argument that is stable */
        SH_CSS_ACC_ARG_FRAME         /* Frame argument */
 };
 
 /* Descriptor for an SP argument */
 struct sh_css_sp_arg {
-       enum sh_css_acc_arg_type type;  /* Type  of SP argument */
-       void                    *value; /* Value of SP argument */
-       unsigned int             size;  /* Size  of SP argument */
-       void                    *host;  /* Private data used by host */
+       enum sh_css_acc_arg_type type;   /* Type  of SP argument */
+       void                    *value;  /* Value of SP argument */
+       bool                     stable; /* Pointer is stable */
+       unsigned int             size;   /* Size  of SP argument */
+       void                    *host;   /* Private data used by host */
 };
 
 struct sh_css_acc_fw;