On Thu, Jul 15, 2021 at 09:58:07AM +0800, lichenyang wrote: > +int loongson_crtc_init(struct loongson_device *ldev, int index) > +{ > + struct loongson_crtc *lcrtc; > + u32 ret; This should be "int ret;" > + > + lcrtc = kzalloc(sizeof(struct loongson_crtc), GFP_KERNEL); > + if (lcrtc == NULL) > + return -1; > + > + lcrtc->ldev = ldev; > + lcrtc->reg_offset = index * REG_OFFSET; > + lcrtc->cfg_reg = CFG_RESET; > + lcrtc->crtc_id = index; > + > + ret = loongson_plane_init(lcrtc); > + if (ret) > + return ret; > + > + ret = drm_crtc_init_with_planes(ldev->dev, &lcrtc->base, lcrtc->plane, > + NULL, &loongson_crtc_funcs, NULL); > + if (ret) { > + DRM_ERROR("failed to init crtc %d\n", index); > + drm_plane_cleanup(lcrtc->plane); > + return ret; > + } > + > + drm_crtc_helper_add(&lcrtc->base, &loongson_crtc_helper_funcs); > + > + ldev->mode_info[index].crtc = lcrtc; > + > + return 0; > +} [ snip ] > +int loongson_modeset_init(struct loongson_device *ldev) > +{ > + struct drm_encoder *encoder; > + struct drm_connector *connector; > + int i; > + u32 ret; Same. > + > + ldev->dev->mode_config.allow_fb_modifiers = true; regards, dan carpenter