On 11/24/2018 07:14 PM, Ettore Chimenti wrote: > Hi all, > Is this error relevant? > I tried compiling on 'ragnatech/media-tree' (708d75fe1c7c6e9abc5381b6fcc32b49830383d0) without getting errors. This was fixed by this patch: https://patchwork.linuxtv.org/patch/53117/ Which is why it now works. Regards, Hans > > Thanks, > Ettore > > Il giorno sab 24 nov 2018 alle ore 18:07 kbuild test robot <lkp@xxxxxxxxx <mailto:lkp@xxxxxxxxx>> ha scritto: > > tree: git://git.ragnatech.se/linux <http://git.ragnatech.se/linux> media-tree > head: 708d75fe1c7c6e9abc5381b6fcc32b49830383d0 > commit: b03c2fb97adcc65d3c4098c4aa41fbaa6623ebf2 [32/140] media: add SECO cec driver > config: i386-randconfig-x006-201847 (attached as .config) > compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 > reproduce: > git checkout b03c2fb97adcc65d3c4098c4aa41fbaa6623ebf2 > # save the attached .config to linux build tree > make ARCH=i386 > > Note: the ragnatech/media-tree HEAD 708d75fe1c7c6e9abc5381b6fcc32b49830383d0 builds fine. > It only hurts bisectibility. > > All error/warnings (new ones prefixed by >>): > > drivers/media/platform/seco-cec/seco-cec.c: In function 'secocec_tx_done': > >> drivers/media/platform/seco-cec/seco-cec.c:237:4: error: implicit declaration of function 'cec_transmit_attempt_done' > [-Werror=implicit-function-declaration] > cec_transmit_attempt_done(adap, CEC_TX_STATUS_NACK); > ^~~~~~~~~~~~~~~~~~~~~~~~~ > drivers/media/platform/seco-cec/seco-cec.c: In function 'secocec_rx_done': > >> drivers/media/platform/seco-cec/seco-cec.c:316:2: error: implicit declaration of function 'cec_received_msg'; did you mean > 'free_reserved_page'? [-Werror=implicit-function-declaration] > cec_received_msg(cec->cec_adap, &msg); > ^~~~~~~~~~~~~~~~ > free_reserved_page > drivers/media/platform/seco-cec/seco-cec.c: In function 'secocec_probe': > >> drivers/media/platform/seco-cec/seco-cec.c:527:22: error: implicit declaration of function 'cec_allocate_adapter'; did you mean > 'cec_delete_adapter'? [-Werror=implicit-function-declaration] > secocec->cec_adap = cec_allocate_adapter(&secocec_cec_adap_ops, > ^~~~~~~~~~~~~~~~~~~~ > cec_delete_adapter > >> drivers/media/platform/seco-cec/seco-cec.c:527:20: warning: assignment makes pointer from integer without a cast [-Wint-conversion] > secocec->cec_adap = cec_allocate_adapter(&secocec_cec_adap_ops, > ^ > cc1: some warnings being treated as errors > > vim +/cec_transmit_attempt_done +237 drivers/media/platform/seco-cec/seco-cec.c > > 232 > 233 static void secocec_tx_done(struct cec_adapter *adap, u16 status_val) > 234 { > 235 if (status_val & SECOCEC_STATUS_TX_ERROR_MASK) { > 236 if (status_val & SECOCEC_STATUS_TX_NACK_ERROR) > > 237 cec_transmit_attempt_done(adap, CEC_TX_STATUS_NACK); > 238 else > 239 cec_transmit_attempt_done(adap, CEC_TX_STATUS_ERROR); > 240 } else { > 241 cec_transmit_attempt_done(adap, CEC_TX_STATUS_OK); > 242 } > 243 > 244 /* Reset status reg */ > 245 status_val = SECOCEC_STATUS_TX_ERROR_MASK | > 246 SECOCEC_STATUS_MSG_SENT_MASK | > 247 SECOCEC_STATUS_TX_NACK_ERROR; > 248 smb_wr16(SECOCEC_STATUS, status_val); > 249 } > 250 > 251 static void secocec_rx_done(struct cec_adapter *adap, u16 status_val) > 252 { > 253 struct secocec_data *cec = cec_get_drvdata(adap); > 254 struct device *dev = cec->dev; > 255 struct cec_msg msg = { }; > 256 bool flag_overflow = false; > 257 u8 payload_len, i = 0; > 258 u8 *payload_msg; > 259 u16 val = 0; > 260 int status; > 261 > 262 if (status_val & SECOCEC_STATUS_RX_OVERFLOW_MASK) { > 263 /* NOTE: Untested, it also might not be necessary */ > 264 dev_warn(dev, "Received more than 16 bytes. Discarding"); > 265 flag_overflow = true; > 266 } > 267 > 268 if (status_val & SECOCEC_STATUS_RX_ERROR_MASK) { > 269 dev_warn(dev, "Message received with errors. Discarding"); > 270 status = -EIO; > 271 goto rxerr; > 272 } > 273 > 274 /* Read message length */ > 275 status = smb_rd16(SECOCEC_READ_DATA_LENGTH, &val); > 276 if (status) > 277 return; > 278 > 279 /* Device msg len already accounts for the header */ > 280 msg.len = min(val + 1, CEC_MAX_MSG_SIZE); > 281 > 282 /* Read logical address */ > 283 status = smb_rd16(SECOCEC_READ_BYTE0, &val); > 284 if (status) > 285 return; > 286 > 287 /* device stores source LA and destination */ > 288 msg.msg[0] = val; > 289 > 290 /* Read operation ID */ > 291 status = smb_rd16(SECOCEC_READ_OPERATION_ID, &val); > 292 if (status) > 293 return; > 294 > 295 msg.msg[1] = val; > 296 > 297 /* Read data if present */ > 298 if (msg.len > 1) { > 299 payload_len = msg.len - 2; > 300 payload_msg = &msg.msg[2]; > 301 > 302 /* device stores 2 bytes in every 16-bit val */ > 303 for (i = 0; i < payload_len; i += 2) { > 304 status = smb_rd16(SECOCEC_READ_DATA_00 + i / 2, &val); > 305 if (status) > 306 return; > 307 > 308 /* low byte, skipping header */ > 309 payload_msg[i] = val & 0x00ff; > 310 > 311 /* hi byte */ > 312 payload_msg[i + 1] = (val & 0xff00) >> 8; > 313 } > 314 } > 315 > > 316 cec_received_msg(cec->cec_adap, &msg); > 317 > 318 /* Reset status reg */ > 319 status_val = SECOCEC_STATUS_MSG_RECEIVED_MASK; > 320 if (flag_overflow) > 321 status_val |= SECOCEC_STATUS_RX_OVERFLOW_MASK; > 322 > 323 status = smb_wr16(SECOCEC_STATUS, status_val); > 324 > 325 return; > 326 > 327 rxerr: > 328 /* Reset error reg */ > 329 status_val = SECOCEC_STATUS_MSG_RECEIVED_MASK | > 330 SECOCEC_STATUS_RX_ERROR_MASK; > 331 if (flag_overflow) > 332 status_val |= SECOCEC_STATUS_RX_OVERFLOW_MASK; > 333 smb_wr16(SECOCEC_STATUS, status_val); > 334 } > 335 > > --- > 0-DAY kernel test infrastructure Open Source Technology Center > https://lists.01.org/pipermail/kbuild-all Intel Corporation > > > > -- > Ettore Chimenti > > Cell: 333-1754004 > Skype: ektor-5 > TG/Tw/FB: @ektor5