1
0

drm/mipi-dsi: Add helper to find input format

Add a helper API that can be used by the DSI hosts to find the required
input bus format for the given output dsi pixel format.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Tested-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
Signed-off-by: Aradhya Bhatia <aradhya.bhatia@linux.dev>
Link: https://lore.kernel.org/r/20250329113925.68204-8-aradhya.bhatia@linux.dev
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
This commit is contained in:
Aradhya Bhatia
2025-03-29 17:09:18 +05:30
committed by Dmitry Baryshkov
parent 7ad8b3441b
commit e83967c355
2 changed files with 38 additions and 0 deletions

View File

@@ -36,6 +36,8 @@
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_print.h>
#include <linux/media-bus-format.h>
#include <video/mipi_display.h>
/**
@@ -870,6 +872,41 @@ ssize_t mipi_dsi_generic_read(struct mipi_dsi_device *dsi, const void *params,
}
EXPORT_SYMBOL(mipi_dsi_generic_read);
/**
* drm_mipi_dsi_get_input_bus_fmt() - Get the required MEDIA_BUS_FMT_* based
* input pixel format for a given DSI output
* pixel format
* @dsi_format: pixel format that a DSI host needs to output
*
* Various DSI hosts can use this function during their
* &drm_bridge_funcs.atomic_get_input_bus_fmts operation to ascertain
* the MEDIA_BUS_FMT_* pixel format required as input.
*
* RETURNS:
* a 32-bit MEDIA_BUS_FMT_* value on success or 0 in case of failure.
*/
u32 drm_mipi_dsi_get_input_bus_fmt(enum mipi_dsi_pixel_format dsi_format)
{
switch (dsi_format) {
case MIPI_DSI_FMT_RGB888:
return MEDIA_BUS_FMT_RGB888_1X24;
case MIPI_DSI_FMT_RGB666:
return MEDIA_BUS_FMT_RGB666_1X24_CPADHI;
case MIPI_DSI_FMT_RGB666_PACKED:
return MEDIA_BUS_FMT_RGB666_1X18;
case MIPI_DSI_FMT_RGB565:
return MEDIA_BUS_FMT_RGB565_1X16;
default:
/* Unsupported DSI Format */
return 0;
}
}
EXPORT_SYMBOL(drm_mipi_dsi_get_input_bus_fmt);
/**
* mipi_dsi_dcs_write_buffer() - transmit a DCS command with payload
* @dsi: DSI peripheral device

View File

@@ -293,6 +293,7 @@ void mipi_dsi_generic_write_multi(struct mipi_dsi_multi_context *ctx,
const void *payload, size_t size);
ssize_t mipi_dsi_generic_read(struct mipi_dsi_device *dsi, const void *params,
size_t num_params, void *data, size_t size);
u32 drm_mipi_dsi_get_input_bus_fmt(enum mipi_dsi_pixel_format dsi_format);
#define mipi_dsi_msleep(ctx, delay) \
do { \