Loading rotator/sde_rotator_r3.c +166 −4 Original line number Diff line number Diff line Loading @@ -406,6 +406,168 @@ static const u32 sde_hw_rotator_v4_outpixfmts[] = { SDE_PIX_FMT_XBGR_2101010_TILE, }; static const u32 sde_hw_rotator_v5_inpixfmts[] = { SDE_PIX_FMT_XRGB_8888, SDE_PIX_FMT_ARGB_8888, SDE_PIX_FMT_ABGR_8888, SDE_PIX_FMT_RGBA_8888, SDE_PIX_FMT_BGRA_8888, SDE_PIX_FMT_RGBX_8888, SDE_PIX_FMT_BGRX_8888, SDE_PIX_FMT_XBGR_8888, SDE_PIX_FMT_RGBA_5551, SDE_PIX_FMT_ARGB_1555, SDE_PIX_FMT_ABGR_1555, SDE_PIX_FMT_BGRA_5551, SDE_PIX_FMT_BGRX_5551, SDE_PIX_FMT_RGBX_5551, SDE_PIX_FMT_XBGR_1555, SDE_PIX_FMT_XRGB_1555, SDE_PIX_FMT_ARGB_4444, SDE_PIX_FMT_RGBA_4444, SDE_PIX_FMT_BGRA_4444, SDE_PIX_FMT_ABGR_4444, SDE_PIX_FMT_RGBX_4444, SDE_PIX_FMT_XRGB_4444, SDE_PIX_FMT_BGRX_4444, SDE_PIX_FMT_XBGR_4444, SDE_PIX_FMT_RGB_888, SDE_PIX_FMT_BGR_888, SDE_PIX_FMT_RGB_565, SDE_PIX_FMT_BGR_565, SDE_PIX_FMT_Y_CB_CR_H2V2, SDE_PIX_FMT_Y_CR_CB_H2V2, SDE_PIX_FMT_Y_CR_CB_GH2V2, SDE_PIX_FMT_Y_CBCR_H2V2, SDE_PIX_FMT_Y_CRCB_H2V2, SDE_PIX_FMT_Y_CBCR_H1V2, SDE_PIX_FMT_Y_CRCB_H1V2, SDE_PIX_FMT_Y_CBCR_H2V1, SDE_PIX_FMT_Y_CRCB_H2V1, SDE_PIX_FMT_YCBYCR_H2V1, SDE_PIX_FMT_Y_CBCR_H2V2_VENUS, SDE_PIX_FMT_Y_CRCB_H2V2_VENUS, /* SDE_PIX_FMT_RGBA_8888_UBWC */ /* SDE_PIX_FMT_RGBX_8888_UBWC */ /* SDE_PIX_FMT_RGB_565_UBWC */ /* SDE_PIX_FMT_Y_CBCR_H2V2_UBWC */ SDE_PIX_FMT_RGBA_1010102, SDE_PIX_FMT_RGBX_1010102, SDE_PIX_FMT_ARGB_2101010, SDE_PIX_FMT_XRGB_2101010, SDE_PIX_FMT_BGRA_1010102, SDE_PIX_FMT_BGRX_1010102, SDE_PIX_FMT_ABGR_2101010, SDE_PIX_FMT_XBGR_2101010, /* SDE_PIX_FMT_RGBA_1010102_UBWC */ /* SDE_PIX_FMT_RGBX_1010102_UBWC */ SDE_PIX_FMT_Y_CBCR_H2V2_P010, SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS, SDE_PIX_FMT_Y_CBCR_H2V2_TP10, /* SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC */ /* SDE_PIX_FMT_Y_CBCR_H2V2_P010_UBWC */ SDE_PIX_FMT_Y_CBCR_H2V2_P010_TILE, SDE_PIX_FMT_Y_CBCR_H2V2_TILE, SDE_PIX_FMT_Y_CRCB_H2V2_TILE, SDE_PIX_FMT_XRGB_8888_TILE, SDE_PIX_FMT_ARGB_8888_TILE, SDE_PIX_FMT_ABGR_8888_TILE, SDE_PIX_FMT_XBGR_8888_TILE, SDE_PIX_FMT_RGBA_8888_TILE, SDE_PIX_FMT_BGRA_8888_TILE, SDE_PIX_FMT_RGBX_8888_TILE, SDE_PIX_FMT_BGRX_8888_TILE, SDE_PIX_FMT_RGBA_1010102_TILE, SDE_PIX_FMT_RGBX_1010102_TILE, SDE_PIX_FMT_ARGB_2101010_TILE, SDE_PIX_FMT_XRGB_2101010_TILE, SDE_PIX_FMT_BGRA_1010102_TILE, SDE_PIX_FMT_BGRX_1010102_TILE, SDE_PIX_FMT_ABGR_2101010_TILE, SDE_PIX_FMT_XBGR_2101010_TILE, }; static const u32 sde_hw_rotator_v5_outpixfmts[] = { SDE_PIX_FMT_XRGB_8888, SDE_PIX_FMT_ARGB_8888, SDE_PIX_FMT_ABGR_8888, SDE_PIX_FMT_RGBA_8888, SDE_PIX_FMT_BGRA_8888, SDE_PIX_FMT_RGBX_8888, SDE_PIX_FMT_BGRX_8888, SDE_PIX_FMT_XBGR_8888, SDE_PIX_FMT_RGBA_5551, SDE_PIX_FMT_ARGB_1555, SDE_PIX_FMT_ABGR_1555, SDE_PIX_FMT_BGRA_5551, SDE_PIX_FMT_BGRX_5551, SDE_PIX_FMT_RGBX_5551, SDE_PIX_FMT_XBGR_1555, SDE_PIX_FMT_XRGB_1555, SDE_PIX_FMT_ARGB_4444, SDE_PIX_FMT_RGBA_4444, SDE_PIX_FMT_BGRA_4444, SDE_PIX_FMT_ABGR_4444, SDE_PIX_FMT_RGBX_4444, SDE_PIX_FMT_XRGB_4444, SDE_PIX_FMT_BGRX_4444, SDE_PIX_FMT_XBGR_4444, SDE_PIX_FMT_RGB_888, SDE_PIX_FMT_BGR_888, SDE_PIX_FMT_RGB_565, SDE_PIX_FMT_BGR_565, /* SDE_PIX_FMT_Y_CB_CR_H2V2 */ /* SDE_PIX_FMT_Y_CR_CB_H2V2 */ /* SDE_PIX_FMT_Y_CR_CB_GH2V2 */ SDE_PIX_FMT_Y_CBCR_H2V2, SDE_PIX_FMT_Y_CRCB_H2V2, SDE_PIX_FMT_Y_CBCR_H1V2, SDE_PIX_FMT_Y_CRCB_H1V2, SDE_PIX_FMT_Y_CBCR_H2V1, SDE_PIX_FMT_Y_CRCB_H2V1, /* SDE_PIX_FMT_YCBYCR_H2V1 */ SDE_PIX_FMT_Y_CBCR_H2V2_VENUS, SDE_PIX_FMT_Y_CRCB_H2V2_VENUS, /* SDE_PIX_FMT_RGBA_8888_UBWC */ /* SDE_PIX_FMT_RGBX_8888_UBWC */ /* SDE_PIX_FMT_RGB_565_UBWC */ /* SDE_PIX_FMT_Y_CBCR_H2V2_UBWC */ SDE_PIX_FMT_RGBA_1010102, SDE_PIX_FMT_RGBX_1010102, SDE_PIX_FMT_ARGB_2101010, SDE_PIX_FMT_XRGB_2101010, SDE_PIX_FMT_BGRA_1010102, SDE_PIX_FMT_BGRX_1010102, SDE_PIX_FMT_ABGR_2101010, SDE_PIX_FMT_XBGR_2101010, /* SDE_PIX_FMT_RGBA_1010102_UBWC */ /* SDE_PIX_FMT_RGBX_1010102_UBWC */ SDE_PIX_FMT_Y_CBCR_H2V2_P010, SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS, SDE_PIX_FMT_Y_CBCR_H2V2_TP10, /* SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC */ /* SDE_PIX_FMT_Y_CBCR_H2V2_P010_UBWC */ SDE_PIX_FMT_Y_CBCR_H2V2_P010_TILE, SDE_PIX_FMT_Y_CBCR_H2V2_TILE, SDE_PIX_FMT_Y_CRCB_H2V2_TILE, SDE_PIX_FMT_XRGB_8888_TILE, SDE_PIX_FMT_ARGB_8888_TILE, SDE_PIX_FMT_ABGR_8888_TILE, SDE_PIX_FMT_XBGR_8888_TILE, SDE_PIX_FMT_RGBA_8888_TILE, SDE_PIX_FMT_BGRA_8888_TILE, SDE_PIX_FMT_RGBX_8888_TILE, SDE_PIX_FMT_BGRX_8888_TILE, SDE_PIX_FMT_RGBA_1010102_TILE, SDE_PIX_FMT_RGBX_1010102_TILE, SDE_PIX_FMT_ARGB_2101010_TILE, SDE_PIX_FMT_XRGB_2101010_TILE, SDE_PIX_FMT_BGRA_1010102_TILE, SDE_PIX_FMT_BGRX_1010102_TILE, SDE_PIX_FMT_ABGR_2101010_TILE, SDE_PIX_FMT_XBGR_2101010_TILE, }; static const u32 sde_hw_rotator_v4_inpixfmts_sbuf[] = { SDE_PIX_FMT_Y_CBCR_H2V2_P010, SDE_PIX_FMT_Y_CBCR_H2V2, Loading Loading @@ -3507,13 +3669,13 @@ static int sde_rotator_hw_rev_init(struct sde_hw_rotator *rot) set_bit(SDE_CAPS_PARTIALWR, mdata->sde_caps_map); set_bit(SDE_CAPS_HW_TIMESTAMP, mdata->sde_caps_map); rot->inpixfmts[SDE_ROTATOR_MODE_OFFLINE] = sde_hw_rotator_v4_inpixfmts; sde_hw_rotator_v5_inpixfmts; rot->num_inpixfmt[SDE_ROTATOR_MODE_OFFLINE] = ARRAY_SIZE(sde_hw_rotator_v4_inpixfmts); ARRAY_SIZE(sde_hw_rotator_v5_inpixfmts); rot->outpixfmts[SDE_ROTATOR_MODE_OFFLINE] = sde_hw_rotator_v4_outpixfmts; sde_hw_rotator_v5_outpixfmts; rot->num_outpixfmt[SDE_ROTATOR_MODE_OFFLINE] = ARRAY_SIZE(sde_hw_rotator_v4_outpixfmts); ARRAY_SIZE(sde_hw_rotator_v5_outpixfmts); rot->downscale_caps = "LINEAR/1.5/2/4/8/16/32/64 TILE/1.5/2/4 TP10/1.5/2"; } else { Loading Loading
rotator/sde_rotator_r3.c +166 −4 Original line number Diff line number Diff line Loading @@ -406,6 +406,168 @@ static const u32 sde_hw_rotator_v4_outpixfmts[] = { SDE_PIX_FMT_XBGR_2101010_TILE, }; static const u32 sde_hw_rotator_v5_inpixfmts[] = { SDE_PIX_FMT_XRGB_8888, SDE_PIX_FMT_ARGB_8888, SDE_PIX_FMT_ABGR_8888, SDE_PIX_FMT_RGBA_8888, SDE_PIX_FMT_BGRA_8888, SDE_PIX_FMT_RGBX_8888, SDE_PIX_FMT_BGRX_8888, SDE_PIX_FMT_XBGR_8888, SDE_PIX_FMT_RGBA_5551, SDE_PIX_FMT_ARGB_1555, SDE_PIX_FMT_ABGR_1555, SDE_PIX_FMT_BGRA_5551, SDE_PIX_FMT_BGRX_5551, SDE_PIX_FMT_RGBX_5551, SDE_PIX_FMT_XBGR_1555, SDE_PIX_FMT_XRGB_1555, SDE_PIX_FMT_ARGB_4444, SDE_PIX_FMT_RGBA_4444, SDE_PIX_FMT_BGRA_4444, SDE_PIX_FMT_ABGR_4444, SDE_PIX_FMT_RGBX_4444, SDE_PIX_FMT_XRGB_4444, SDE_PIX_FMT_BGRX_4444, SDE_PIX_FMT_XBGR_4444, SDE_PIX_FMT_RGB_888, SDE_PIX_FMT_BGR_888, SDE_PIX_FMT_RGB_565, SDE_PIX_FMT_BGR_565, SDE_PIX_FMT_Y_CB_CR_H2V2, SDE_PIX_FMT_Y_CR_CB_H2V2, SDE_PIX_FMT_Y_CR_CB_GH2V2, SDE_PIX_FMT_Y_CBCR_H2V2, SDE_PIX_FMT_Y_CRCB_H2V2, SDE_PIX_FMT_Y_CBCR_H1V2, SDE_PIX_FMT_Y_CRCB_H1V2, SDE_PIX_FMT_Y_CBCR_H2V1, SDE_PIX_FMT_Y_CRCB_H2V1, SDE_PIX_FMT_YCBYCR_H2V1, SDE_PIX_FMT_Y_CBCR_H2V2_VENUS, SDE_PIX_FMT_Y_CRCB_H2V2_VENUS, /* SDE_PIX_FMT_RGBA_8888_UBWC */ /* SDE_PIX_FMT_RGBX_8888_UBWC */ /* SDE_PIX_FMT_RGB_565_UBWC */ /* SDE_PIX_FMT_Y_CBCR_H2V2_UBWC */ SDE_PIX_FMT_RGBA_1010102, SDE_PIX_FMT_RGBX_1010102, SDE_PIX_FMT_ARGB_2101010, SDE_PIX_FMT_XRGB_2101010, SDE_PIX_FMT_BGRA_1010102, SDE_PIX_FMT_BGRX_1010102, SDE_PIX_FMT_ABGR_2101010, SDE_PIX_FMT_XBGR_2101010, /* SDE_PIX_FMT_RGBA_1010102_UBWC */ /* SDE_PIX_FMT_RGBX_1010102_UBWC */ SDE_PIX_FMT_Y_CBCR_H2V2_P010, SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS, SDE_PIX_FMT_Y_CBCR_H2V2_TP10, /* SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC */ /* SDE_PIX_FMT_Y_CBCR_H2V2_P010_UBWC */ SDE_PIX_FMT_Y_CBCR_H2V2_P010_TILE, SDE_PIX_FMT_Y_CBCR_H2V2_TILE, SDE_PIX_FMT_Y_CRCB_H2V2_TILE, SDE_PIX_FMT_XRGB_8888_TILE, SDE_PIX_FMT_ARGB_8888_TILE, SDE_PIX_FMT_ABGR_8888_TILE, SDE_PIX_FMT_XBGR_8888_TILE, SDE_PIX_FMT_RGBA_8888_TILE, SDE_PIX_FMT_BGRA_8888_TILE, SDE_PIX_FMT_RGBX_8888_TILE, SDE_PIX_FMT_BGRX_8888_TILE, SDE_PIX_FMT_RGBA_1010102_TILE, SDE_PIX_FMT_RGBX_1010102_TILE, SDE_PIX_FMT_ARGB_2101010_TILE, SDE_PIX_FMT_XRGB_2101010_TILE, SDE_PIX_FMT_BGRA_1010102_TILE, SDE_PIX_FMT_BGRX_1010102_TILE, SDE_PIX_FMT_ABGR_2101010_TILE, SDE_PIX_FMT_XBGR_2101010_TILE, }; static const u32 sde_hw_rotator_v5_outpixfmts[] = { SDE_PIX_FMT_XRGB_8888, SDE_PIX_FMT_ARGB_8888, SDE_PIX_FMT_ABGR_8888, SDE_PIX_FMT_RGBA_8888, SDE_PIX_FMT_BGRA_8888, SDE_PIX_FMT_RGBX_8888, SDE_PIX_FMT_BGRX_8888, SDE_PIX_FMT_XBGR_8888, SDE_PIX_FMT_RGBA_5551, SDE_PIX_FMT_ARGB_1555, SDE_PIX_FMT_ABGR_1555, SDE_PIX_FMT_BGRA_5551, SDE_PIX_FMT_BGRX_5551, SDE_PIX_FMT_RGBX_5551, SDE_PIX_FMT_XBGR_1555, SDE_PIX_FMT_XRGB_1555, SDE_PIX_FMT_ARGB_4444, SDE_PIX_FMT_RGBA_4444, SDE_PIX_FMT_BGRA_4444, SDE_PIX_FMT_ABGR_4444, SDE_PIX_FMT_RGBX_4444, SDE_PIX_FMT_XRGB_4444, SDE_PIX_FMT_BGRX_4444, SDE_PIX_FMT_XBGR_4444, SDE_PIX_FMT_RGB_888, SDE_PIX_FMT_BGR_888, SDE_PIX_FMT_RGB_565, SDE_PIX_FMT_BGR_565, /* SDE_PIX_FMT_Y_CB_CR_H2V2 */ /* SDE_PIX_FMT_Y_CR_CB_H2V2 */ /* SDE_PIX_FMT_Y_CR_CB_GH2V2 */ SDE_PIX_FMT_Y_CBCR_H2V2, SDE_PIX_FMT_Y_CRCB_H2V2, SDE_PIX_FMT_Y_CBCR_H1V2, SDE_PIX_FMT_Y_CRCB_H1V2, SDE_PIX_FMT_Y_CBCR_H2V1, SDE_PIX_FMT_Y_CRCB_H2V1, /* SDE_PIX_FMT_YCBYCR_H2V1 */ SDE_PIX_FMT_Y_CBCR_H2V2_VENUS, SDE_PIX_FMT_Y_CRCB_H2V2_VENUS, /* SDE_PIX_FMT_RGBA_8888_UBWC */ /* SDE_PIX_FMT_RGBX_8888_UBWC */ /* SDE_PIX_FMT_RGB_565_UBWC */ /* SDE_PIX_FMT_Y_CBCR_H2V2_UBWC */ SDE_PIX_FMT_RGBA_1010102, SDE_PIX_FMT_RGBX_1010102, SDE_PIX_FMT_ARGB_2101010, SDE_PIX_FMT_XRGB_2101010, SDE_PIX_FMT_BGRA_1010102, SDE_PIX_FMT_BGRX_1010102, SDE_PIX_FMT_ABGR_2101010, SDE_PIX_FMT_XBGR_2101010, /* SDE_PIX_FMT_RGBA_1010102_UBWC */ /* SDE_PIX_FMT_RGBX_1010102_UBWC */ SDE_PIX_FMT_Y_CBCR_H2V2_P010, SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS, SDE_PIX_FMT_Y_CBCR_H2V2_TP10, /* SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC */ /* SDE_PIX_FMT_Y_CBCR_H2V2_P010_UBWC */ SDE_PIX_FMT_Y_CBCR_H2V2_P010_TILE, SDE_PIX_FMT_Y_CBCR_H2V2_TILE, SDE_PIX_FMT_Y_CRCB_H2V2_TILE, SDE_PIX_FMT_XRGB_8888_TILE, SDE_PIX_FMT_ARGB_8888_TILE, SDE_PIX_FMT_ABGR_8888_TILE, SDE_PIX_FMT_XBGR_8888_TILE, SDE_PIX_FMT_RGBA_8888_TILE, SDE_PIX_FMT_BGRA_8888_TILE, SDE_PIX_FMT_RGBX_8888_TILE, SDE_PIX_FMT_BGRX_8888_TILE, SDE_PIX_FMT_RGBA_1010102_TILE, SDE_PIX_FMT_RGBX_1010102_TILE, SDE_PIX_FMT_ARGB_2101010_TILE, SDE_PIX_FMT_XRGB_2101010_TILE, SDE_PIX_FMT_BGRA_1010102_TILE, SDE_PIX_FMT_BGRX_1010102_TILE, SDE_PIX_FMT_ABGR_2101010_TILE, SDE_PIX_FMT_XBGR_2101010_TILE, }; static const u32 sde_hw_rotator_v4_inpixfmts_sbuf[] = { SDE_PIX_FMT_Y_CBCR_H2V2_P010, SDE_PIX_FMT_Y_CBCR_H2V2, Loading Loading @@ -3507,13 +3669,13 @@ static int sde_rotator_hw_rev_init(struct sde_hw_rotator *rot) set_bit(SDE_CAPS_PARTIALWR, mdata->sde_caps_map); set_bit(SDE_CAPS_HW_TIMESTAMP, mdata->sde_caps_map); rot->inpixfmts[SDE_ROTATOR_MODE_OFFLINE] = sde_hw_rotator_v4_inpixfmts; sde_hw_rotator_v5_inpixfmts; rot->num_inpixfmt[SDE_ROTATOR_MODE_OFFLINE] = ARRAY_SIZE(sde_hw_rotator_v4_inpixfmts); ARRAY_SIZE(sde_hw_rotator_v5_inpixfmts); rot->outpixfmts[SDE_ROTATOR_MODE_OFFLINE] = sde_hw_rotator_v4_outpixfmts; sde_hw_rotator_v5_outpixfmts; rot->num_outpixfmt[SDE_ROTATOR_MODE_OFFLINE] = ARRAY_SIZE(sde_hw_rotator_v4_outpixfmts); ARRAY_SIZE(sde_hw_rotator_v5_outpixfmts); rot->downscale_caps = "LINEAR/1.5/2/4/8/16/32/64 TILE/1.5/2/4 TP10/1.5/2"; } else { Loading