On Thu, Feb 1, 2018 at 2:19 PM, Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > [Me] >> + /* >> + * If we run into a situation where, for example, the primary plane >> + * supports RGBA5551 (16 bpp, depth 15) but not RGB565 (16 bpp, depth >> + * 16) we need to scale down the depth of the sizes we request. >> + */ >> + drm_for_each_plane(plane, fb_helper->dev) { >> + /* Only check the primary plane */ >> + if (plane->type != DRM_PLANE_TYPE_PRIMARY) >> + continue; > > I think this should look at crtc->primary for each of the crtcs managed > by the fb_helper. > > Also this probably shouldn't look at YUV formats at all? I guess I can look into doing it this way, sorry for not knowing how to properly inspect DRM objects, I'm lost sometimes... > I do wonder if instead we should just have the driver specify the > pixel format explicitly instead of trying to guess based on bpp? That makes a lot more sense to me actually. It would give a better sense of control so the driver feel it knows what is actually going on. So I would just update drm_fb_cma_fbdev_init() and drm_fb_helper_initial_config() to pass a reasonable pixel format instead and refactor all the way down? It does hit a lot of code on the way, but if everyone thinks this is a good idea I can very well take a stab at it. Yours, Linus Walleij _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel