[linux-next:master 1790/12310] drivers/media/platform/seco-cec/seco-cec.c:355: undefined reference to `devm_rc_allocate_device'

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

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   baf5a9d1f9b95eb97e9eb54932e20dbbf814771c
commit: f27dd0ad68850fdb806536a733a32d8f74810f1e [1790/12310] media: seco-cec: fix RC_CORE dependency
config: x86_64-randconfig-s5-03051951 (attached as .config)
compiler: gcc-8 (Debian 8.3.0-2) 8.3.0
reproduce:
        git checkout f27dd0ad68850fdb806536a733a32d8f74810f1e
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   ld: drivers/media/platform/seco-cec/seco-cec.o: in function `secocec_ir_probe':
>> drivers/media/platform/seco-cec/seco-cec.c:355: undefined reference to `devm_rc_allocate_device'
>> ld: drivers/media/platform/seco-cec/seco-cec.c:395: undefined reference to `devm_rc_register_device'
   ld: drivers/media/platform/seco-cec/seco-cec.o: in function `secocec_ir_rx':
>> drivers/media/platform/seco-cec/seco-cec.c:432: undefined reference to `rc_keydown'

vim +355 drivers/media/platform/seco-cec/seco-cec.c

b03c2fb9 Ettore Chimenti 2018-10-21  345  
daef9576 Ettore Chimenti 2018-10-21  346  #ifdef CONFIG_VIDEO_SECO_RC
daef9576 Ettore Chimenti 2018-10-21  347  static int secocec_ir_probe(void *priv)
daef9576 Ettore Chimenti 2018-10-21  348  {
daef9576 Ettore Chimenti 2018-10-21  349  	struct secocec_data *cec = priv;
daef9576 Ettore Chimenti 2018-10-21  350  	struct device *dev = cec->dev;
daef9576 Ettore Chimenti 2018-10-21  351  	int status;
daef9576 Ettore Chimenti 2018-10-21  352  	u16 val;
daef9576 Ettore Chimenti 2018-10-21  353  
daef9576 Ettore Chimenti 2018-10-21  354  	/* Prepare the RC input device */
daef9576 Ettore Chimenti 2018-10-21 @355  	cec->ir = devm_rc_allocate_device(dev, RC_DRIVER_SCANCODE);
daef9576 Ettore Chimenti 2018-10-21  356  	if (!cec->ir)
daef9576 Ettore Chimenti 2018-10-21  357  		return -ENOMEM;
daef9576 Ettore Chimenti 2018-10-21  358  
daef9576 Ettore Chimenti 2018-10-21  359  	snprintf(cec->ir_input_phys, sizeof(cec->ir_input_phys),
daef9576 Ettore Chimenti 2018-10-21  360  		 "%s/input0", dev_name(dev));
daef9576 Ettore Chimenti 2018-10-21  361  
daef9576 Ettore Chimenti 2018-10-21  362  	cec->ir->device_name = dev_name(dev);
daef9576 Ettore Chimenti 2018-10-21  363  	cec->ir->input_phys = cec->ir_input_phys;
daef9576 Ettore Chimenti 2018-10-21  364  	cec->ir->input_id.bustype = BUS_HOST;
daef9576 Ettore Chimenti 2018-10-21  365  	cec->ir->input_id.vendor = 0;
daef9576 Ettore Chimenti 2018-10-21  366  	cec->ir->input_id.product = 0;
daef9576 Ettore Chimenti 2018-10-21  367  	cec->ir->input_id.version = 1;
daef9576 Ettore Chimenti 2018-10-21  368  	cec->ir->driver_name = SECOCEC_DEV_NAME;
daef9576 Ettore Chimenti 2018-10-21  369  	cec->ir->allowed_protocols = RC_PROTO_BIT_RC5;
daef9576 Ettore Chimenti 2018-10-21  370  	cec->ir->priv = cec;
daef9576 Ettore Chimenti 2018-10-21  371  	cec->ir->map_name = RC_MAP_HAUPPAUGE;
daef9576 Ettore Chimenti 2018-10-21  372  	cec->ir->timeout = MS_TO_NS(100);
daef9576 Ettore Chimenti 2018-10-21  373  
daef9576 Ettore Chimenti 2018-10-21  374  	/* Clear the status register */
daef9576 Ettore Chimenti 2018-10-21  375  	status = smb_rd16(SECOCEC_STATUS_REG_1, &val);
daef9576 Ettore Chimenti 2018-10-21  376  	if (status != 0)
daef9576 Ettore Chimenti 2018-10-21  377  		goto err;
daef9576 Ettore Chimenti 2018-10-21  378  
daef9576 Ettore Chimenti 2018-10-21  379  	status = smb_wr16(SECOCEC_STATUS_REG_1, val);
daef9576 Ettore Chimenti 2018-10-21  380  	if (status != 0)
daef9576 Ettore Chimenti 2018-10-21  381  		goto err;
daef9576 Ettore Chimenti 2018-10-21  382  
daef9576 Ettore Chimenti 2018-10-21  383  	/* Enable the interrupts */
daef9576 Ettore Chimenti 2018-10-21  384  	status = smb_rd16(SECOCEC_ENABLE_REG_1, &val);
daef9576 Ettore Chimenti 2018-10-21  385  	if (status != 0)
daef9576 Ettore Chimenti 2018-10-21  386  		goto err;
daef9576 Ettore Chimenti 2018-10-21  387  
daef9576 Ettore Chimenti 2018-10-21  388  	status = smb_wr16(SECOCEC_ENABLE_REG_1,
daef9576 Ettore Chimenti 2018-10-21  389  			  val | SECOCEC_ENABLE_REG_1_IR);
daef9576 Ettore Chimenti 2018-10-21  390  	if (status != 0)
daef9576 Ettore Chimenti 2018-10-21  391  		goto err;
daef9576 Ettore Chimenti 2018-10-21  392  
daef9576 Ettore Chimenti 2018-10-21  393  	dev_dbg(dev, "IR enabled");
daef9576 Ettore Chimenti 2018-10-21  394  
daef9576 Ettore Chimenti 2018-10-21 @395  	status = devm_rc_register_device(dev, cec->ir);
daef9576 Ettore Chimenti 2018-10-21  396  
daef9576 Ettore Chimenti 2018-10-21  397  	if (status) {
daef9576 Ettore Chimenti 2018-10-21  398  		dev_err(dev, "Failed to prepare input device");
daef9576 Ettore Chimenti 2018-10-21  399  		cec->ir = NULL;
daef9576 Ettore Chimenti 2018-10-21  400  		goto err;
daef9576 Ettore Chimenti 2018-10-21  401  	}
daef9576 Ettore Chimenti 2018-10-21  402  
daef9576 Ettore Chimenti 2018-10-21  403  	return 0;
daef9576 Ettore Chimenti 2018-10-21  404  
daef9576 Ettore Chimenti 2018-10-21  405  err:
daef9576 Ettore Chimenti 2018-10-21  406  	smb_rd16(SECOCEC_ENABLE_REG_1, &val);
daef9576 Ettore Chimenti 2018-10-21  407  
daef9576 Ettore Chimenti 2018-10-21  408  	smb_wr16(SECOCEC_ENABLE_REG_1,
daef9576 Ettore Chimenti 2018-10-21  409  		 val & ~SECOCEC_ENABLE_REG_1_IR);
daef9576 Ettore Chimenti 2018-10-21  410  
daef9576 Ettore Chimenti 2018-10-21  411  	dev_dbg(dev, "IR disabled");
daef9576 Ettore Chimenti 2018-10-21  412  	return status;
daef9576 Ettore Chimenti 2018-10-21  413  }
daef9576 Ettore Chimenti 2018-10-21  414  
daef9576 Ettore Chimenti 2018-10-21  415  static int secocec_ir_rx(struct secocec_data *priv)
daef9576 Ettore Chimenti 2018-10-21  416  {
daef9576 Ettore Chimenti 2018-10-21  417  	struct secocec_data *cec = priv;
daef9576 Ettore Chimenti 2018-10-21  418  	struct device *dev = cec->dev;
daef9576 Ettore Chimenti 2018-10-21  419  	u16 val, status, key, addr, toggle;
daef9576 Ettore Chimenti 2018-10-21  420  
daef9576 Ettore Chimenti 2018-10-21  421  	if (!cec->ir)
daef9576 Ettore Chimenti 2018-10-21  422  		return -ENODEV;
daef9576 Ettore Chimenti 2018-10-21  423  
daef9576 Ettore Chimenti 2018-10-21  424  	status = smb_rd16(SECOCEC_IR_READ_DATA, &val);
daef9576 Ettore Chimenti 2018-10-21  425  	if (status != 0)
daef9576 Ettore Chimenti 2018-10-21  426  		goto err;
daef9576 Ettore Chimenti 2018-10-21  427  
daef9576 Ettore Chimenti 2018-10-21  428  	key = val & SECOCEC_IR_COMMAND_MASK;
daef9576 Ettore Chimenti 2018-10-21  429  	addr = (val & SECOCEC_IR_ADDRESS_MASK) >> SECOCEC_IR_ADDRESS_SHL;
daef9576 Ettore Chimenti 2018-10-21  430  	toggle = (val & SECOCEC_IR_TOGGLE_MASK) >> SECOCEC_IR_TOGGLE_SHL;
daef9576 Ettore Chimenti 2018-10-21  431  
daef9576 Ettore Chimenti 2018-10-21 @432  	rc_keydown(cec->ir, RC_PROTO_RC5, RC_SCANCODE_RC5(addr, key), toggle);
daef9576 Ettore Chimenti 2018-10-21  433  
daef9576 Ettore Chimenti 2018-10-21  434  	dev_dbg(dev, "IR key pressed: 0x%02x addr 0x%02x toggle 0x%02x", key,
daef9576 Ettore Chimenti 2018-10-21  435  		addr, toggle);
daef9576 Ettore Chimenti 2018-10-21  436  
daef9576 Ettore Chimenti 2018-10-21  437  	return 0;
daef9576 Ettore Chimenti 2018-10-21  438  
daef9576 Ettore Chimenti 2018-10-21  439  err:
daef9576 Ettore Chimenti 2018-10-21  440  	dev_err(dev, "IR Receive message failed (%d)", status);
daef9576 Ettore Chimenti 2018-10-21  441  	return -EIO;
daef9576 Ettore Chimenti 2018-10-21  442  }
daef9576 Ettore Chimenti 2018-10-21  443  #else
daef9576 Ettore Chimenti 2018-10-21  444  static void secocec_ir_rx(struct secocec_data *priv)
daef9576 Ettore Chimenti 2018-10-21  445  {
daef9576 Ettore Chimenti 2018-10-21  446  }
daef9576 Ettore Chimenti 2018-10-21  447  

:::::: The code at line 355 was first introduced by commit
:::::: daef95769b3a1d60afc31fa97578824a2ff39915 media: seco-cec: add Consumer-IR support

:::::: TO: Ettore Chimenti <ek5.chimenti@xxxxxxxxx>
:::::: CC: Mauro Carvalho Chehab <mchehab+samsung@xxxxxxxxxx>

---
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