Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b38ee758 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "uapi: Add COLOR_FMT_NV12_512"

parents aeb74a7e 3dfbc8b1
Loading
Loading
Loading
Loading
+51 −1
Original line number Diff line number Diff line
@@ -53,7 +53,6 @@ enum color_fmts {
	 *          + max(Extradata, Y_Stride * 8), 4096)
	 */
	COLOR_FMT_NV12,

	/* Venus NV21:
	 * YUV 4:2:0 image with a plane of 8 bit Y samples followed
	 * by an interleaved V/U plane containing 8 bit 2x2 subsampled
@@ -806,12 +805,48 @@ enum color_fmts {
	 *          + max(Extradata, Y_Stride * 8), 4096)
	 */
	COLOR_FMT_P010,
	/* Venus NV12_512:
	 * YUV 4:2:0 image with a plane of 8 bit Y samples followed
	 * by an interleaved U/V plane containing 8 bit 2x2 subsampled
	 * colour difference samples.
	 *
	 * <-------- Y/UV_Stride -------->
	 * <------- Width ------->
	 * Y Y Y Y Y Y Y Y Y Y Y Y . . . .  ^           ^
	 * Y Y Y Y Y Y Y Y Y Y Y Y . . . .  |           |
	 * Y Y Y Y Y Y Y Y Y Y Y Y . . . .  Height      |
	 * Y Y Y Y Y Y Y Y Y Y Y Y . . . .  |          Y_Scanlines
	 * Y Y Y Y Y Y Y Y Y Y Y Y . . . .  |           |
	 * Y Y Y Y Y Y Y Y Y Y Y Y . . . .  |           |
	 * Y Y Y Y Y Y Y Y Y Y Y Y . . . .  |           |
	 * Y Y Y Y Y Y Y Y Y Y Y Y . . . .  V           |
	 * . . . . . . . . . . . . . . . .              |
	 * . . . . . . . . . . . . . . . .              |
	 * . . . . . . . . . . . . . . . .              |
	 * . . . . . . . . . . . . . . . .              V
	 * U V U V U V U V U V U V . . . .  ^
	 * U V U V U V U V U V U V . . . .  |
	 * U V U V U V U V U V U V . . . .  |
	 * U V U V U V U V U V U V . . . .  UV_Scanlines
	 * . . . . . . . . . . . . . . . .  |
	 * . . . . . . . . . . . . . . . .  V
	 * . . . . . . . . . . . . . . . .  --> Buffer size alignment
	 *
	 * Y_Stride : Width aligned to 512
	 * UV_Stride : Width aligned to 512
	 * Y_Scanlines: Height aligned to 512
	 * UV_Scanlines: Height/2 aligned to 256
	 * Total size = align((Y_Stride * Y_Scanlines
	 *          + UV_Stride  * UV_Scanlines), 4096)
	 */
	COLOR_FMT_NV12_512,
};

#define COLOR_FMT_RGBA1010102_UBWC	COLOR_FMT_RGBA1010102_UBWC
#define COLOR_FMT_RGB565_UBWC		COLOR_FMT_RGB565_UBWC
#define COLOR_FMT_P010_UBWC		COLOR_FMT_P010_UBWC
#define COLOR_FMT_P010		COLOR_FMT_P010
#define COLOR_FMT_NV12_512		COLOR_FMT_NV12_512

static inline unsigned int VENUS_EXTRADATA_SIZE(int width, int height)
{
@@ -847,6 +882,10 @@ static inline unsigned int VENUS_Y_STRIDE(int color_fmt, int width)
		alignment = 128;
		stride = MSM_MEDIA_ALIGN(width, alignment);
		break;
	case COLOR_FMT_NV12_512:
		alignment = 512;
		stride = MSM_MEDIA_ALIGN(width, alignment);
		break;
	case COLOR_FMT_NV12_BPP10_UBWC:
		alignment = 256;
		stride = MSM_MEDIA_ALIGN(width, 192);
@@ -889,6 +928,10 @@ static inline unsigned int VENUS_UV_STRIDE(int color_fmt, int width)
		alignment = 128;
		stride = MSM_MEDIA_ALIGN(width, alignment);
		break;
	case COLOR_FMT_NV12_512:
		alignment = 512;
		stride = MSM_MEDIA_ALIGN(width, alignment);
		break;
	case COLOR_FMT_NV12_BPP10_UBWC:
		alignment = 256;
		stride = MSM_MEDIA_ALIGN(width, 192);
@@ -931,6 +974,9 @@ static inline unsigned int VENUS_Y_SCANLINES(int color_fmt, int height)
	case COLOR_FMT_P010:
		alignment = 32;
		break;
	case COLOR_FMT_NV12_512:
		alignment = 512;
		break;
	case COLOR_FMT_NV12_BPP10_UBWC:
	case COLOR_FMT_P010_UBWC:
		alignment = 16;
@@ -966,6 +1012,9 @@ static inline unsigned int VENUS_UV_SCANLINES(int color_fmt, int height)
	case COLOR_FMT_P010:
		alignment = 16;
		break;
	case COLOR_FMT_NV12_512:
		alignment = 256;
		break;
	case COLOR_FMT_NV12_UBWC:
		alignment = 32;
		break;
@@ -1268,6 +1317,7 @@ static inline unsigned int VENUS_BUFFER_SIZE(
		}
		break;
	case COLOR_FMT_P010:
	case COLOR_FMT_NV12_512:
		uv_alignment = 4096;
		y_plane = y_stride * y_sclines;
		uv_plane = uv_stride * uv_sclines + uv_alignment;