aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/samsung/jpeg/jpeg_mem.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/samsung/jpeg/jpeg_mem.h')
-rw-r--r--drivers/media/video/samsung/jpeg/jpeg_mem.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/drivers/media/video/samsung/jpeg/jpeg_mem.h b/drivers/media/video/samsung/jpeg/jpeg_mem.h
new file mode 100644
index 0000000..6874992
--- /dev/null
+++ b/drivers/media/video/samsung/jpeg/jpeg_mem.h
@@ -0,0 +1,66 @@
+/* linux/drivers/media/video/samsung/jpeg/jpeg_mem.h
+ *
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd.
+ * http://www.samsung.com/
+ *
+ * Definition for Operation of Jpeg encoder/docoder with memory
+ *
+ * This program 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.
+*/
+
+#ifndef __JPEG_MEM_H__
+#define __JPEG_MEM_H__
+
+// JYSHIN for google demo 20101014
+#define MAX_JPEG_WIDTH 3264
+#define MAX_JPEG_HEIGHT 2448
+
+//#define MAX_JPEG_WIDTH 3072
+//#define MAX_JPEG_HEIGHT 2048
+#ifdef CONFIG_UMP_VCM_ALLOC
+#include <plat/s5p-vcm.h>
+#include "ump_kernel_interface.h"
+#include "ump_kernel_interface_ref_drv.h"
+#endif
+
+#define MAX_JPEG_RES (MAX_JPEG_WIDTH * MAX_JPEG_HEIGHT)
+
+/* jpeg stream buf */
+#define JPEG_S_BUF_SIZE ((MAX_JPEG_RES / PAGE_SIZE + 1) * PAGE_SIZE)
+/* jpeg frame buf */
+#define JPEG_F_BUF_SIZE (((MAX_JPEG_RES * 3) / PAGE_SIZE + 1) * PAGE_SIZE)
+
+#define JPEG_MEM_SIZE (JPEG_S_BUF_SIZE + JPEG_F_BUF_SIZE)
+#define JPEG_MAIN_START 0x00
+
+#define SYSMMU_JPEG_ON
+
+/* for reserved memory */
+struct jpeg_mem {
+ /* buffer base */
+ unsigned int base;
+ /* for jpeg stream data */
+ unsigned int stream_data_addr;
+ unsigned int stream_data_size;
+ /* for raw data */
+ unsigned int frame_data_addr;
+ unsigned int frame_data_size;
+};
+
+int jpeg_init_mem(struct device *dev, unsigned int *base);
+int jpeg_mem_free(void);
+unsigned long jpeg_get_stream_buf(unsigned long arg);
+unsigned long jpeg_get_frame_buf(unsigned long arg);
+void jpeg_set_stream_buf(unsigned int *str_buf, unsigned int base);
+void jpeg_set_frame_buf(unsigned int *fra_buf, unsigned int base);
+
+#if defined(CONFIG_S5P_SYSMMU_JPEG) && defined(CONFIG_S5P_VMEM)
+extern unsigned int *s5p_vmalloc(size_t size);
+extern void *s5p_getaddress(unsigned int cookie);
+extern void s5p_vfree(unsigned int cookie);
+#endif
+
+#endif /* __JPEG_MEM_H__ */
+