[ Sorry for the resend.  I forgot to set the From header to me.  -dan ]

tree:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
head:   f61714cd5bd3610794c1eb76fc96a7041b76a3a4
commit: d02340436695cbf6920ae1aaaed8afdc8635468d drm/mxsfb: Update mxsfb to 
support a bridge

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>
Reported-by: Dan Carpenter <dan.carpen...@oracle.com>

smatch warnings:
drivers/gpu/drm/mxsfb/mxsfb_drv.c:304 mxsfb_load() error: we previously assumed 
'mxsfb->panel' could be null (see line 262)

git remote add drm-drm-misc git://anongit.freedesktop.org/drm/drm-misc
git remote update drm-drm-misc
git checkout d02340436695cbf6920ae1aaaed8afdc8635468d
vim +304 drivers/gpu/drm/mxsfb/mxsfb_drv.c

45d59d704080cc Marek Vasut     2016-08-18  194  static int mxsfb_load(struct 
drm_device *drm, unsigned long flags)
45d59d704080cc Marek Vasut     2016-08-18  195  {
45d59d704080cc Marek Vasut     2016-08-18  196          struct platform_device 
*pdev = to_platform_device(drm->dev);
45d59d704080cc Marek Vasut     2016-08-18  197          struct 
mxsfb_drm_private *mxsfb;
45d59d704080cc Marek Vasut     2016-08-18  198          struct resource *res;
45d59d704080cc Marek Vasut     2016-08-18  199          int ret;
45d59d704080cc Marek Vasut     2016-08-18  200  
45d59d704080cc Marek Vasut     2016-08-18  201          mxsfb = 
devm_kzalloc(&pdev->dev, sizeof(*mxsfb), GFP_KERNEL);
45d59d704080cc Marek Vasut     2016-08-18  202          if (!mxsfb)
45d59d704080cc Marek Vasut     2016-08-18  203                  return -ENOMEM;
45d59d704080cc Marek Vasut     2016-08-18  204  
45d59d704080cc Marek Vasut     2016-08-18  205          drm->dev_private = 
mxsfb;
45d59d704080cc Marek Vasut     2016-08-18  206          mxsfb->devdata = 
&mxsfb_devdata[pdev->id_entry->driver_data];
45d59d704080cc Marek Vasut     2016-08-18  207  
45d59d704080cc Marek Vasut     2016-08-18  208          res = 
platform_get_resource(pdev, IORESOURCE_MEM, 0);
45d59d704080cc Marek Vasut     2016-08-18  209          mxsfb->base = 
devm_ioremap_resource(drm->dev, res);
45d59d704080cc Marek Vasut     2016-08-18  210          if (IS_ERR(mxsfb->base))
45d59d704080cc Marek Vasut     2016-08-18  211                  return 
PTR_ERR(mxsfb->base);
45d59d704080cc Marek Vasut     2016-08-18  212  
45d59d704080cc Marek Vasut     2016-08-18  213          mxsfb->clk = 
devm_clk_get(drm->dev, NULL);
45d59d704080cc Marek Vasut     2016-08-18  214          if (IS_ERR(mxsfb->clk))
45d59d704080cc Marek Vasut     2016-08-18  215                  return 
PTR_ERR(mxsfb->clk);
45d59d704080cc Marek Vasut     2016-08-18  216  
45d59d704080cc Marek Vasut     2016-08-18  217          mxsfb->clk_axi = 
devm_clk_get(drm->dev, "axi");
45d59d704080cc Marek Vasut     2016-08-18  218          if 
(IS_ERR(mxsfb->clk_axi))
45d59d704080cc Marek Vasut     2016-08-18  219                  mxsfb->clk_axi 
= NULL;
45d59d704080cc Marek Vasut     2016-08-18  220  
45d59d704080cc Marek Vasut     2016-08-18  221          mxsfb->clk_disp_axi = 
devm_clk_get(drm->dev, "disp_axi");
45d59d704080cc Marek Vasut     2016-08-18  222          if 
(IS_ERR(mxsfb->clk_disp_axi))
45d59d704080cc Marek Vasut     2016-08-18  223                  
mxsfb->clk_disp_axi = NULL;
45d59d704080cc Marek Vasut     2016-08-18  224  
45d59d704080cc Marek Vasut     2016-08-18  225          ret = 
dma_set_mask_and_coherent(drm->dev, DMA_BIT_MASK(32));
45d59d704080cc Marek Vasut     2016-08-18  226          if (ret)
45d59d704080cc Marek Vasut     2016-08-18  227                  return ret;
45d59d704080cc Marek Vasut     2016-08-18  228  
45d59d704080cc Marek Vasut     2016-08-18  229          
pm_runtime_enable(drm->dev);
45d59d704080cc Marek Vasut     2016-08-18  230  
45d59d704080cc Marek Vasut     2016-08-18  231          ret = 
drm_vblank_init(drm, drm->mode_config.num_crtc);
45d59d704080cc Marek Vasut     2016-08-18  232          if (ret < 0) {
45d59d704080cc Marek Vasut     2016-08-18  233                  
dev_err(drm->dev, "Failed to initialise vblank\n");
45d59d704080cc Marek Vasut     2016-08-18  234                  goto err_vblank;
45d59d704080cc Marek Vasut     2016-08-18  235          }
45d59d704080cc Marek Vasut     2016-08-18  236  
45d59d704080cc Marek Vasut     2016-08-18  237          /* Modeset init */
45d59d704080cc Marek Vasut     2016-08-18  238          
drm_mode_config_init(drm);
45d59d704080cc Marek Vasut     2016-08-18  239  
45d59d704080cc Marek Vasut     2016-08-18  240          ret = 
mxsfb_create_output(drm);
45d59d704080cc Marek Vasut     2016-08-18  241          if (ret < 0) {
45d59d704080cc Marek Vasut     2016-08-18  242                  
dev_err(drm->dev, "Failed to create outputs\n");
45d59d704080cc Marek Vasut     2016-08-18  243                  goto err_vblank;
45d59d704080cc Marek Vasut     2016-08-18  244          }
45d59d704080cc Marek Vasut     2016-08-18  245  
45d59d704080cc Marek Vasut     2016-08-18  246          ret = 
drm_simple_display_pipe_init(drm, &mxsfb->pipe, &mxsfb_funcs,
e6fc3b68558e4c Ben Widawsky    2017-07-23  247                          
mxsfb_formats, ARRAY_SIZE(mxsfb_formats), NULL,
d02340436695cb Robert Chiras   2019-08-29  248                          
mxsfb->connector);
45d59d704080cc Marek Vasut     2016-08-18  249          if (ret < 0) {
45d59d704080cc Marek Vasut     2016-08-18  250                  
dev_err(drm->dev, "Cannot setup simple display pipe\n");
45d59d704080cc Marek Vasut     2016-08-18  251                  goto err_vblank;
45d59d704080cc Marek Vasut     2016-08-18  252          }
45d59d704080cc Marek Vasut     2016-08-18  253  
d02340436695cb Robert Chiras   2019-08-29  254          /*
d02340436695cb Robert Chiras   2019-08-29  255           * Attach panel only if 
there is one.
d02340436695cb Robert Chiras   2019-08-29  256           * If there is no panel 
attach, it must be a bridge. In this case, we
d02340436695cb Robert Chiras   2019-08-29  257           * need a reference to 
its connector for a proper initialization.
d02340436695cb Robert Chiras   2019-08-29  258           * We will do this 
check in pipe->enable(), since the connector won't
d02340436695cb Robert Chiras   2019-08-29  259           * be attached to an 
encoder until then.
d02340436695cb Robert Chiras   2019-08-29  260           */
d02340436695cb Robert Chiras   2019-08-29  261  
d02340436695cb Robert Chiras   2019-08-29 @262          if (mxsfb->panel) {
                                                            ^^^^^^^^^^^^

d02340436695cb Robert Chiras   2019-08-29  263                  ret = 
drm_panel_attach(mxsfb->panel, mxsfb->connector);
d02340436695cb Robert Chiras   2019-08-29  264                  if (ret) {
d02340436695cb Robert Chiras   2019-08-29  265                          
dev_err(drm->dev, "Cannot connect panel: %d\n", ret);
d02340436695cb Robert Chiras   2019-08-29  266                          goto 
err_vblank;
d02340436695cb Robert Chiras   2019-08-29  267                  }
d02340436695cb Robert Chiras   2019-08-29  268          } else if 
(mxsfb->bridge) {
d02340436695cb Robert Chiras   2019-08-29  269                  ret = 
drm_simple_display_pipe_attach_bridge(&mxsfb->pipe,
d02340436695cb Robert Chiras   2019-08-29  270                                  
                            mxsfb->bridge);
45d59d704080cc Marek Vasut     2016-08-18  271                  if (ret) {
d02340436695cb Robert Chiras   2019-08-29  272                          
dev_err(drm->dev, "Cannot connect bridge: %d\n", ret);
45d59d704080cc Marek Vasut     2016-08-18  273                          goto 
err_vblank;
45d59d704080cc Marek Vasut     2016-08-18  274                  }
d02340436695cb Robert Chiras   2019-08-29  275          }
45d59d704080cc Marek Vasut     2016-08-18  276  
45d59d704080cc Marek Vasut     2016-08-18  277          
drm->mode_config.min_width      = MXSFB_MIN_XRES;
45d59d704080cc Marek Vasut     2016-08-18  278          
drm->mode_config.min_height     = MXSFB_MIN_YRES;
45d59d704080cc Marek Vasut     2016-08-18  279          
drm->mode_config.max_width      = MXSFB_MAX_XRES;
45d59d704080cc Marek Vasut     2016-08-18  280          
drm->mode_config.max_height     = MXSFB_MAX_YRES;
45d59d704080cc Marek Vasut     2016-08-18  281          drm->mode_config.funcs  
        = &mxsfb_mode_config_funcs;
9f19fd3bd894d6 Leonard Crestez 2018-09-17  282          
drm->mode_config.helper_private = &mxsfb_mode_config_helpers;
45d59d704080cc Marek Vasut     2016-08-18  283  
45d59d704080cc Marek Vasut     2016-08-18  284          
drm_mode_config_reset(drm);
45d59d704080cc Marek Vasut     2016-08-18  285  
45d59d704080cc Marek Vasut     2016-08-18  286          
pm_runtime_get_sync(drm->dev);
45d59d704080cc Marek Vasut     2016-08-18  287          ret = 
drm_irq_install(drm, platform_get_irq(pdev, 0));
45d59d704080cc Marek Vasut     2016-08-18  288          
pm_runtime_put_sync(drm->dev);
45d59d704080cc Marek Vasut     2016-08-18  289  
45d59d704080cc Marek Vasut     2016-08-18  290          if (ret < 0) {
45d59d704080cc Marek Vasut     2016-08-18  291                  
dev_err(drm->dev, "Failed to install IRQ handler\n");
45d59d704080cc Marek Vasut     2016-08-18  292                  goto err_irq;
45d59d704080cc Marek Vasut     2016-08-18  293          }
45d59d704080cc Marek Vasut     2016-08-18  294  
45d59d704080cc Marek Vasut     2016-08-18  295          
drm_kms_helper_poll_init(drm);
45d59d704080cc Marek Vasut     2016-08-18  296  
45d59d704080cc Marek Vasut     2016-08-18  297          
platform_set_drvdata(pdev, drm);
45d59d704080cc Marek Vasut     2016-08-18  298  
45d59d704080cc Marek Vasut     2016-08-18  299          
drm_helper_hpd_irq_event(drm);
45d59d704080cc Marek Vasut     2016-08-18  300  
45d59d704080cc Marek Vasut     2016-08-18  301          return 0;
45d59d704080cc Marek Vasut     2016-08-18  302  
45d59d704080cc Marek Vasut     2016-08-18  303  err_irq:
45d59d704080cc Marek Vasut     2016-08-18 @304          
drm_panel_detach(mxsfb->panel);
                                                        
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Needs to be checked here as well.

45d59d704080cc Marek Vasut     2016-08-18  305  err_vblank:
45d59d704080cc Marek Vasut     2016-08-18  306          
pm_runtime_disable(drm->dev);
45d59d704080cc Marek Vasut     2016-08-18  307  
45d59d704080cc Marek Vasut     2016-08-18  308          return ret;
45d59d704080cc Marek Vasut     2016-08-18  309  }

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to