diff options
author | Praveen Chavan <pchavan@codeaurora.org> | 2013-08-14 15:49:09 -0700 |
---|---|---|
committer | Vineeta Srivastava <vsrivastava@google.com> | 2013-08-19 14:45:48 -0700 |
commit | eb8221663140f2c50f08a2405dae2564e107c571 (patch) | |
tree | e4a2a6d1faa90e5c4d0b3c653329f4786d097054 | |
parent | 3d163e306eece14820da529b2d9e98f8d6b269ea (diff) | |
download | msm8x74-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.h | 13 | ||||
-rw-r--r-- | original-kernel-headers/media/msm_media_info.h | 92 |
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 |