static int lcdif_crtc_atomic_check(struct drm_crtc *crtc,
struct drm_crtc_state *state)
{
+ struct lcdif_crtc *lcdif_crtc = to_lcdif_crtc(crtc);
+ struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(state);
+
+ /* check the requested bus format can be
+ * supported by LCDIF CTRC or not
+ */
+ switch (imx_crtc_state->bus_format) {
+ case MEDIA_BUS_FMT_RGB565_1X16:
+ case MEDIA_BUS_FMT_RGB666_1X18:
+ case MEDIA_BUS_FMT_RGB888_1X24:
+ break;
+ default:
+ dev_err(lcdif_crtc->dev,
+ "unsupported bus format: %#x\n",
+ imx_crtc_state->bus_format);
+ return -EINVAL;
+ }
+
return 0;
}