gralloc: header change for ION support
Change-Id: I64ecf3ef5ea6974b2c155013c686444501939b9e
This commit is contained in:
		
							
								
								
									
										10
									
								
								gpu.cpp
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								gpu.cpp
									
									
									
									
									
								
							| @@ -58,7 +58,7 @@ int gpu_context_t::gralloc_alloc_framebuffer_locked(size_t size, int usage, | ||||
|     private_module_t* m = reinterpret_cast<private_module_t*>(common.module); | ||||
|  | ||||
|     // we don't support allocations with both the FB and PMEM_ADSP flags | ||||
|     if (usage & GRALLOC_USAGE_PRIVATE_PMEM_ADSP) { | ||||
|     if (usage & GRALLOC_USAGE_PRIVATE_ADSP_HEAP) { | ||||
|         return -EINVAL; | ||||
|     } | ||||
|  | ||||
| @@ -190,7 +190,7 @@ int gpu_context_t::gralloc_alloc_buffer(size_t size, int usage, buffer_handle_t* | ||||
|         flags |= private_handle_t::PRIV_FLAGS_USES_PMEM; | ||||
|     } | ||||
| #else | ||||
|     if (usage & GRALLOC_USAGE_PRIVATE_PMEM){ | ||||
|     if (usage & GRALLOC_USAGE_PRIVATE_EBI_HEAP){ | ||||
|         flags |= private_handle_t::PRIV_FLAGS_USES_PMEM; | ||||
|     } | ||||
|  | ||||
| @@ -201,7 +201,7 @@ int gpu_context_t::gralloc_alloc_buffer(size_t size, int usage, buffer_handle_t* | ||||
|         flags |= private_handle_t::PRIV_FLAGS_USES_PMEM; | ||||
|     } | ||||
| #endif | ||||
|     if (usage & GRALLOC_USAGE_PRIVATE_PMEM_ADSP) { | ||||
|     if (usage & GRALLOC_USAGE_PRIVATE_ADSP_HEAP) { | ||||
|         flags |= private_handle_t::PRIV_FLAGS_USES_PMEM_ADSP; | ||||
|         flags &= ~private_handle_t::PRIV_FLAGS_USES_PMEM; | ||||
|     } | ||||
| @@ -237,8 +237,8 @@ int gpu_context_t::gralloc_alloc_buffer(size_t size, int usage, buffer_handle_t* | ||||
|         // Allocate the buffer from pmem | ||||
|         err = pma->alloc_pmem_buffer(size, usage, &base, &offset, &fd); | ||||
|         if (err < 0) { | ||||
|             if (((usage & GRALLOC_USAGE_PRIVATE_PMEM) == 0) && | ||||
|                 ((usage & GRALLOC_USAGE_PRIVATE_PMEM_ADSP) == 0) && | ||||
|             if (((usage & GRALLOC_USAGE_PRIVATE_EBI_HEAP) == 0) && | ||||
|                 ((usage & GRALLOC_USAGE_PRIVATE_ADSP_HEAP) == 0) && | ||||
|                  !isMDPComposition) { | ||||
|                 // the caller didn't request PMEM, so we can try something else | ||||
|                 flags &= ~private_handle_t::PRIV_FLAGS_USES_PMEM; | ||||
|   | ||||
| @@ -44,10 +44,12 @@ enum { BYPASS_OV_CHANNEL_OPEN, | ||||
| #endif | ||||
|  | ||||
| enum { | ||||
|     /* gralloc usage bit indicating a pmem_adsp allocation should be used */ | ||||
|     GRALLOC_USAGE_PRIVATE_PMEM_ADSP = GRALLOC_USAGE_PRIVATE_0, | ||||
|     GRALLOC_USAGE_PRIVATE_PMEM = GRALLOC_USAGE_PRIVATE_1, | ||||
|     GRALLOC_USAGE_PRIVATE_ASHMEM = GRALLOC_USAGE_PRIVATE_2, | ||||
|     /* gralloc usage bit indicating the type | ||||
|      * of allocation that should be used */ | ||||
|     GRALLOC_USAGE_PRIVATE_ADSP_HEAP = GRALLOC_USAGE_PRIVATE_0, | ||||
|     GRALLOC_USAGE_PRIVATE_EBI_HEAP = GRALLOC_USAGE_PRIVATE_1, | ||||
|     GRALLOC_USAGE_PRIVATE_SMI_HEAP = GRALLOC_USAGE_PRIVATE_2, | ||||
|     GRALLOC_USAGE_PRIVATE_SYSTEM_HEAP = GRALLOC_USAGE_PRIVATE_3, | ||||
| }; | ||||
|  | ||||
| /* numbers of max buffers for page flipping */ | ||||
| @@ -325,9 +327,10 @@ struct private_handle_t { | ||||
|         PRIV_FLAGS_FRAMEBUFFER    = 0x00000001, | ||||
|         PRIV_FLAGS_USES_PMEM      = 0x00000002, | ||||
|         PRIV_FLAGS_USES_PMEM_ADSP = 0x00000004, | ||||
|         PRIV_FLAGS_NEEDS_FLUSH    = 0x00000008, | ||||
|         PRIV_FLAGS_USES_ION       = 0x00000008, | ||||
|         PRIV_FLAGS_USES_ASHMEM    = 0x00000010, | ||||
|         PRIV_FLAGS_DO_NOT_FLUSH   = 0x00000020, | ||||
|         PRIV_FLAGS_NEEDS_FLUSH    = 0x00000020, | ||||
|         PRIV_FLAGS_DO_NOT_FLUSH   = 0x00000040, | ||||
|     }; | ||||
|  | ||||
|     enum { | ||||
|   | ||||
| @@ -342,7 +342,7 @@ int gralloc_perform(struct gralloc_module_t const* module, | ||||
|  | ||||
|             native_handle_t** handle = va_arg(args, native_handle_t**); | ||||
|             int memoryFlags = va_arg(args, int); | ||||
|             if (memoryFlags == GRALLOC_USAGE_PRIVATE_PMEM) { | ||||
|             if (memoryFlags == GRALLOC_USAGE_PRIVATE_EBI_HEAP) { | ||||
|                 // validate that it's indeed a pmem buffer | ||||
|                 pmem_region region; | ||||
|                 if (ioctl(fd, PMEM_GET_SIZE, ®ion) < 0) { | ||||
| @@ -353,7 +353,7 @@ int gralloc_perform(struct gralloc_module_t const* module, | ||||
|                     private_handle_t::sNumFds, private_handle_t::sNumInts); | ||||
|             hnd->magic = private_handle_t::sMagic; | ||||
|             hnd->fd = fd; | ||||
|             hnd->flags = (memoryFlags == GRALLOC_USAGE_PRIVATE_PMEM) ? | ||||
|             hnd->flags = (memoryFlags == GRALLOC_USAGE_PRIVATE_EBI_HEAP) ? | ||||
|                          private_handle_t::PRIV_FLAGS_USES_PMEM | | ||||
|                          private_handle_t::PRIV_FLAGS_DO_NOT_FLUSH: | ||||
|                          private_handle_t::PRIV_FLAGS_USES_ASHMEM; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user