On Wed, Jan 25, 2023 at 2:15 AM Marek Vasut <marex@xxxxxxx> wrote: > > On 1/23/23 16:12, Jagan Teki wrote: > > [...] > > > +static bool exynos_dsi_pixel_output_fmt_supported(u32 fmt) > > +{ > > + int i; > > if (fmt == MEDIA_BUS_FMT_FIXED) > return false; > > > + for (i = 0; i < ARRAY_SIZE(exynos_dsi_pixel_output_fmts); i++) { > > + if (exynos_dsi_pixel_output_fmts[i] == fmt) > > + return true; > > + } > > + > > + return false; > > +} > > + > > +static u32 * > > +exynos_dsi_atomic_get_input_bus_fmts(struct drm_bridge *bridge, > > + struct drm_bridge_state *bridge_state, > > + struct drm_crtc_state *crtc_state, > > + struct drm_connector_state *conn_state, > > + u32 output_fmt, > > + unsigned int *num_input_fmts) > > +{ > > + u32 *input_fmts; > > + > > + if (!exynos_dsi_pixel_output_fmt_supported(output_fmt)) > > + /* > > + * Some bridge/display drivers are still not able to pass the > > + * correct format, so handle those pipelines by falling back > > + * to the default format till the supported formats finalized. > > + */ > > + output_fmt = MEDIA_BUS_FMT_RGB888_1X24; > > You can move this ^ past the kmalloc() call, so in unlikely case the > kmalloc() fails, it would fail first. I didn't get this point, what do we need to do if exynos_dsi_pixel_output_fmt_supported returns false? Jagan.