summaryrefslogtreecommitdiffstats
path: root/ipecamera/image.c
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@dside.dyndns.org>2011-07-14 01:44:10 +0200
committerSuren A. Chilingaryan <csa@dside.dyndns.org>2011-07-14 01:44:10 +0200
commitb492b1aac3d12683ccbc973b08b023ba0466cbec (patch)
tree09f6d3d0cc3725b62a5c9210220e14316b737622 /ipecamera/image.c
parent9f17f71885344d93b16fdc17458aa28ba350a480 (diff)
downloadpcitool-b492b1aac3d12683ccbc973b08b023ba0466cbec.tar.gz
pcitool-b492b1aac3d12683ccbc973b08b023ba0466cbec.tar.bz2
pcitool-b492b1aac3d12683ccbc973b08b023ba0466cbec.tar.xz
pcitool-b492b1aac3d12683ccbc973b08b023ba0466cbec.zip
Support modifications of DMA engine and allow DMA customizations by Event engine
Diffstat (limited to 'ipecamera/image.c')
-rw-r--r--ipecamera/image.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/ipecamera/image.c b/ipecamera/image.c
index bf5faf9..3d1056d 100644
--- a/ipecamera/image.c
+++ b/ipecamera/image.c
@@ -16,6 +16,8 @@
#include "model.h"
#include "image.h"
+#include "dma/nwl_dma.h"
+
#define IPECAMERA_SLEEP_TIME 250000
#define IPECAMERA_MAX_LINES 1088
#define IPECAMERA_DEFAULT_BUFFER_SIZE 10
@@ -171,6 +173,19 @@ void ipecamera_free(pcilib_context_t *vctx) {
}
}
+pcilib_dma_context_t *ipecamera_init_dma(pcilib_context_t *vctx) {
+ ipecamera_t *ctx = (ipecamera_t*)vctx;
+
+ pcilib_model_description_t *model_info = pcilib_get_model_description(ctx->pcilib);
+ if ((!model_info->dma_api)||(!model_info->dma_api->init)) {
+ pcilib_error("The DMA engine is not configured in model");
+ return NULL;
+ }
+
+ return model_info->dma_api->init(ctx->pcilib, PCILIB_DMA_MODIFICATION_DEFAULT, NULL);
+}
+
+
int ipecamera_set_buffer_size(ipecamera_t *ctx, int size) {
if (ctx->started) {
pcilib_error("Can't change buffer size while grabbing");