On Wed, 11 Mar 2020 at 14:56, Andrzej Pietrasiewicz andrzej.p@collabora.com wrote:
Prepare for using generic afbc helpers.
Use an existing helper which allows allocating a struct drm_framebuffer in the driver.
afbc-specific checks should go after drm_gem_fb_init_with_funcs().
Signed-off-by: Andrzej Pietrasiewicz andrzej.p@collabora.com
drivers/gpu/drm/arm/malidp_drv.c | 50 +++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c index cafbd81e4c1e..b9715b19af94 100644 --- a/drivers/gpu/drm/arm/malidp_drv.c +++ b/drivers/gpu/drm/arm/malidp_drv.c @@ -269,13 +269,36 @@ static const struct drm_mode_config_helper_funcs malidp_mode_config_helpers = { .atomic_commit_tail = malidp_atomic_commit_tail, };
+static const struct drm_framebuffer_funcs malidp_fb_funcs = {
.destroy = drm_gem_fb_destroy,
.create_handle = drm_gem_fb_create_handle,
+};
static struct drm_framebuffer * malidp_fb_create(struct drm_device *dev, struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd) {
struct drm_afbc_framebuffer *afbc_fb;
const struct drm_format_info *info;
int ret, i;
info = drm_get_format_info(dev, mode_cmd);
if (!info)
return ERR_PTR(-ENOMEM);
The underlying implementation in drm_get_format_info() will throw a WARN_ON() if we return NULL. Returning ENOMEM here is misleading and EINVAL sounds better IMHO.
Regardless, of the above 1-5 are: Reviewed-by: Emil Velikov emil.velikov@collabora.com
I don't know much about Rockchip HW to review 6/6.
-Emil