@@ -299,6 +299,11 @@ static u32 vop2_get_bpp(const struct drm_format_info *format)
299299static enum vop2_data_format vop2_convert_format (u32 format )
300300{
301301 switch (format ) {
302+ case DRM_FORMAT_XRGB2101010 :
303+ case DRM_FORMAT_ARGB2101010 :
304+ case DRM_FORMAT_XBGR2101010 :
305+ case DRM_FORMAT_ABGR2101010 :
306+ return VOP2_FMT_XRGB101010 ;
302307 case DRM_FORMAT_XRGB8888 :
303308 case DRM_FORMAT_ARGB8888 :
304309 case DRM_FORMAT_XBGR8888 :
@@ -311,10 +316,19 @@ static enum vop2_data_format vop2_convert_format(u32 format)
311316 case DRM_FORMAT_BGR565 :
312317 return VOP2_FMT_RGB565 ;
313318 case DRM_FORMAT_NV12 :
319+ case DRM_FORMAT_NV21 :
320+ case DRM_FORMAT_YUV420_8BIT :
314321 return VOP2_FMT_YUV420SP ;
322+ case DRM_FORMAT_NV15 :
323+ case DRM_FORMAT_YUV420_10BIT :
324+ return VOP2_FMT_YUV420SP_10 ;
315325 case DRM_FORMAT_NV16 :
326+ case DRM_FORMAT_NV61 :
316327 return VOP2_FMT_YUV422SP ;
328+ case DRM_FORMAT_Y210 :
329+ return VOP2_FMT_YUV422SP_10 ;
317330 case DRM_FORMAT_NV24 :
331+ case DRM_FORMAT_NV42 :
318332 return VOP2_FMT_YUV444SP ;
319333 case DRM_FORMAT_YUYV :
320334 case DRM_FORMAT_YVYU :
@@ -331,6 +345,11 @@ static enum vop2_data_format vop2_convert_format(u32 format)
331345static enum vop2_afbc_format vop2_convert_afbc_format (u32 format )
332346{
333347 switch (format ) {
348+ case DRM_FORMAT_XRGB2101010 :
349+ case DRM_FORMAT_ARGB2101010 :
350+ case DRM_FORMAT_XBGR2101010 :
351+ case DRM_FORMAT_ABGR2101010 :
352+ return VOP2_AFBC_FMT_ARGB2101010 ;
334353 case DRM_FORMAT_XRGB8888 :
335354 case DRM_FORMAT_ARGB8888 :
336355 case DRM_FORMAT_XBGR8888 :
@@ -342,6 +361,17 @@ static enum vop2_afbc_format vop2_convert_afbc_format(u32 format)
342361 case DRM_FORMAT_RGB565 :
343362 case DRM_FORMAT_BGR565 :
344363 return VOP2_AFBC_FMT_RGB565 ;
364+ case DRM_FORMAT_YUV420_8BIT :
365+ return VOP2_AFBC_FMT_YUV420 ;
366+ case DRM_FORMAT_YUV420_10BIT :
367+ return VOP2_AFBC_FMT_YUV420_10BIT ;
368+ case DRM_FORMAT_YVYU :
369+ case DRM_FORMAT_YUYV :
370+ case DRM_FORMAT_VYUY :
371+ case DRM_FORMAT_UYVY :
372+ return VOP2_AFBC_FMT_YUV422 ;
373+ case DRM_FORMAT_Y210 :
374+ return VOP2_AFBC_FMT_YUV422_10BIT ;
345375 default :
346376 return VOP2_AFBC_FMT_INVALID ;
347377 }
@@ -352,6 +382,8 @@ static enum vop2_afbc_format vop2_convert_afbc_format(u32 format)
352382static bool vop2_win_rb_swap (u32 format )
353383{
354384 switch (format ) {
385+ case DRM_FORMAT_XBGR2101010 :
386+ case DRM_FORMAT_ABGR2101010 :
355387 case DRM_FORMAT_XBGR8888 :
356388 case DRM_FORMAT_ABGR8888 :
357389 case DRM_FORMAT_BGR888 :
@@ -364,7 +396,15 @@ static bool vop2_win_rb_swap(u32 format)
364396
365397static bool vop2_afbc_uv_swap (u32 format )
366398{
367- return false;
399+ switch (format ) {
400+ case DRM_FORMAT_YUYV :
401+ case DRM_FORMAT_Y210 :
402+ case DRM_FORMAT_YUV420_8BIT :
403+ case DRM_FORMAT_YUV420_10BIT :
404+ return true;
405+ default :
406+ return false;
407+ }
368408}
369409
370410static bool vop2_win_uv_swap (u32 format )
@@ -373,6 +413,9 @@ static bool vop2_win_uv_swap(u32 format)
373413 case DRM_FORMAT_NV12 :
374414 case DRM_FORMAT_NV16 :
375415 case DRM_FORMAT_NV24 :
416+ case DRM_FORMAT_NV15 :
417+ case DRM_FORMAT_YUYV :
418+ case DRM_FORMAT_UYVY :
376419 return true;
377420 default :
378421 return false;
0 commit comments