diff options
| author | Ricky Liang <jcliang@chromium.org> | 2017-11-10 09:17:17 +0800 |
|---|---|---|
| committer | chrome-bot <chrome-bot@chromium.org> | 2017-11-11 05:28:27 -0800 |
| commit | 0b78e0716b1806806ef2babc870cc19f8a485abe (patch) | |
| tree | 492d000020f42c5024113a868c2b1d7a0d1cd0d5 | |
| parent | 39f66c0cf95dc64c263feb91b493c49acdbd6c71 (diff) | |
minigbm: amdgpu: add supported formats for camera
Set the CAMERA_{READ|WRITE} flags for formats that are used by the
camera stack.
BUG=b:69109002
TEST=Verify that camera works on Kahlee.
Change-Id: I4c9aacdc71d3b18188783007f8c88da37ed28dca
Reviewed-on: https://chromium-review.googlesource.com/762687
Commit-Ready: Ricky Liang <jcliang@chromium.org>
Tested-by: Justin TerAvest <teravest@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
| -rw-r--r-- | amdgpu.c | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -289,6 +289,16 @@ static int amdgpu_init(struct driver *drv) if (ret) return ret; + /* YUV format for camera */ + drv_modify_combination(drv, DRM_FORMAT_NV12, &LINEAR_METADATA, + BO_USE_CAMERA_READ | BO_USE_CAMERA_WRITE); + /* + * R8 format is used for Android's HAL_PIXEL_FORMAT_BLOB and is used for JPEG snapshots + * from camera. + */ + drv_modify_combination(drv, DRM_FORMAT_R8, &LINEAR_METADATA, + BO_USE_CAMERA_READ | BO_USE_CAMERA_WRITE); + drv_modify_combination(drv, DRM_FORMAT_NV21, &LINEAR_METADATA, BO_USE_SCANOUT); drv_modify_combination(drv, DRM_FORMAT_NV12, &LINEAR_METADATA, BO_USE_SCANOUT); @@ -419,6 +429,12 @@ static void *amdgpu_bo_map(struct bo *bo, struct mapping *mapping, size_t plane, static uint32_t amdgpu_resolve_format(uint32_t format, uint64_t use_flags) { switch (format) { + case DRM_FORMAT_FLEX_IMPLEMENTATION_DEFINED: + /* Camera subsystem requires NV12. */ + if (use_flags & (BO_USE_CAMERA_READ | BO_USE_CAMERA_WRITE)) + return DRM_FORMAT_NV12; + /*HACK: See b/28671744 */ + return DRM_FORMAT_XBGR8888; case DRM_FORMAT_FLEX_YCbCr_420_888: return DRM_FORMAT_NV12; default: |
