Skip to content

Commit c64cad8

Browse files
AngeloGioacchino Del RegnoChun-Kuang Hu
authored andcommitted
drm/mediatek: mtk_dpi: Add local helpers for bus format parameters
In preparation for adding support for additional color formats, add local helpers to map media bus format parameters to this driver's bit_num, channel_swap and color_format. This commit brings no functional changes. Signed-off-by: AngeloGioacchino Del Regno <[email protected]> Reviewed-by: CK Hu <[email protected]> Link: https://patchwork.kernel.org/project/dri-devel/patch/[email protected]/ Signed-off-by: Chun-Kuang Hu <[email protected]>
1 parent 618dfbe commit c64cad8

File tree

1 file changed

+40
-6
lines changed

1 file changed

+40
-6
lines changed

drivers/gpu/drm/mediatek/mtk_dpi.c

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -738,6 +738,43 @@ static u32 *mtk_dpi_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
738738
return input_fmts;
739739
}
740740

741+
static unsigned int mtk_dpi_bus_fmt_bit_num(unsigned int out_bus_format)
742+
{
743+
switch (out_bus_format) {
744+
default:
745+
case MEDIA_BUS_FMT_RGB888_1X24:
746+
case MEDIA_BUS_FMT_RGB888_2X12_LE:
747+
case MEDIA_BUS_FMT_RGB888_2X12_BE:
748+
case MEDIA_BUS_FMT_YUYV8_1X16:
749+
return MTK_DPI_OUT_BIT_NUM_8BITS;
750+
}
751+
}
752+
753+
static unsigned int mtk_dpi_bus_fmt_channel_swap(unsigned int out_bus_format)
754+
{
755+
switch (out_bus_format) {
756+
default:
757+
case MEDIA_BUS_FMT_RGB888_1X24:
758+
case MEDIA_BUS_FMT_RGB888_2X12_LE:
759+
case MEDIA_BUS_FMT_RGB888_2X12_BE:
760+
case MEDIA_BUS_FMT_YUYV8_1X16:
761+
return MTK_DPI_OUT_CHANNEL_SWAP_RGB;
762+
}
763+
}
764+
765+
static unsigned int mtk_dpi_bus_fmt_color_format(unsigned int out_bus_format)
766+
{
767+
switch (out_bus_format) {
768+
default:
769+
case MEDIA_BUS_FMT_RGB888_1X24:
770+
case MEDIA_BUS_FMT_RGB888_2X12_LE:
771+
case MEDIA_BUS_FMT_RGB888_2X12_BE:
772+
return MTK_DPI_COLOR_FORMAT_RGB;
773+
case MEDIA_BUS_FMT_YUYV8_1X16:
774+
return MTK_DPI_COLOR_FORMAT_YCBCR_422;
775+
}
776+
}
777+
741778
static int mtk_dpi_bridge_atomic_check(struct drm_bridge *bridge,
742779
struct drm_bridge_state *bridge_state,
743780
struct drm_crtc_state *crtc_state,
@@ -757,13 +794,10 @@ static int mtk_dpi_bridge_atomic_check(struct drm_bridge *bridge,
757794
bridge_state->output_bus_cfg.format);
758795

759796
dpi->output_fmt = out_bus_format;
760-
dpi->bit_num = MTK_DPI_OUT_BIT_NUM_8BITS;
761-
dpi->channel_swap = MTK_DPI_OUT_CHANNEL_SWAP_RGB;
797+
dpi->bit_num = mtk_dpi_bus_fmt_bit_num(out_bus_format);
798+
dpi->channel_swap = mtk_dpi_bus_fmt_channel_swap(out_bus_format);
762799
dpi->yc_map = MTK_DPI_OUT_YC_MAP_RGB;
763-
if (out_bus_format == MEDIA_BUS_FMT_YUYV8_1X16)
764-
dpi->color_format = MTK_DPI_COLOR_FORMAT_YCBCR_422;
765-
else
766-
dpi->color_format = MTK_DPI_COLOR_FORMAT_RGB;
800+
dpi->color_format = mtk_dpi_bus_fmt_color_format(out_bus_format);
767801

768802
return 0;
769803
}

0 commit comments

Comments
 (0)