summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPraveen Chavan <pchavan@codeaurora.org>2013-08-14 15:49:09 -0700
committerVineeta Srivastava <vsrivastava@google.com>2013-08-19 14:45:48 -0700
commiteb8221663140f2c50f08a2405dae2564e107c571 (patch)
treee4a2a6d1faa90e5c4d0b3c653329f4786d097054
parent3d163e306eece14820da529b2d9e98f8d6b269ea (diff)
downloadmsm8x74-eb8221663140f2c50f08a2405dae2564e107c571.tar.gz
msm8x74: update kernel header msm_media_info.h
Update buffer alignment macros Change-Id: Id1c13d87610ee740a8ab5a0e6c234a23ed87c355
-rw-r--r--kernel-headers/media/msm_media_info.h13
-rw-r--r--original-kernel-headers/media/msm_media_info.h92
2 files changed, 89 insertions, 16 deletions
diff --git a/kernel-headers/media/msm_media_info.h b/kernel-headers/media/msm_media_info.h
index e368556..8297787 100644
--- a/kernel-headers/media/msm_media_info.h
+++ b/kernel-headers/media/msm_media_info.h
@@ -27,12 +27,11 @@ enum color_fmts {
COLOR_FMT_NV21,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
-#define VENUS_Y_STRIDE(_color_fmt, _width) MSM_MEDIA_ALIGN(_width, 128)
-#define VENUS_UV_STRIDE(_color_fmt, _width) MSM_MEDIA_ALIGN(_width, 128)
-#define VENUS_Y_SCANLINES(_color_fmt, _width) MSM_MEDIA_ALIGN(_width, 32)
+#define VENUS_Y_STRIDE(__color_fmt, __width) ({ unsigned int __alignment, __stride = 0; if (__width) { switch (__color_fmt) { case COLOR_FMT_NV12: __alignment = 128; __stride = MSM_MEDIA_ALIGN(__width, __alignment); break; default: break; } } __stride; })
+#define VENUS_UV_STRIDE(__color_fmt, __width) ({ unsigned int __alignment, __stride = 0; if (__width) { switch (__color_fmt) { case COLOR_FMT_NV12: __alignment = 128; __stride = MSM_MEDIA_ALIGN(__width, __alignment); break; default: break; } } __stride; })
+#define VENUS_Y_SCANLINES(__color_fmt, __height) ({ unsigned int __alignment, __sclines = 0; if (__height) { switch (__color_fmt) { case COLOR_FMT_NV12: __alignment = 32; __sclines = MSM_MEDIA_ALIGN(__height, __alignment); break; default: break; } } __sclines; })
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VENUS_UV_SCANLINES(_color_fmt, _width) MSM_MEDIA_ALIGN(_width, 16)
-#define VENUS_BUFFER_SIZE_UNALIGNED(_color_fmt, _width, _height) ((VENUS_Y_STRIDE(_color_fmt, _width) * VENUS_Y_SCANLINES(_color_fmt, _height)) + (VENUS_UV_STRIDE(_color_fmt, _width) * VENUS_UV_SCANLINES(_color_fmt, _height) + 4096))
-#define VENUS_BUFFER_SIZE(_color_fmt, _width, _height) MSM_MEDIA_ALIGN(VENUS_BUFFER_SIZE_UNALIGNED(_color_fmt, _width, _height),4096)
+#define VENUS_UV_SCANLINES(__color_fmt, __height) ({ unsigned int __alignment, __sclines = 0; if (__height) { switch (__color_fmt) { case COLOR_FMT_NV12: __alignment = 16; __sclines = MSM_MEDIA_ALIGN(((__height + 1) >> 1), __alignment); break; default: break; } } __sclines; })
+#define VENUS_BUFFER_SIZE( __color_fmt, __width, __height) ({ unsigned int __uv_alignment; unsigned int __size = 0; unsigned int __y_plane, __uv_plane, __y_stride, __uv_stride, __y_sclines, __uv_sclines; if (__width && __height) { __y_stride = VENUS_Y_STRIDE(__color_fmt, __width); __uv_stride = VENUS_UV_STRIDE(__color_fmt, __width); __y_sclines = VENUS_Y_SCANLINES(__color_fmt, __height); __uv_sclines = VENUS_UV_SCANLINES(__color_fmt, __height); switch (__color_fmt) { case COLOR_FMT_NV12: __uv_alignment = 4096; __y_plane = __y_stride * __y_sclines; __uv_plane = __uv_stride * __uv_sclines + __uv_alignment; __size = __y_plane + __uv_plane; __size = MSM_MEDIA_ALIGN(__size, 4096); break; default: break; } } __size; })
#endif
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
diff --git a/original-kernel-headers/media/msm_media_info.h b/original-kernel-headers/media/msm_media_info.h
index 5161471..42c3572 100644
--- a/original-kernel-headers/media/msm_media_info.h
+++ b/original-kernel-headers/media/msm_media_info.h
@@ -10,16 +10,90 @@ enum color_fmts {
COLOR_FMT_NV21,
};
-#define VENUS_Y_STRIDE(_color_fmt, _width) MSM_MEDIA_ALIGN(_width, 128)
-#define VENUS_UV_STRIDE(_color_fmt, _width) MSM_MEDIA_ALIGN(_width, 128)
-#define VENUS_Y_SCANLINES(_color_fmt, _width) MSM_MEDIA_ALIGN(_width, 32)
-#define VENUS_UV_SCANLINES(_color_fmt, _width) MSM_MEDIA_ALIGN(_width, 16)
+#define VENUS_Y_STRIDE(__color_fmt, __width) ({\
+ unsigned int __alignment, __stride = 0; \
+ if (__width) { \
+ switch (__color_fmt) { \
+ case COLOR_FMT_NV12: \
+ __alignment = 128; \
+ __stride = MSM_MEDIA_ALIGN(__width, __alignment);\
+ break;\
+ default:\
+ break;\
+ }\
+ } \
+ __stride;\
+})
-#define VENUS_BUFFER_SIZE_UNALIGNED(_color_fmt, _width, _height) \
- ((VENUS_Y_STRIDE(_color_fmt, _width) * VENUS_Y_SCANLINES(_color_fmt, _height)) + \
- (VENUS_UV_STRIDE(_color_fmt, _width) * VENUS_UV_SCANLINES(_color_fmt, _height) + 4096))
+#define VENUS_UV_STRIDE(__color_fmt, __width) ({\
+ unsigned int __alignment, __stride = 0; \
+ if (__width) {\
+ switch (__color_fmt) { \
+ case COLOR_FMT_NV12: \
+ __alignment = 128; \
+ __stride = MSM_MEDIA_ALIGN(__width, __alignment); \
+ break; \
+ default: \
+ break; \
+ } \
+ } \
+ __stride; \
+})
-#define VENUS_BUFFER_SIZE(_color_fmt, _width, _height) \
- MSM_MEDIA_ALIGN(VENUS_BUFFER_SIZE_UNALIGNED(_color_fmt, _width, _height),4096)
+#define VENUS_Y_SCANLINES(__color_fmt, __height) ({ \
+ unsigned int __alignment, __sclines = 0; \
+ if (__height) {\
+ switch (__color_fmt) { \
+ case COLOR_FMT_NV12: \
+ __alignment = 32; \
+ __sclines = MSM_MEDIA_ALIGN(__height, __alignment); \
+ break; \
+ default: \
+ break; \
+ } \
+ } \
+ __sclines; \
+})
+
+#define VENUS_UV_SCANLINES(__color_fmt, __height) ({\
+ unsigned int __alignment, __sclines = 0; \
+ if (__height) {\
+ switch (__color_fmt) { \
+ case COLOR_FMT_NV12: \
+ __alignment = 16; \
+ __sclines = MSM_MEDIA_ALIGN(((__height + 1) >> 1), __alignment); \
+ break; \
+ default: \
+ break; \
+ } \
+ } \
+ __sclines; \
+})
+
+#define VENUS_BUFFER_SIZE( \
+ __color_fmt, __width, __height) ({ \
+ unsigned int __uv_alignment; \
+ unsigned int __size = 0; \
+ unsigned int __y_plane, __uv_plane, __y_stride, \
+ __uv_stride, __y_sclines, __uv_sclines; \
+ if (__width && __height) {\
+ __y_stride = VENUS_Y_STRIDE(__color_fmt, __width); \
+ __uv_stride = VENUS_UV_STRIDE(__color_fmt, __width); \
+ __y_sclines = VENUS_Y_SCANLINES(__color_fmt, __height); \
+ __uv_sclines = VENUS_UV_SCANLINES(__color_fmt, __height); \
+ switch (__color_fmt) { \
+ case COLOR_FMT_NV12: \
+ __uv_alignment = 4096; \
+ __y_plane = __y_stride * __y_sclines; \
+ __uv_plane = __uv_stride * __uv_sclines + __uv_alignment; \
+ __size = __y_plane + __uv_plane; \
+ __size = MSM_MEDIA_ALIGN(__size, 4096); \
+ break; \
+ default: \
+ break; \
+ } \
+ } \
+ __size; \
+})
#endif