Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/msm/disp: pull in common YUV format parameters

Pull common params of YUV formats into corresponding macro definitions,
simplifying format table.

Reviewed-by: Jessica Zhang <jessica.zhang@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/688171/
Link: https://lore.kernel.org/r/20251114-dpu-formats-v3-6-cae312379d49@oss.qualcomm.com
Tested-by: Luca Weiss <luca.weiss@fairphone.com> # qcm6490-fairphone-fp5
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>

+56 -64
+56 -64
drivers/gpu/drm/msm/disp/mdp_format.c
··· 244 244 .tile_height = MDP_TILE_HEIGHT_UBWC, \ 245 245 } 246 246 247 - #define INTERLEAVED_YUV_FMT(fmt, a, r, g, b, e0, e1, e2, e3, \ 248 - alpha, chroma, count, bp, flg, fm, np) \ 247 + #define INTERLEAVED_YUV_FMT(fmt, bp, r, g, b, e0, e1, e2, e3, chroma) \ 249 248 { \ 250 249 .pixel_format = DRM_FORMAT_ ## fmt, \ 251 250 .fetch_type = MDP_PLANE_INTERLEAVED, \ 252 - .alpha_enable = alpha, \ 251 + .alpha_enable = false, \ 253 252 .element = { (e0), (e1), (e2), (e3)}, \ 254 253 .bpc_g_y = g, \ 255 254 .bpc_b_cb = b, \ 256 255 .bpc_r_cr = r, \ 257 - .bpc_a = a, \ 256 + .bpc_a = 0, \ 258 257 .chroma_sample = chroma, \ 259 - .unpack_count = count, \ 258 + .unpack_count = 4, \ 260 259 .bpp = bp, \ 261 - .fetch_mode = fm, \ 262 - .flags = MSM_FORMAT_FLAG_UNPACK_TIGHT | flg, \ 263 - .num_planes = np, \ 260 + .fetch_mode = MDP_FETCH_LINEAR, \ 261 + .flags = MSM_FORMAT_FLAG_UNPACK_TIGHT | \ 262 + MSM_FORMAT_FLAG_YUV, \ 263 + .num_planes = 1, \ 264 264 .tile_height = MDP_TILE_HEIGHT_DEFAULT \ 265 265 } 266 266 267 - #define PSEUDO_YUV_FMT(fmt, a, r, g, b, e0, e1, chroma, flg, fm, np) \ 267 + #define PSEUDO_YUV_FMT(fmt, r, g, b, e0, e1, chroma) \ 268 268 { \ 269 269 .pixel_format = DRM_FORMAT_ ## fmt, \ 270 270 .fetch_type = MDP_PLANE_PSEUDO_PLANAR, \ ··· 273 273 .bpc_g_y = g, \ 274 274 .bpc_b_cb = b, \ 275 275 .bpc_r_cr = r, \ 276 - .bpc_a = a, \ 276 + .bpc_a = 0, \ 277 277 .chroma_sample = chroma, \ 278 278 .unpack_count = 2, \ 279 279 .bpp = 2, \ 280 - .fetch_mode = fm, \ 281 - .flags = MSM_FORMAT_FLAG_UNPACK_TIGHT | flg, \ 282 - .num_planes = np, \ 280 + .fetch_mode = MDP_FETCH_LINEAR, \ 281 + .flags = MSM_FORMAT_FLAG_UNPACK_TIGHT | \ 282 + MSM_FORMAT_FLAG_YUV, \ 283 + .num_planes = 2, \ 283 284 .tile_height = MDP_TILE_HEIGHT_DEFAULT \ 284 285 } 285 286 ··· 304 303 .tile_height = th \ 305 304 } 306 305 307 - #define PSEUDO_YUV_FMT_LOOSE(fmt, a, r, g, b, e0, e1, chroma, flg, fm, np)\ 306 + #define PSEUDO_YUV_FMT_LOOSE(fmt, r, g, b, e0, e1, chroma) \ 308 307 { \ 309 308 .pixel_format = DRM_FORMAT_ ## fmt, \ 310 309 .fetch_type = MDP_PLANE_PSEUDO_PLANAR, \ ··· 313 312 .bpc_g_y = g, \ 314 313 .bpc_b_cb = b, \ 315 314 .bpc_r_cr = r, \ 316 - .bpc_a = a, \ 315 + .bpc_a = 0, \ 317 316 .chroma_sample = chroma, \ 318 317 .unpack_count = 2, \ 319 318 .bpp = 2, \ 320 - .fetch_mode = fm, \ 321 - .flags = MSM_FORMAT_FLAG_UNPACK_ALIGN_MSB | flg, \ 322 - .num_planes = np, \ 319 + .fetch_mode = MDP_FETCH_LINEAR, \ 320 + .flags = MSM_FORMAT_FLAG_UNPACK_ALIGN_MSB | \ 321 + MSM_FORMAT_FLAG_DX | \ 322 + MSM_FORMAT_FLAG_YUV, \ 323 + .num_planes = 2, \ 323 324 .tile_height = MDP_TILE_HEIGHT_DEFAULT \ 324 325 } 325 326 ··· 345 342 .tile_height = th \ 346 343 } 347 344 348 - #define PLANAR_YUV_FMT(fmt, a, r, g, b, e0, e1, e2, alpha, chroma, bp, \ 349 - flg, fm, np) \ 345 + #define PLANAR_YUV_FMT(fmt, bp, r, g, b, e0, e1, e2, chroma) \ 350 346 { \ 351 347 .pixel_format = DRM_FORMAT_ ## fmt, \ 352 348 .fetch_type = MDP_PLANE_PLANAR, \ 353 - .alpha_enable = alpha, \ 349 + .alpha_enable = false, \ 354 350 .element = { (e0), (e1), (e2), 0 }, \ 355 351 .bpc_g_y = g, \ 356 352 .bpc_b_cb = b, \ 357 353 .bpc_r_cr = r, \ 358 - .bpc_a = a, \ 354 + .bpc_a = 0, \ 359 355 .chroma_sample = chroma, \ 360 356 .unpack_count = 1, \ 361 357 .bpp = bp, \ 362 - .fetch_mode = fm, \ 363 - .flags = MSM_FORMAT_FLAG_UNPACK_TIGHT | flg, \ 364 - .num_planes = np, \ 358 + .fetch_mode = MDP_FETCH_LINEAR, \ 359 + .flags = MSM_FORMAT_FLAG_UNPACK_TIGHT | \ 360 + MSM_FORMAT_FLAG_YUV, \ 361 + .num_planes = 3, \ 365 362 .tile_height = MDP_TILE_HEIGHT_DEFAULT \ 366 363 } 367 364 ··· 514 511 515 512 /* 2 plane YUV */ 516 513 PSEUDO_YUV_FMT(NV12, 517 - 0, BPC8, BPC8, BPC8, 514 + BPC8, BPC8, BPC8, 518 515 C1_B_Cb, C2_R_Cr, 519 - CHROMA_420, MSM_FORMAT_FLAG_YUV, 520 - MDP_FETCH_LINEAR, 2), 516 + CHROMA_420), 521 517 522 518 PSEUDO_YUV_FMT(NV21, 523 - 0, BPC8, BPC8, BPC8, 519 + BPC8, BPC8, BPC8, 524 520 C2_R_Cr, C1_B_Cb, 525 - CHROMA_420, MSM_FORMAT_FLAG_YUV, 526 - MDP_FETCH_LINEAR, 2), 521 + CHROMA_420), 527 522 528 523 PSEUDO_YUV_FMT(NV16, 529 - 0, BPC8, BPC8, BPC8, 524 + BPC8, BPC8, BPC8, 530 525 C1_B_Cb, C2_R_Cr, 531 - CHROMA_H2V1, MSM_FORMAT_FLAG_YUV, 532 - MDP_FETCH_LINEAR, 2), 526 + CHROMA_H2V1), 533 527 534 528 PSEUDO_YUV_FMT(NV61, 535 - 0, BPC8, BPC8, BPC8, 529 + BPC8, BPC8, BPC8, 536 530 C2_R_Cr, C1_B_Cb, 537 - CHROMA_H2V1, MSM_FORMAT_FLAG_YUV, 538 - MDP_FETCH_LINEAR, 2), 531 + CHROMA_H2V1), 539 532 540 533 PSEUDO_YUV_FMT_LOOSE(P010, 541 - 0, BPC8, BPC8, BPC8, 534 + BPC8, BPC8, BPC8, 542 535 C1_B_Cb, C2_R_Cr, 543 - CHROMA_420, MSM_FORMAT_FLAG_DX | MSM_FORMAT_FLAG_YUV, 544 - MDP_FETCH_LINEAR, 2), 536 + CHROMA_420), 545 537 546 538 /* 1 plane YUV */ 547 - INTERLEAVED_YUV_FMT(VYUY, 548 - 0, BPC8, BPC8, BPC8, 539 + INTERLEAVED_YUV_FMT(VYUY, 2, 540 + BPC8, BPC8, BPC8, 549 541 C2_R_Cr, C0_G_Y, C1_B_Cb, C0_G_Y, 550 - false, CHROMA_H2V1, 4, 2, MSM_FORMAT_FLAG_YUV, 551 - MDP_FETCH_LINEAR, 1), 542 + CHROMA_H2V1), 552 543 553 - INTERLEAVED_YUV_FMT(UYVY, 554 - 0, BPC8, BPC8, BPC8, 544 + INTERLEAVED_YUV_FMT(UYVY, 2, 545 + BPC8, BPC8, BPC8, 555 546 C1_B_Cb, C0_G_Y, C2_R_Cr, C0_G_Y, 556 - false, CHROMA_H2V1, 4, 2, MSM_FORMAT_FLAG_YUV, 557 - MDP_FETCH_LINEAR, 1), 547 + CHROMA_H2V1), 558 548 559 - INTERLEAVED_YUV_FMT(YUYV, 560 - 0, BPC8, BPC8, BPC8, 549 + INTERLEAVED_YUV_FMT(YUYV, 2, 550 + BPC8, BPC8, BPC8, 561 551 C0_G_Y, C1_B_Cb, C0_G_Y, C2_R_Cr, 562 - false, CHROMA_H2V1, 4, 2, MSM_FORMAT_FLAG_YUV, 563 - MDP_FETCH_LINEAR, 1), 552 + CHROMA_H2V1), 564 553 565 - INTERLEAVED_YUV_FMT(YVYU, 566 - 0, BPC8, BPC8, BPC8, 554 + INTERLEAVED_YUV_FMT(YVYU, 2, 555 + BPC8, BPC8, BPC8, 567 556 C0_G_Y, C2_R_Cr, C0_G_Y, C1_B_Cb, 568 - false, CHROMA_H2V1, 4, 2, MSM_FORMAT_FLAG_YUV, 569 - MDP_FETCH_LINEAR, 1), 557 + CHROMA_H2V1), 570 558 571 559 /* 3 plane YUV */ 572 - PLANAR_YUV_FMT(YUV420, 573 - 0, BPC8, BPC8, BPC8, 560 + PLANAR_YUV_FMT(YUV420, 1, 561 + BPC8, BPC8, BPC8, 574 562 C2_R_Cr, C1_B_Cb, C0_G_Y, 575 - false, CHROMA_420, 1, MSM_FORMAT_FLAG_YUV, 576 - MDP_FETCH_LINEAR, 3), 563 + CHROMA_420), 577 564 578 - PLANAR_YUV_FMT(YVU420, 579 - 0, BPC8, BPC8, BPC8, 565 + PLANAR_YUV_FMT(YVU420, 1, 566 + BPC8, BPC8, BPC8, 580 567 C1_B_Cb, C2_R_Cr, C0_G_Y, 581 - false, CHROMA_420, 1, MSM_FORMAT_FLAG_YUV, 582 - MDP_FETCH_LINEAR, 3), 568 + CHROMA_420), 583 569 }; 584 570 585 571 /*