Re: [PATCH v2 4/5] drm/solomon: Move device info from ssd130x-i2c to the core driver

From: kernel test robot
Date: Tue Apr 12 2022 - 04:59:04 EST


Hi Javier,

I love your patch! Perhaps something to improve:

[auto build test WARNING on drm-tip/drm-tip]
[also build test WARNING on next-20220411]
[cannot apply to drm/drm-next drm-exynos/exynos-drm-next drm-intel/for-linux-next tegra-drm/drm/tegra/for-next linus/master linux/master v5.18-rc2]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/intel-lab-lkp/linux/commits/Javier-Martinez-Canillas/drm-solomon-Add-SSD130x-OLED-displays-SPI-support/20220412-051518
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: x86_64-randconfig-a001-20220411 (https://download.01.org/0day-ci/archive/20220412/202204121542.aU2BiYXN-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project fe2478d44e4f7f191c43fef629ac7a23d0251e72)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/ac5a07cda8a0f8d4948e6a01d0b3bb6ce9fe7830
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Javier-Martinez-Canillas/drm-solomon-Add-SSD130x-OLED-displays-SPI-support/20220412-051518
git checkout ac5a07cda8a0f8d4948e6a01d0b3bb6ce9fe7830
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/gpu/drm/solomon/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/solomon/ssd130x.c:894:12: warning: cast to smaller integer type 'enum ssd130x_variants' from 'const void *' [-Wvoid-pointer-to-enum-cast]
variant = (enum ssd130x_variants)device_get_match_data(dev);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.


vim +894 drivers/gpu/drm/solomon/ssd130x.c

874
875 struct ssd130x_device *ssd130x_probe(struct device *dev, struct regmap *regmap)
876 {
877 struct ssd130x_device *ssd130x;
878 enum ssd130x_variants variant;
879 struct backlight_device *bl;
880 struct drm_device *drm;
881 int ret;
882
883 ssd130x = devm_drm_dev_alloc(dev, &ssd130x_drm_driver,
884 struct ssd130x_device, drm);
885 if (IS_ERR(ssd130x))
886 return ERR_PTR(dev_err_probe(dev, PTR_ERR(ssd130x),
887 "Failed to allocate DRM device\n"));
888
889 drm = &ssd130x->drm;
890
891 ssd130x->dev = dev;
892 ssd130x->regmap = regmap;
893
> 894 variant = (enum ssd130x_variants)device_get_match_data(dev);
895
896 if (variant >= NR_SSD130X_VARIANTS)
897 return ERR_PTR(dev_err_probe(dev, -EINVAL,
898 "Invalid SSD130x variant\n"));
899
900 ssd130x->device_info = &ssd130x_variants[variant];
901
902 if (ssd130x->device_info->page_mode_only)
903 ssd130x->page_address_mode = 1;
904
905 ssd130x_parse_properties(ssd130x);
906
907 ret = ssd130x_get_resources(ssd130x);
908 if (ret)
909 return ERR_PTR(ret);
910
911 bl = devm_backlight_device_register(dev, dev_name(dev), dev, ssd130x,
912 &ssd130xfb_bl_ops, NULL);
913 if (IS_ERR(bl))
914 return ERR_PTR(dev_err_probe(dev, PTR_ERR(bl),
915 "Unable to register backlight device\n"));
916
917 bl->props.brightness = ssd130x->contrast;
918 bl->props.max_brightness = MAX_CONTRAST;
919 ssd130x->bl_dev = bl;
920
921 ret = ssd130x_init_modeset(ssd130x);
922 if (ret)
923 return ERR_PTR(ret);
924
925 ret = drm_dev_register(drm, 0);
926 if (ret)
927 return ERR_PTR(dev_err_probe(dev, ret, "DRM device register failed\n"));
928
929 drm_fbdev_generic_setup(drm, 0);
930
931 return ssd130x;
932 }
933 EXPORT_SYMBOL_GPL(ssd130x_probe);
934

--
0-DAY CI Kernel Test Service
https://01.org/lkp