diff options
author | Sushil Chauhan <sushilchauhan@codeaurora.org> | 2015-04-30 11:05:36 -0700 |
---|---|---|
committer | Sushil Chauhan <sushilchauhan@codeaurora.org> | 2015-04-30 11:05:36 -0700 |
commit | c85b65b46e57b21f1501bba434f66aeb1d4092bb (patch) | |
tree | d5869c779ccf23bbbf6d9f5bc31a8b373115eae9 /libgralloc | |
parent | bf75d5fcaba28fc385f45ad8d65b1e9e2c233ddc (diff) | |
download | hardware_qcom_display-c85b65b46e57b21f1501bba434f66aeb1d4092bb.tar.gz hardware_qcom_display-c85b65b46e57b21f1501bba434f66aeb1d4092bb.tar.bz2 hardware_qcom_display-c85b65b46e57b21f1501bba434f66aeb1d4092bb.zip |
gralloc: Fix UBWC related issues
1. Fix the missed ALIGN in getUBwcMetaBufferSize api.
2. Fix de-reference of data address pointer in getRgbDataAddress api.
Change-Id: I5dae2b6f449bb9a5b0dcc23110a2efce36060a42
Diffstat (limited to 'libgralloc')
-rw-r--r-- | libgralloc/alloc_controller.cpp | 8 | ||||
-rw-r--r-- | libgralloc/gr.h | 2 | ||||
-rw-r--r-- | libgralloc/mapper.cpp | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/libgralloc/alloc_controller.cpp b/libgralloc/alloc_controller.cpp index e37cdddf7..8dcc21991 100644 --- a/libgralloc/alloc_controller.cpp +++ b/libgralloc/alloc_controller.cpp @@ -898,7 +898,7 @@ static unsigned int getUBwcMetaBufferSize(int width, int height, int bpp) meta_width = ALIGN(((width + block_width - 1) / block_width), 64); // Align meta buffer size to 4K - size = ((meta_width * meta_height), 4096); + size = ALIGN((meta_width * meta_height), 4096); return size; } @@ -929,7 +929,7 @@ static unsigned int getUBwcSize(int width, int height, int format, return size; } -int getRgbDataAddress(private_handle_t* hnd, void* rgb_data) +int getRgbDataAddress(private_handle_t* hnd, void** rgb_data) { int err = 0; @@ -940,7 +940,7 @@ int getRgbDataAddress(private_handle_t* hnd, void* rgb_data) // linear buffer if (!(hnd->flags & private_handle_t::PRIV_FLAGS_UBWC_ALIGNED)) { - rgb_data = (void*)hnd->base; + *rgb_data = (void*)hnd->base; return err; } @@ -960,6 +960,6 @@ int getRgbDataAddress(private_handle_t* hnd, void* rgb_data) break; } - rgb_data = (void*)(hnd->base + meta_size); + *rgb_data = (void*)(hnd->base + meta_size); return err; } diff --git a/libgralloc/gr.h b/libgralloc/gr.h index 98b4eeca8..e27203af3 100644 --- a/libgralloc/gr.h +++ b/libgralloc/gr.h @@ -71,7 +71,7 @@ int decideBufferHandlingMechanism(int format, const char *compositionUsed, int alloc_buffer(private_handle_t **pHnd, int w, int h, int format, int usage); void free_buffer(private_handle_t *hnd); int getYUVPlaneInfo(private_handle_t* pHnd, struct android_ycbcr* ycbcr); -int getRgbDataAddress(private_handle_t* pHnd, void* rgb_data); +int getRgbDataAddress(private_handle_t* pHnd, void** rgb_data); // To query if UBWC is enabled, based on format and usage flags bool isUBwcEnabled(int format, int usage); diff --git a/libgralloc/mapper.cpp b/libgralloc/mapper.cpp index 7d4e8ce04..30f606e50 100644 --- a/libgralloc/mapper.cpp +++ b/libgralloc/mapper.cpp @@ -445,7 +445,7 @@ int gralloc_perform(struct gralloc_module_t const* module, case GRALLOC_MODULE_PERFORM_GET_RGB_DATA_ADDRESS: { private_handle_t* hnd = va_arg(args, private_handle_t*); - void* rgb_data = va_arg(args, void*); + void** rgb_data = va_arg(args, void**); if (!private_handle_t::validate(hnd)) { res = getRgbDataAddress(hnd, rgb_data); } |