CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: linux-ker...@vger.kernel.org
TO: Javier Martinez Canillas <javi...@redhat.com>
CC: Maxime Ripard <max...@cerno.tech>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   ae085d7f9365de7da27ab5c0d16b12d51ea7fca9
commit: a61732e808672cfa8c8c6028bcf9feacb953ef40 drm: Add driver for Solomon 
SSD130x OLED displays
date:   6 weeks ago
:::::: branch date: 12 hours ago
:::::: commit date: 6 weeks ago
config: i386-randconfig-s001-20220328 
(https://download.01.org/0day-ci/archive/20220328/202203282108.toszhcdp-...@intel.com/config)
compiler: gcc-9 (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a61732e808672cfa8c8c6028bcf9feacb953ef40
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout a61732e808672cfa8c8c6028bcf9feacb953ef40
        # save the config file to linux build tree
        mkdir build_dir
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir 
ARCH=i386 SHELL=/bin/bash drivers/acpi/apei/ drivers/gpu/drm/solomon/

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


sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/solomon/ssd130x.c:301:21: sparse: sparse: dubious: x & !y

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

a61732e808672cf Javier Martinez Canillas 2022-02-14  235  
a61732e808672cf Javier Martinez Canillas 2022-02-14  236  static int 
ssd130x_init(struct ssd130x_device *ssd130x)
a61732e808672cf Javier Martinez Canillas 2022-02-14  237  {
a61732e808672cf Javier Martinez Canillas 2022-02-14  238        u32 precharge, 
dclk, com_invdir, compins, chargepump;
a61732e808672cf Javier Martinez Canillas 2022-02-14  239        int ret;
a61732e808672cf Javier Martinez Canillas 2022-02-14  240  
a61732e808672cf Javier Martinez Canillas 2022-02-14  241        /* Set initial 
contrast */
a61732e808672cf Javier Martinez Canillas 2022-02-14  242        ret = 
ssd130x_write_cmd(ssd130x, 2, SSD130X_CONTRAST, ssd130x->contrast);
a61732e808672cf Javier Martinez Canillas 2022-02-14  243        if (ret < 0)
a61732e808672cf Javier Martinez Canillas 2022-02-14  244                return 
ret;
a61732e808672cf Javier Martinez Canillas 2022-02-14  245  
a61732e808672cf Javier Martinez Canillas 2022-02-14  246        /* Set segment 
re-map */
a61732e808672cf Javier Martinez Canillas 2022-02-14  247        if 
(ssd130x->seg_remap) {
a61732e808672cf Javier Martinez Canillas 2022-02-14  248                ret = 
ssd130x_write_cmd(ssd130x, 1, SSD130X_SEG_REMAP_ON);
a61732e808672cf Javier Martinez Canillas 2022-02-14  249                if (ret 
< 0)
a61732e808672cf Javier Martinez Canillas 2022-02-14  250                        
return ret;
a61732e808672cf Javier Martinez Canillas 2022-02-14  251        }
a61732e808672cf Javier Martinez Canillas 2022-02-14  252  
a61732e808672cf Javier Martinez Canillas 2022-02-14  253        /* Set COM 
direction */
a61732e808672cf Javier Martinez Canillas 2022-02-14  254        com_invdir = 
(SSD130X_SET_COM_SCAN_DIR |
a61732e808672cf Javier Martinez Canillas 2022-02-14  255                      
SSD130X_SET_COM_SCAN_DIR_SET(ssd130x->com_invdir));
a61732e808672cf Javier Martinez Canillas 2022-02-14  256        ret = 
ssd130x_write_cmd(ssd130x,  1, com_invdir);
a61732e808672cf Javier Martinez Canillas 2022-02-14  257        if (ret < 0)
a61732e808672cf Javier Martinez Canillas 2022-02-14  258                return 
ret;
a61732e808672cf Javier Martinez Canillas 2022-02-14  259  
a61732e808672cf Javier Martinez Canillas 2022-02-14  260        /* Set 
multiplex ratio value */
a61732e808672cf Javier Martinez Canillas 2022-02-14  261        ret = 
ssd130x_write_cmd(ssd130x, 2, SSD130X_SET_MULTIPLEX_RATIO, ssd130x->height - 1);
a61732e808672cf Javier Martinez Canillas 2022-02-14  262        if (ret < 0)
a61732e808672cf Javier Martinez Canillas 2022-02-14  263                return 
ret;
a61732e808672cf Javier Martinez Canillas 2022-02-14  264  
a61732e808672cf Javier Martinez Canillas 2022-02-14  265        /* set display 
offset value */
a61732e808672cf Javier Martinez Canillas 2022-02-14  266        ret = 
ssd130x_write_cmd(ssd130x, 2, SSD130X_SET_DISPLAY_OFFSET, ssd130x->com_offset);
a61732e808672cf Javier Martinez Canillas 2022-02-14  267        if (ret < 0)
a61732e808672cf Javier Martinez Canillas 2022-02-14  268                return 
ret;
a61732e808672cf Javier Martinez Canillas 2022-02-14  269  
a61732e808672cf Javier Martinez Canillas 2022-02-14  270        /* Set clock 
frequency */
a61732e808672cf Javier Martinez Canillas 2022-02-14  271        dclk = 
(SSD130X_SET_CLOCK_DIV_SET(ssd130x->dclk_div - 1) |
a61732e808672cf Javier Martinez Canillas 2022-02-14  272                
SSD130X_SET_CLOCK_FREQ_SET(ssd130x->dclk_frq));
a61732e808672cf Javier Martinez Canillas 2022-02-14  273        ret = 
ssd130x_write_cmd(ssd130x, 2, SSD130X_SET_CLOCK_FREQ, dclk);
a61732e808672cf Javier Martinez Canillas 2022-02-14  274        if (ret < 0)
a61732e808672cf Javier Martinez Canillas 2022-02-14  275                return 
ret;
a61732e808672cf Javier Martinez Canillas 2022-02-14  276  
a61732e808672cf Javier Martinez Canillas 2022-02-14  277        /* Set Area 
Color Mode ON/OFF & Low Power Display Mode */
a61732e808672cf Javier Martinez Canillas 2022-02-14  278        if 
(ssd130x->area_color_enable || ssd130x->low_power) {
a61732e808672cf Javier Martinez Canillas 2022-02-14  279                u32 
mode = 0;
a61732e808672cf Javier Martinez Canillas 2022-02-14  280  
a61732e808672cf Javier Martinez Canillas 2022-02-14  281                if 
(ssd130x->area_color_enable)
a61732e808672cf Javier Martinez Canillas 2022-02-14  282                        
mode |= SSD130X_SET_AREA_COLOR_MODE_ENABLE;
a61732e808672cf Javier Martinez Canillas 2022-02-14  283  
a61732e808672cf Javier Martinez Canillas 2022-02-14  284                if 
(ssd130x->low_power)
a61732e808672cf Javier Martinez Canillas 2022-02-14  285                        
mode |= SSD130X_SET_AREA_COLOR_MODE_LOW_POWER;
a61732e808672cf Javier Martinez Canillas 2022-02-14  286  
a61732e808672cf Javier Martinez Canillas 2022-02-14  287                ret = 
ssd130x_write_cmd(ssd130x, 2, SSD130X_SET_AREA_COLOR_MODE, mode);
a61732e808672cf Javier Martinez Canillas 2022-02-14  288                if (ret 
< 0)
a61732e808672cf Javier Martinez Canillas 2022-02-14  289                        
return ret;
a61732e808672cf Javier Martinez Canillas 2022-02-14  290        }
a61732e808672cf Javier Martinez Canillas 2022-02-14  291  
a61732e808672cf Javier Martinez Canillas 2022-02-14  292        /* Set 
precharge period in number of ticks from the internal clock */
a61732e808672cf Javier Martinez Canillas 2022-02-14  293        precharge = 
(SSD130X_SET_PRECHARGE_PERIOD1_SET(ssd130x->prechargep1) |
a61732e808672cf Javier Martinez Canillas 2022-02-14  294                     
SSD130X_SET_PRECHARGE_PERIOD1_SET(ssd130x->prechargep2));
a61732e808672cf Javier Martinez Canillas 2022-02-14  295        ret = 
ssd130x_write_cmd(ssd130x, 2, SSD130X_SET_PRECHARGE_PERIOD, precharge);
a61732e808672cf Javier Martinez Canillas 2022-02-14  296        if (ret < 0)
a61732e808672cf Javier Martinez Canillas 2022-02-14  297                return 
ret;
a61732e808672cf Javier Martinez Canillas 2022-02-14  298  
a61732e808672cf Javier Martinez Canillas 2022-02-14  299        /* Set COM pins 
configuration */
a61732e808672cf Javier Martinez Canillas 2022-02-14  300        compins = 
BIT(1);
a61732e808672cf Javier Martinez Canillas 2022-02-14 @301        compins |= 
(SSD130X_SET_COM_PINS_CONFIG1_SET(ssd130x->com_seq) |
a61732e808672cf Javier Martinez Canillas 2022-02-14  302                    
SSD130X_SET_COM_PINS_CONFIG2_SET(ssd130x->com_lrremap));
a61732e808672cf Javier Martinez Canillas 2022-02-14  303        ret = 
ssd130x_write_cmd(ssd130x, 2, SSD130X_SET_COM_PINS_CONFIG, compins);
a61732e808672cf Javier Martinez Canillas 2022-02-14  304        if (ret < 0)
a61732e808672cf Javier Martinez Canillas 2022-02-14  305                return 
ret;
a61732e808672cf Javier Martinez Canillas 2022-02-14  306  
a61732e808672cf Javier Martinez Canillas 2022-02-14  307        /* Set VCOMH */
a61732e808672cf Javier Martinez Canillas 2022-02-14  308        ret = 
ssd130x_write_cmd(ssd130x, 2, SSD130X_SET_VCOMH, ssd130x->vcomh);
a61732e808672cf Javier Martinez Canillas 2022-02-14  309        if (ret < 0)
a61732e808672cf Javier Martinez Canillas 2022-02-14  310                return 
ret;
a61732e808672cf Javier Martinez Canillas 2022-02-14  311  
a61732e808672cf Javier Martinez Canillas 2022-02-14  312        /* Turn on the 
DC-DC Charge Pump */
a61732e808672cf Javier Martinez Canillas 2022-02-14  313        chargepump = 
BIT(4);
a61732e808672cf Javier Martinez Canillas 2022-02-14  314  
a61732e808672cf Javier Martinez Canillas 2022-02-14  315        if 
(ssd130x->device_info->need_chargepump)
a61732e808672cf Javier Martinez Canillas 2022-02-14  316                
chargepump |= BIT(2);
a61732e808672cf Javier Martinez Canillas 2022-02-14  317  
a61732e808672cf Javier Martinez Canillas 2022-02-14  318        ret = 
ssd130x_write_cmd(ssd130x, 2, SSD130X_CHARGE_PUMP, chargepump);
a61732e808672cf Javier Martinez Canillas 2022-02-14  319        if (ret < 0)
a61732e808672cf Javier Martinez Canillas 2022-02-14  320                return 
ret;
a61732e808672cf Javier Martinez Canillas 2022-02-14  321  
a61732e808672cf Javier Martinez Canillas 2022-02-14  322        /* Set lookup 
table */
a61732e808672cf Javier Martinez Canillas 2022-02-14  323        if 
(ssd130x->lookup_table_set) {
a61732e808672cf Javier Martinez Canillas 2022-02-14  324                int i;
a61732e808672cf Javier Martinez Canillas 2022-02-14  325  
a61732e808672cf Javier Martinez Canillas 2022-02-14  326                ret = 
ssd130x_write_cmd(ssd130x, 1, SSD130X_SET_LOOKUP_TABLE);
a61732e808672cf Javier Martinez Canillas 2022-02-14  327                if (ret 
< 0)
a61732e808672cf Javier Martinez Canillas 2022-02-14  328                        
return ret;
a61732e808672cf Javier Martinez Canillas 2022-02-14  329  
a61732e808672cf Javier Martinez Canillas 2022-02-14  330                for (i 
= 0; i < ARRAY_SIZE(ssd130x->lookup_table); i++) {
a61732e808672cf Javier Martinez Canillas 2022-02-14  331                        
u8 val = ssd130x->lookup_table[i];
a61732e808672cf Javier Martinez Canillas 2022-02-14  332  
a61732e808672cf Javier Martinez Canillas 2022-02-14  333                        
if (val < 31 || val > 63)
a61732e808672cf Javier Martinez Canillas 2022-02-14  334                        
        dev_warn(ssd130x->dev,
a61732e808672cf Javier Martinez Canillas 2022-02-14  335                        
                 "lookup table index %d value out of range 31 <= %d <= 63\n",
a61732e808672cf Javier Martinez Canillas 2022-02-14  336                        
                 i, val);
a61732e808672cf Javier Martinez Canillas 2022-02-14  337                        
ret = ssd130x_write_cmd(ssd130x, 1, val);
a61732e808672cf Javier Martinez Canillas 2022-02-14  338                        
if (ret < 0)
a61732e808672cf Javier Martinez Canillas 2022-02-14  339                        
        return ret;
a61732e808672cf Javier Martinez Canillas 2022-02-14  340                }
a61732e808672cf Javier Martinez Canillas 2022-02-14  341        }
a61732e808672cf Javier Martinez Canillas 2022-02-14  342  
a61732e808672cf Javier Martinez Canillas 2022-02-14  343        /* Switch to 
horizontal addressing mode */
a61732e808672cf Javier Martinez Canillas 2022-02-14  344        return 
ssd130x_write_cmd(ssd130x, 2, SSD130X_SET_ADDRESS_MODE,
a61732e808672cf Javier Martinez Canillas 2022-02-14  345                        
         SSD130X_SET_ADDRESS_MODE_HORIZONTAL);
a61732e808672cf Javier Martinez Canillas 2022-02-14  346  }
a61732e808672cf Javier Martinez Canillas 2022-02-14  347  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to