Hi Rodrigo,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on next-20200512]
[cannot apply to robh/for-next linus/master linux/master v5.7-rc5 v5.7-rc4 
v5.7-rc3 v5.7-rc5]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    
https://github.com/0day-ci/linux/commits/Rodrigo-Rolim-Mendes-de-Alencar/video-fbdev-ssd1307fb-Added-support-to-Column-offset/20200514-010137
base:    e098d7762d602be640c53565ceca342f81e55ad2
config: parisc-randconfig-r022-20200513 (attached as .config)
compiler: hppa-linux-gcc (GCC) 9.3.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross 
ARCH=parisc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <l...@intel.com>

All errors (new ones prefixed by >>):

drivers/video/fbdev/ssd1307fb.c: In function 'ssd1307fb_probe':
>> drivers/video/fbdev/ssd1307fb.c:630:31: error: 'node' undeclared (first use 
>> in this function); did you mean 'inode'?
630 |  if (device_property_read_u32(node, "solomon,col-offset", 
&par->col_offset))
|                               ^~~~
|                               inode
drivers/video/fbdev/ssd1307fb.c:630:31: note: each undeclared identifier is 
reported only once for each function it appears in

vim +630 drivers/video/fbdev/ssd1307fb.c

   579  
   580  static int ssd1307fb_probe(struct i2c_client *client)
   581  {
   582          struct device *dev = &client->dev;
   583          struct backlight_device *bl;
   584          char bl_name[12];
   585          struct fb_info *info;
   586          struct fb_deferred_io *ssd1307fb_defio;
   587          u32 vmem_size;
   588          struct ssd1307fb_par *par;
   589          void *vmem;
   590          int ret;
   591  
   592          info = framebuffer_alloc(sizeof(struct ssd1307fb_par), dev);
   593          if (!info)
   594                  return -ENOMEM;
   595  
   596          par = info->par;
   597          par->info = info;
   598          par->client = client;
   599  
   600          par->device_info = device_get_match_data(dev);
   601  
   602          par->reset = devm_gpiod_get_optional(dev, "reset", 
GPIOD_OUT_LOW);
   603          if (IS_ERR(par->reset)) {
   604                  dev_err(dev, "failed to get reset gpio: %ld\n",
   605                          PTR_ERR(par->reset));
   606                  ret = PTR_ERR(par->reset);
   607                  goto fb_alloc_error;
   608          }
   609  
   610          par->vbat_reg = devm_regulator_get_optional(dev, "vbat");
   611          if (IS_ERR(par->vbat_reg)) {
   612                  ret = PTR_ERR(par->vbat_reg);
   613                  if (ret == -ENODEV) {
   614                          par->vbat_reg = NULL;
   615                  } else {
   616                          dev_err(dev, "failed to get VBAT regulator: 
%d\n", ret);
   617                          goto fb_alloc_error;
   618                  }
   619          }
   620  
   621          if (device_property_read_u32(dev, "solomon,width", &par->width))
   622                  par->width = 96;
   623  
   624          if (device_property_read_u32(dev, "solomon,height", 
&par->height))
   625                  par->height = 16;
   626  
   627          if (device_property_read_u32(dev, "solomon,page-offset", 
&par->page_offset))
   628                  par->page_offset = 1;
   629  
 > 630          if (device_property_read_u32(node, "solomon,col-offset", 
 > &par->col_offset))
   631                  par->col_offset = 0;
   632  
   633          if (device_property_read_u32(dev, "solomon,com-offset", 
&par->com_offset))
   634                  par->com_offset = 0;
   635  
   636          if (device_property_read_u32(dev, "solomon,prechargep1", 
&par->prechargep1))
   637                  par->prechargep1 = 2;
   638  
   639          if (device_property_read_u32(dev, "solomon,prechargep2", 
&par->prechargep2))
   640                  par->prechargep2 = 2;
   641  
   642          if (!device_property_read_u8_array(dev, "solomon,lookup-table",
   643                                             par->lookup_table,
   644                                             
ARRAY_SIZE(par->lookup_table)))
   645                  par->lookup_table_set = 1;
   646  
   647          par->seg_remap = !device_property_read_bool(dev, 
"solomon,segment-no-remap");
   648          par->com_seq = device_property_read_bool(dev, 
"solomon,com-seq");
   649          par->com_lrremap = device_property_read_bool(dev, 
"solomon,com-lrremap");
   650          par->com_invdir = device_property_read_bool(dev, 
"solomon,com-invdir");
   651          par->area_color_enable =
   652                  device_property_read_bool(dev, 
"solomon,area-color-enable");
   653          par->low_power = device_property_read_bool(dev, 
"solomon,low-power");
   654  
   655          par->contrast = 127;
   656          par->vcomh = par->device_info->default_vcomh;
   657  
   658          /* Setup display timing */
   659          if (device_property_read_u32(dev, "solomon,dclk-div", 
&par->dclk_div))
   660                  par->dclk_div = par->device_info->default_dclk_div;
   661          if (device_property_read_u32(dev, "solomon,dclk-frq", 
&par->dclk_frq))
   662                  par->dclk_frq = par->device_info->default_dclk_frq;
   663  
   664          vmem_size = DIV_ROUND_UP(par->width, 8) * par->height;
   665  
   666          vmem = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO,
   667                                          get_order(vmem_size));
   668          if (!vmem) {
   669                  dev_err(dev, "Couldn't allocate graphical memory.\n");
   670                  ret = -ENOMEM;
   671                  goto fb_alloc_error;
   672          }
   673  
   674          ssd1307fb_defio = devm_kzalloc(dev, sizeof(*ssd1307fb_defio),
   675                                         GFP_KERNEL);
   676          if (!ssd1307fb_defio) {
   677                  dev_err(dev, "Couldn't allocate deferred io.\n");
   678                  ret = -ENOMEM;
   679                  goto fb_alloc_error;
   680          }
   681  
   682          ssd1307fb_defio->delay = HZ / refreshrate;
   683          ssd1307fb_defio->deferred_io = ssd1307fb_deferred_io;
   684  
   685          info->fbops = &ssd1307fb_ops;
   686          info->fix = ssd1307fb_fix;
   687          info->fix.line_length = DIV_ROUND_UP(par->width, 8);
   688          info->fbdefio = ssd1307fb_defio;
   689  
   690          info->var = ssd1307fb_var;
   691          info->var.xres = par->width;
   692          info->var.xres_virtual = par->width;
   693          info->var.yres = par->height;
   694          info->var.yres_virtual = par->height;
   695  
   696          info->screen_buffer = vmem;
   697          info->fix.smem_start = __pa(vmem);
   698          info->fix.smem_len = vmem_size;
   699  
   700          fb_deferred_io_init(info);
   701  
   702          i2c_set_clientdata(client, info);
   703  
   704          if (par->reset) {
   705                  /* Reset the screen */
   706                  gpiod_set_value_cansleep(par->reset, 1);
   707                  udelay(4);
   708                  gpiod_set_value_cansleep(par->reset, 0);
   709                  udelay(4);
   710          }
   711  
   712          if (par->vbat_reg) {
   713                  ret = regulator_enable(par->vbat_reg);
   714                  if (ret) {
   715                          dev_err(dev, "failed to enable VBAT: %d\n", 
ret);
   716                          goto reset_oled_error;
   717                  }
   718          }
   719  
   720          ret = ssd1307fb_init(par);
   721          if (ret)
   722                  goto regulator_enable_error;
   723  
   724          ret = register_framebuffer(info);
   725          if (ret) {
   726                  dev_err(dev, "Couldn't register the framebuffer\n");
   727                  goto panel_init_error;
   728          }
   729  
   730          snprintf(bl_name, sizeof(bl_name), "ssd1307fb%d", info->node);
   731          bl = backlight_device_register(bl_name, dev, par, 
&ssd1307fb_bl_ops,
   732                                         NULL);
   733          if (IS_ERR(bl)) {
   734                  ret = PTR_ERR(bl);
   735                  dev_err(dev, "unable to register backlight device: 
%d\n", ret);
   736                  goto bl_init_error;
   737          }
   738  
   739          bl->props.brightness = par->contrast;
   740          bl->props.max_brightness = MAX_CONTRAST;
   741          info->bl_dev = bl;
   742  
   743          dev_info(dev, "fb%d: %s framebuffer device registered, using %d 
bytes of video memory\n", info->node, info->fix.id, vmem_size);
   744  
   745          return 0;
   746  
   747  bl_init_error:
   748          unregister_framebuffer(info);
   749  panel_init_error:
   750          if (par->device_info->need_pwm) {
   751                  pwm_disable(par->pwm);
   752                  pwm_put(par->pwm);
   753          }
   754  regulator_enable_error:
   755          if (par->vbat_reg)
   756                  regulator_disable(par->vbat_reg);
   757  reset_oled_error:
   758          fb_deferred_io_cleanup(info);
   759  fb_alloc_error:
   760          framebuffer_release(info);
   761          return ret;
   762  }
   763  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to