CC: [email protected]
TO: Frank Wunderlich <[email protected]>

tree:   https://github.com/frank-w/BPI-R2-4.14 5.15-bpi-r2-pro
head:   88eea49adcf099eca9307fe394b40a0e2c8bde02
commit: 281cc69c12f5b49abc38fc6cd91964446b435691 [85/99] drm: forward port of 
VOP2 driver
:::::: branch date: 2 days ago
:::::: commit date: 8 days ago
config: x86_64-randconfig-m001-20211103 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:3989 vop_create_crtc() warn: 
missing error code 'ret'

vim +/ret +3989 drivers/gpu/drm/rockchip/rockchip_drm_vop.c

281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3889  
2048e3286f347db Mark Yao          2014-08-22  3890  static int 
vop_create_crtc(struct vop *vop)
2048e3286f347db Mark Yao          2014-08-22  3891  {
2048e3286f347db Mark Yao          2014-08-22  3892      struct device *dev = 
vop->dev;
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3893      const struct vop_data 
*vop_data = vop->data;
2048e3286f347db Mark Yao          2014-08-22  3894      struct drm_device 
*drm_dev = vop->drm_dev;
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3895      struct 
rockchip_drm_private *private = drm_dev->dev_private;
328b51c0f5a07f3 Douglas Anderson  2016-03-07  3896      struct drm_plane 
*primary = NULL, *cursor = NULL, *plane, *tmp;
2048e3286f347db Mark Yao          2014-08-22  3897      struct drm_crtc *crtc = 
&vop->crtc;
2048e3286f347db Mark Yao          2014-08-22  3898      struct device_node 
*port;
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3899      uint64_t feature = 0;
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3900      int ret = 0;
2048e3286f347db Mark Yao          2014-08-22  3901      int i;
2048e3286f347db Mark Yao          2014-08-22  3902  
2048e3286f347db Mark Yao          2014-08-22  3903      /*
2048e3286f347db Mark Yao          2014-08-22  3904       * Create drm_plane for 
primary and cursor planes first, since we need
2048e3286f347db Mark Yao          2014-08-22  3905       * to pass them to 
drm_crtc_init_with_planes, which sets the
2048e3286f347db Mark Yao          2014-08-22  3906       * "possible_crtcs" to 
the newly initialized crtc.
2048e3286f347db Mark Yao          2014-08-22  3907       */
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3908      for (i = 0; i < 
vop->num_wins; i++) {
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3909              struct vop_win 
*win = &vop->win[i];
2048e3286f347db Mark Yao          2014-08-22  3910  
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3911              if (win->type 
!= DRM_PLANE_TYPE_PRIMARY &&
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3912                  win->type 
!= DRM_PLANE_TYPE_CURSOR)
2048e3286f347db Mark Yao          2014-08-22  3913                      
continue;
2048e3286f347db Mark Yao          2014-08-22  3914  
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3915              if 
(vop_plane_init(vop, win, 0)) {
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3916                      
DRM_DEV_ERROR(vop->dev, "failed to init plane\n");
2048e3286f347db Mark Yao          2014-08-22  3917                      goto 
err_cleanup_planes;
2048e3286f347db Mark Yao          2014-08-22  3918              }
2048e3286f347db Mark Yao          2014-08-22  3919  
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3920              plane = 
&win->base;
2048e3286f347db Mark Yao          2014-08-22  3921              if (plane->type 
== DRM_PLANE_TYPE_PRIMARY)
2048e3286f347db Mark Yao          2014-08-22  3922                      primary 
= plane;
2048e3286f347db Mark Yao          2014-08-22  3923              else if 
(plane->type == DRM_PLANE_TYPE_CURSOR)
2048e3286f347db Mark Yao          2014-08-22  3924                      cursor 
= plane;
2048e3286f347db Mark Yao          2014-08-22  3925      }
2048e3286f347db Mark Yao          2014-08-22  3926  
2048e3286f347db Mark Yao          2014-08-22  3927      ret = 
drm_crtc_init_with_planes(drm_dev, crtc, primary, cursor,
f98828769c8838f Ville Syrjälä     2015-12-09  3928                              
        &vop_crtc_funcs, NULL);
2048e3286f347db Mark Yao          2014-08-22  3929      if (ret)
328b51c0f5a07f3 Douglas Anderson  2016-03-07  3930              goto 
err_cleanup_planes;
2048e3286f347db Mark Yao          2014-08-22  3931  
2048e3286f347db Mark Yao          2014-08-22  3932      
drm_crtc_helper_add(crtc, &vop_crtc_helper_funcs);
2048e3286f347db Mark Yao          2014-08-22  3933  
2048e3286f347db Mark Yao          2014-08-22  3934      /*
2048e3286f347db Mark Yao          2014-08-22  3935       * Create drm_planes 
for overlay windows with possible_crtcs restricted
2048e3286f347db Mark Yao          2014-08-22  3936       * to the newly created 
crtc.
2048e3286f347db Mark Yao          2014-08-22  3937       */
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3938      for (i = 0; i < 
vop->num_wins; i++) {
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3939              struct vop_win 
*win = &vop->win[i];
a3e77e1655961f4 Ville Syrjälä     2018-06-26  3940              unsigned long 
possible_crtcs = drm_crtc_mask(crtc);
2048e3286f347db Mark Yao          2014-08-22  3941  
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3942              if (win->type 
!= DRM_PLANE_TYPE_OVERLAY)
2048e3286f347db Mark Yao          2014-08-22  3943                      
continue;
2048e3286f347db Mark Yao          2014-08-22  3944  
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3945              if 
(vop_plane_init(vop, win, possible_crtcs)) {
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3946                      
DRM_DEV_ERROR(vop->dev, "failed to init overlay\n");
2048e3286f347db Mark Yao          2014-08-22  3947                      goto 
err_cleanup_crtc;
2048e3286f347db Mark Yao          2014-08-22  3948              }
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3949              
vop_plane_add_properties(vop, &win->base, win);
2048e3286f347db Mark Yao          2014-08-22  3950      }
2048e3286f347db Mark Yao          2014-08-22  3951  
2048e3286f347db Mark Yao          2014-08-22  3952      port = 
of_get_child_by_name(dev->of_node, "port");
2048e3286f347db Mark Yao          2014-08-22  3953      if (!port) {
4bf99144d2b407b Rob Herring       2017-07-18  3954              
DRM_DEV_ERROR(vop->dev, "no port node found in %pOF\n",
4bf99144d2b407b Rob Herring       2017-07-18  3955                            
dev->of_node);
328b51c0f5a07f3 Douglas Anderson  2016-03-07  3956              ret = -ENOENT;
2048e3286f347db Mark Yao          2014-08-22  3957              goto 
err_cleanup_crtc;
2048e3286f347db Mark Yao          2014-08-22  3958      }
2048e3286f347db Mark Yao          2014-08-22  3959  
47a7eb4597775ec Tomasz Figa       2016-09-14  3960      
drm_flip_work_init(&vop->fb_unref_work, "fb_unref",
47a7eb4597775ec Tomasz Figa       2016-09-14  3961                         
vop_fb_unref_worker);
47a7eb4597775ec Tomasz Figa       2016-09-14  3962  
1067219b27e29e9 Mark Yao          2015-02-04  3963      
init_completion(&vop->dsp_hold_completion);
69c34e41f5d4e8a Yakir Yang        2016-07-24  3964      
init_completion(&vop->line_flag_completion);
2048e3286f347db Mark Yao          2014-08-22  3965      crtc->port = port;
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3966      
rockchip_register_crtc_funcs(crtc, &private_crtc_funcs);
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3967  
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3968  #define 
VOP_ATTACH_MODE_CONFIG_PROP(prop, v) \
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3969      
drm_object_attach_property(&crtc->base, drm_dev->mode_config.prop, v)
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3970  
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3971      
VOP_ATTACH_MODE_CONFIG_PROP(tv_left_margin_property, 100);
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3972      
VOP_ATTACH_MODE_CONFIG_PROP(tv_right_margin_property, 100);
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3973      
VOP_ATTACH_MODE_CONFIG_PROP(tv_top_margin_property, 100);
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3974      
VOP_ATTACH_MODE_CONFIG_PROP(tv_bottom_margin_property, 100);
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3975  
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3976  #undef 
VOP_ATTACH_MODE_CONFIG_PROP
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3977      
drm_object_attach_property(&crtc->base, private->alpha_scale_prop, 0);
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3978      if (vop_data->feature & 
VOP_FEATURE_AFBDC)
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3979              feature |= 
BIT(ROCKCHIP_DRM_CRTC_FEATURE_AFBDC);
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3980      
drm_object_attach_property(&crtc->base, vop->feature_prop,
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3981                              
   feature);
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3982      if (vop->lut_regs) {
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3983              u16 *r_base, 
*g_base, *b_base;
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3984              u32 lut_len = 
vop->lut_len;
2048e3286f347db Mark Yao          2014-08-22  3985  
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3986              vop->lut = 
devm_kmalloc_array(dev, lut_len, sizeof(*vop->lut),
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3987                              
              GFP_KERNEL);
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3988              if (!vop->lut)
281cc69c12f5b49 Benjamin Gaignard 2021-05-17 @3989                      goto 
err_unregister_crtc_funcs;
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3990  
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3991              if 
(vop_of_init_display_lut(vop)) {
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3992                      for (i 
= 0; i < lut_len; i++) {
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3993                              
u32 r = i * lut_len * lut_len;
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3994                              
u32 g = i * lut_len;
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3995                              
u32 b = i;
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3996  
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3997                              
vop->lut[i] = r | g | b;
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3998                      }
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  3999              }
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  4000  
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  4001              
drm_mode_crtc_set_gamma_size(crtc, lut_len);
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  4002              
drm_crtc_enable_color_mgmt(crtc, 0, false, lut_len);
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  4003              r_base = 
crtc->gamma_store;
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  4004              g_base = r_base 
+ crtc->gamma_size;
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  4005              b_base = g_base 
+ crtc->gamma_size;
6c836d965bad5e1 Sean Paul         2019-06-11  4006  
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  4007              for (i = 0; i < 
lut_len; i++) {
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  4008                      
rockchip_vop_crtc_fb_gamma_get(crtc, &r_base[i],
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  4009                              
                       &g_base[i], &b_base[i],
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  4010                              
                       i);
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  4011              }
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  4012      }
2048e3286f347db Mark Yao          2014-08-22  4013      return 0;
2048e3286f347db Mark Yao          2014-08-22  4014  
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  4015  err_unregister_crtc_funcs:
281cc69c12f5b49 Benjamin Gaignard 2021-05-17  4016      
rockchip_unregister_crtc_funcs(crtc);
2048e3286f347db Mark Yao          2014-08-22  4017  err_cleanup_crtc:
2048e3286f347db Mark Yao          2014-08-22  4018      drm_crtc_cleanup(crtc);
2048e3286f347db Mark Yao          2014-08-22  4019  err_cleanup_planes:
328b51c0f5a07f3 Douglas Anderson  2016-03-07  4020      
list_for_each_entry_safe(plane, tmp, &drm_dev->mode_config.plane_list,
328b51c0f5a07f3 Douglas Anderson  2016-03-07  4021                              
 head)
2048e3286f347db Mark Yao          2014-08-22  4022              
drm_plane_cleanup(plane);
2048e3286f347db Mark Yao          2014-08-22  4023      return ret;
2048e3286f347db Mark Yao          2014-08-22  4024  }
2048e3286f347db Mark Yao          2014-08-22  4025  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to