Hi Sam, I love your patch! Perhaps something to improve: url: https://github.com/0day-ci/linux/commits/Sam-Ravnborg/dt-bindings-add-parallel-data-bus-pardata/20180803-090135 smatch warnings: drivers/gpu/drm/tinydrm/wg160160.c:145 write_buf() warn: right shifting more than type allows 8 vs 8 include/drm/tinydrm/pardata-dbi.h:165 pardata_write_buf() error: we previously assumed 'pdd' could be null (see line 162) # https://github.com/0day-ci/linux/commit/9fcebca9e208029e06eea5e4858c1055132f06b6 git remote add linux-review https://github.com/0day-ci/linux git remote update linux-review git checkout 9fcebca9e208029e06eea5e4858c1055132f06b6 vim +145 drivers/gpu/drm/tinydrm/wg160160.c 9fcebca9 Sam Ravnborg 2018-08-02 124 9fcebca9 Sam Ravnborg 2018-08-02 125 /** 9fcebca9 Sam Ravnborg 2018-08-02 126 * write_buf - write buffer on parallel bus to controller 9fcebca9 Sam Ravnborg 2018-08-02 127 * 9fcebca9 Sam Ravnborg 2018-08-02 128 * @pdd: pardata data 9fcebca9 Sam Ravnborg 2018-08-02 129 * @offset: offset into display RAM 9fcebca9 Sam Ravnborg 2018-08-02 130 * @data: pointer to data to write 9fcebca9 Sam Ravnborg 2018-08-02 131 * @len: number of bytes to write 9fcebca9 Sam Ravnborg 2018-08-02 132 * 9fcebca9 Sam Ravnborg 2018-08-02 133 * Returns: 9fcebca9 Sam Ravnborg 2018-08-02 134 * Zero on success, negative error code on failure 9fcebca9 Sam Ravnborg 2018-08-02 135 */ 9fcebca9 Sam Ravnborg 2018-08-02 136 int write_buf(struct pardata_data *pdd, u8 offset, u8 *data, size_t len) 9fcebca9 Sam Ravnborg 2018-08-02 137 { 9fcebca9 Sam Ravnborg 2018-08-02 138 int ins[PIN_NUM]; 9fcebca9 Sam Ravnborg 2018-08-02 139 int val[PIN_NUM]; 9fcebca9 Sam Ravnborg 2018-08-02 140 int bit; 9fcebca9 Sam Ravnborg 2018-08-02 141 int i; 9fcebca9 Sam Ravnborg 2018-08-02 142 9fcebca9 Sam Ravnborg 2018-08-02 143 /* Setup address */ 9fcebca9 Sam Ravnborg 2018-08-02 144 write_reg(pdd, WG160160_ADDRSL_REG, offset & 0xff); 9fcebca9 Sam Ravnborg 2018-08-02 @145 write_reg(pdd, WG160160_ADDRSL_REG, (offset >> 8) & 0xff); ^^^^^^^^^^^^^^^^^^^^ Probably this is fine. I don't know. If so then feel free to ignore the warning. 9fcebca9 Sam Ravnborg 2018-08-02 146 9fcebca9 Sam Ravnborg 2018-08-02 147 /* prepare to write data */ 9fcebca9 Sam Ravnborg 2018-08-02 148 for (i = 0; i < PIN_NUM; i++) 9fcebca9 Sam Ravnborg 2018-08-02 149 ins[PIN_DB0 + i] = !!(WG160160_WRITE_REG & BIT(i)); 9fcebca9 Sam Ravnborg 2018-08-02 150 9fcebca9 Sam Ravnborg 2018-08-02 151 gpiod_set_value_cansleep(pdd->bus->pin_rs, 1); 9fcebca9 Sam Ravnborg 2018-08-02 152 gpiod_set_array_value_cansleep(PIN_NUM, pdd->bus->data_pins->desc, ins); 9fcebca9 Sam Ravnborg 2018-08-02 153 wait_busy(pdd); 9fcebca9 Sam Ravnborg 2018-08-02 154 pardata_strobe_write(pdd); 9fcebca9 Sam Ravnborg 2018-08-02 155 9fcebca9 Sam Ravnborg 2018-08-02 156 /* Write data byte - by byte */ 9fcebca9 Sam Ravnborg 2018-08-02 157 gpiod_set_value_cansleep(pdd->bus->pin_rs, 0); 9fcebca9 Sam Ravnborg 2018-08-02 158 9fcebca9 Sam Ravnborg 2018-08-02 159 for (i = offset; i < (offset + len); i++) { 9fcebca9 Sam Ravnborg 2018-08-02 160 for (bit = 0; bit < PIN_NUM; bit++) 9fcebca9 Sam Ravnborg 2018-08-02 161 val[PIN_DB0 + bit] = !!(data[i] & BIT(bit)); 9fcebca9 Sam Ravnborg 2018-08-02 162 9fcebca9 Sam Ravnborg 2018-08-02 163 gpiod_set_array_value_cansleep(PIN_NUM, 9fcebca9 Sam Ravnborg 2018-08-02 164 pdd->bus->data_pins->desc, 9fcebca9 Sam Ravnborg 2018-08-02 165 val); 9fcebca9 Sam Ravnborg 2018-08-02 166 wait_busy(pdd); 9fcebca9 Sam Ravnborg 2018-08-02 167 pardata_strobe_write(pdd); 9fcebca9 Sam Ravnborg 2018-08-02 168 } 9fcebca9 Sam Ravnborg 2018-08-02 169 9fcebca9 Sam Ravnborg 2018-08-02 170 return 0; 9fcebca9 Sam Ravnborg 2018-08-02 171 } 9fcebca9 Sam Ravnborg 2018-08-02 172 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel