[ragnatech:media-tree 32/140] drivers/media/platform/seco-cec/seco-cec.c:237:4: error: implicit declaration of function 'cec_transmit_attempt_done'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   git://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

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux