[j.anaszewski-leds:for-next 15/49] drivers/input/keyboard/applespi.c:1789: undefined reference to `devm_led_classdev_register_ext'

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

 



tree:   https://kernel.googlesource.com/pub/scm/linux/kernel/git/j.anaszewski/linux-leds.git for-next
head:   fd81d7e946c6bdb86dbf0bd88fee3e1a545e7979
commit: b2b998c0f944993c9ef435569651e407d607af41 [15/49] leds: class: Improve LED and LED flash class registration API
config: i386-randconfig-h002-201934 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-10) 7.4.0
reproduce:
        git checkout b2b998c0f944993c9ef435569651e407d607af41
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

   ld: drivers/input/keyboard/applespi.o: in function `applespi_probe':
>> drivers/input/keyboard/applespi.c:1789: undefined reference to `devm_led_classdev_register_ext'

vim +1789 drivers/input/keyboard/applespi.c

038b1a05eae666 Ronald Tschalär 2019-07-15  1620  
038b1a05eae666 Ronald Tschalär 2019-07-15  1621  static int applespi_probe(struct spi_device *spi)
038b1a05eae666 Ronald Tschalär 2019-07-15  1622  {
038b1a05eae666 Ronald Tschalär 2019-07-15  1623  	struct applespi_data *applespi;
038b1a05eae666 Ronald Tschalär 2019-07-15  1624  	acpi_handle spi_handle = ACPI_HANDLE(&spi->dev);
038b1a05eae666 Ronald Tschalär 2019-07-15  1625  	acpi_status acpi_sts;
038b1a05eae666 Ronald Tschalär 2019-07-15  1626  	int sts, i;
038b1a05eae666 Ronald Tschalär 2019-07-15  1627  	unsigned long long gpe, usb_status;
038b1a05eae666 Ronald Tschalär 2019-07-15  1628  
038b1a05eae666 Ronald Tschalär 2019-07-15  1629  	/* check if the USB interface is present and enabled already */
038b1a05eae666 Ronald Tschalär 2019-07-15  1630  	acpi_sts = acpi_evaluate_integer(spi_handle, "UIST", NULL, &usb_status);
038b1a05eae666 Ronald Tschalär 2019-07-15  1631  	if (ACPI_SUCCESS(acpi_sts) && usb_status) {
038b1a05eae666 Ronald Tschalär 2019-07-15  1632  		/* let the USB driver take over instead */
038b1a05eae666 Ronald Tschalär 2019-07-15  1633  		dev_info(&spi->dev, "USB interface already enabled\n");
038b1a05eae666 Ronald Tschalär 2019-07-15  1634  		return -ENODEV;
038b1a05eae666 Ronald Tschalär 2019-07-15  1635  	}
038b1a05eae666 Ronald Tschalär 2019-07-15  1636  
038b1a05eae666 Ronald Tschalär 2019-07-15  1637  	/* allocate driver data */
038b1a05eae666 Ronald Tschalär 2019-07-15  1638  	applespi = devm_kzalloc(&spi->dev, sizeof(*applespi), GFP_KERNEL);
038b1a05eae666 Ronald Tschalär 2019-07-15  1639  	if (!applespi)
038b1a05eae666 Ronald Tschalär 2019-07-15  1640  		return -ENOMEM;
038b1a05eae666 Ronald Tschalär 2019-07-15  1641  
038b1a05eae666 Ronald Tschalär 2019-07-15  1642  	applespi->spi = spi;
038b1a05eae666 Ronald Tschalär 2019-07-15  1643  
038b1a05eae666 Ronald Tschalär 2019-07-15  1644  	INIT_WORK(&applespi->work, applespi_worker);
038b1a05eae666 Ronald Tschalär 2019-07-15  1645  
038b1a05eae666 Ronald Tschalär 2019-07-15  1646  	/* store the driver data */
038b1a05eae666 Ronald Tschalär 2019-07-15  1647  	spi_set_drvdata(spi, applespi);
038b1a05eae666 Ronald Tschalär 2019-07-15  1648  
038b1a05eae666 Ronald Tschalär 2019-07-15  1649  	/* create our buffers */
038b1a05eae666 Ronald Tschalär 2019-07-15  1650  	applespi->tx_buffer = devm_kmalloc(&spi->dev, APPLESPI_PACKET_SIZE,
038b1a05eae666 Ronald Tschalär 2019-07-15  1651  					   GFP_KERNEL);
038b1a05eae666 Ronald Tschalär 2019-07-15  1652  	applespi->tx_status = devm_kmalloc(&spi->dev, APPLESPI_STATUS_SIZE,
038b1a05eae666 Ronald Tschalär 2019-07-15  1653  					   GFP_KERNEL);
038b1a05eae666 Ronald Tschalär 2019-07-15  1654  	applespi->rx_buffer = devm_kmalloc(&spi->dev, APPLESPI_PACKET_SIZE,
038b1a05eae666 Ronald Tschalär 2019-07-15  1655  					   GFP_KERNEL);
038b1a05eae666 Ronald Tschalär 2019-07-15  1656  	applespi->msg_buf = devm_kmalloc_array(&spi->dev, MAX_PKTS_PER_MSG,
038b1a05eae666 Ronald Tschalär 2019-07-15  1657  					       APPLESPI_PACKET_SIZE,
038b1a05eae666 Ronald Tschalär 2019-07-15  1658  					       GFP_KERNEL);
038b1a05eae666 Ronald Tschalär 2019-07-15  1659  
038b1a05eae666 Ronald Tschalär 2019-07-15  1660  	if (!applespi->tx_buffer || !applespi->tx_status ||
038b1a05eae666 Ronald Tschalär 2019-07-15  1661  	    !applespi->rx_buffer || !applespi->msg_buf)
038b1a05eae666 Ronald Tschalär 2019-07-15  1662  		return -ENOMEM;
038b1a05eae666 Ronald Tschalär 2019-07-15  1663  
038b1a05eae666 Ronald Tschalär 2019-07-15  1664  	/* set up our spi messages */
038b1a05eae666 Ronald Tschalär 2019-07-15  1665  	applespi_setup_read_txfrs(applespi);
038b1a05eae666 Ronald Tschalär 2019-07-15  1666  	applespi_setup_write_txfrs(applespi);
038b1a05eae666 Ronald Tschalär 2019-07-15  1667  
038b1a05eae666 Ronald Tschalär 2019-07-15  1668  	/* cache ACPI method handles */
038b1a05eae666 Ronald Tschalär 2019-07-15  1669  	acpi_sts = acpi_get_handle(spi_handle, "SIEN", &applespi->sien);
038b1a05eae666 Ronald Tschalär 2019-07-15  1670  	if (ACPI_FAILURE(acpi_sts)) {
038b1a05eae666 Ronald Tschalär 2019-07-15  1671  		dev_err(&applespi->spi->dev,
038b1a05eae666 Ronald Tschalär 2019-07-15  1672  			"Failed to get SIEN ACPI method handle: %s\n",
038b1a05eae666 Ronald Tschalär 2019-07-15  1673  			acpi_format_exception(acpi_sts));
038b1a05eae666 Ronald Tschalär 2019-07-15  1674  		return -ENODEV;
038b1a05eae666 Ronald Tschalär 2019-07-15  1675  	}
038b1a05eae666 Ronald Tschalär 2019-07-15  1676  
038b1a05eae666 Ronald Tschalär 2019-07-15  1677  	acpi_sts = acpi_get_handle(spi_handle, "SIST", &applespi->sist);
038b1a05eae666 Ronald Tschalär 2019-07-15  1678  	if (ACPI_FAILURE(acpi_sts)) {
038b1a05eae666 Ronald Tschalär 2019-07-15  1679  		dev_err(&applespi->spi->dev,
038b1a05eae666 Ronald Tschalär 2019-07-15  1680  			"Failed to get SIST ACPI method handle: %s\n",
038b1a05eae666 Ronald Tschalär 2019-07-15  1681  			acpi_format_exception(acpi_sts));
038b1a05eae666 Ronald Tschalär 2019-07-15  1682  		return -ENODEV;
038b1a05eae666 Ronald Tschalär 2019-07-15  1683  	}
038b1a05eae666 Ronald Tschalär 2019-07-15  1684  
038b1a05eae666 Ronald Tschalär 2019-07-15  1685  	/* switch on the SPI interface */
038b1a05eae666 Ronald Tschalär 2019-07-15  1686  	sts = applespi_setup_spi(applespi);
038b1a05eae666 Ronald Tschalär 2019-07-15  1687  	if (sts)
038b1a05eae666 Ronald Tschalär 2019-07-15  1688  		return sts;
038b1a05eae666 Ronald Tschalär 2019-07-15  1689  
038b1a05eae666 Ronald Tschalär 2019-07-15  1690  	sts = applespi_enable_spi(applespi);
038b1a05eae666 Ronald Tschalär 2019-07-15  1691  	if (sts)
038b1a05eae666 Ronald Tschalär 2019-07-15  1692  		return sts;
038b1a05eae666 Ronald Tschalär 2019-07-15  1693  
038b1a05eae666 Ronald Tschalär 2019-07-15  1694  	/* setup the keyboard input dev */
038b1a05eae666 Ronald Tschalär 2019-07-15  1695  	applespi->keyboard_input_dev = devm_input_allocate_device(&spi->dev);
038b1a05eae666 Ronald Tschalär 2019-07-15  1696  
038b1a05eae666 Ronald Tschalär 2019-07-15  1697  	if (!applespi->keyboard_input_dev)
038b1a05eae666 Ronald Tschalär 2019-07-15  1698  		return -ENOMEM;
038b1a05eae666 Ronald Tschalär 2019-07-15  1699  
038b1a05eae666 Ronald Tschalär 2019-07-15  1700  	applespi->keyboard_input_dev->name = "Apple SPI Keyboard";
038b1a05eae666 Ronald Tschalär 2019-07-15  1701  	applespi->keyboard_input_dev->phys = "applespi/input0";
038b1a05eae666 Ronald Tschalär 2019-07-15  1702  	applespi->keyboard_input_dev->dev.parent = &spi->dev;
038b1a05eae666 Ronald Tschalär 2019-07-15  1703  	applespi->keyboard_input_dev->id.bustype = BUS_SPI;
038b1a05eae666 Ronald Tschalär 2019-07-15  1704  
038b1a05eae666 Ronald Tschalär 2019-07-15  1705  	applespi->keyboard_input_dev->evbit[0] =
038b1a05eae666 Ronald Tschalär 2019-07-15  1706  			BIT_MASK(EV_KEY) | BIT_MASK(EV_LED) | BIT_MASK(EV_REP);
038b1a05eae666 Ronald Tschalär 2019-07-15  1707  	applespi->keyboard_input_dev->ledbit[0] = BIT_MASK(LED_CAPSL);
038b1a05eae666 Ronald Tschalär 2019-07-15  1708  
038b1a05eae666 Ronald Tschalär 2019-07-15  1709  	input_set_drvdata(applespi->keyboard_input_dev, applespi);
038b1a05eae666 Ronald Tschalär 2019-07-15  1710  	applespi->keyboard_input_dev->event = applespi_event;
038b1a05eae666 Ronald Tschalär 2019-07-15  1711  
038b1a05eae666 Ronald Tschalär 2019-07-15  1712  	for (i = 0; i < ARRAY_SIZE(applespi_scancodes); i++)
038b1a05eae666 Ronald Tschalär 2019-07-15  1713  		if (applespi_scancodes[i])
038b1a05eae666 Ronald Tschalär 2019-07-15  1714  			input_set_capability(applespi->keyboard_input_dev,
038b1a05eae666 Ronald Tschalär 2019-07-15  1715  					     EV_KEY, applespi_scancodes[i]);
038b1a05eae666 Ronald Tschalär 2019-07-15  1716  
038b1a05eae666 Ronald Tschalär 2019-07-15  1717  	for (i = 0; i < ARRAY_SIZE(applespi_controlcodes); i++)
038b1a05eae666 Ronald Tschalär 2019-07-15  1718  		if (applespi_controlcodes[i])
038b1a05eae666 Ronald Tschalär 2019-07-15  1719  			input_set_capability(applespi->keyboard_input_dev,
038b1a05eae666 Ronald Tschalär 2019-07-15  1720  					     EV_KEY, applespi_controlcodes[i]);
038b1a05eae666 Ronald Tschalär 2019-07-15  1721  
038b1a05eae666 Ronald Tschalär 2019-07-15  1722  	for (i = 0; i < ARRAY_SIZE(applespi_fn_codes); i++)
038b1a05eae666 Ronald Tschalär 2019-07-15  1723  		if (applespi_fn_codes[i].to)
038b1a05eae666 Ronald Tschalär 2019-07-15  1724  			input_set_capability(applespi->keyboard_input_dev,
038b1a05eae666 Ronald Tschalär 2019-07-15  1725  					     EV_KEY, applespi_fn_codes[i].to);
038b1a05eae666 Ronald Tschalär 2019-07-15  1726  
038b1a05eae666 Ronald Tschalär 2019-07-15  1727  	input_set_capability(applespi->keyboard_input_dev, EV_KEY, KEY_FN);
038b1a05eae666 Ronald Tschalär 2019-07-15  1728  
038b1a05eae666 Ronald Tschalär 2019-07-15  1729  	sts = input_register_device(applespi->keyboard_input_dev);
038b1a05eae666 Ronald Tschalär 2019-07-15  1730  	if (sts) {
038b1a05eae666 Ronald Tschalär 2019-07-15  1731  		dev_err(&applespi->spi->dev,
038b1a05eae666 Ronald Tschalär 2019-07-15  1732  			"Unable to register keyboard input device (%d)\n", sts);
038b1a05eae666 Ronald Tschalär 2019-07-15  1733  		return -ENODEV;
038b1a05eae666 Ronald Tschalär 2019-07-15  1734  	}
038b1a05eae666 Ronald Tschalär 2019-07-15  1735  
038b1a05eae666 Ronald Tschalär 2019-07-15  1736  	/*
038b1a05eae666 Ronald Tschalär 2019-07-15  1737  	 * The applespi device doesn't send interrupts normally (as is described
038b1a05eae666 Ronald Tschalär 2019-07-15  1738  	 * in its DSDT), but rather seems to use ACPI GPEs.
038b1a05eae666 Ronald Tschalär 2019-07-15  1739  	 */
038b1a05eae666 Ronald Tschalär 2019-07-15  1740  	acpi_sts = acpi_evaluate_integer(spi_handle, "_GPE", NULL, &gpe);
038b1a05eae666 Ronald Tschalär 2019-07-15  1741  	if (ACPI_FAILURE(acpi_sts)) {
038b1a05eae666 Ronald Tschalär 2019-07-15  1742  		dev_err(&applespi->spi->dev,
038b1a05eae666 Ronald Tschalär 2019-07-15  1743  			"Failed to obtain GPE for SPI slave device: %s\n",
038b1a05eae666 Ronald Tschalär 2019-07-15  1744  			acpi_format_exception(acpi_sts));
038b1a05eae666 Ronald Tschalär 2019-07-15  1745  		return -ENODEV;
038b1a05eae666 Ronald Tschalär 2019-07-15  1746  	}
038b1a05eae666 Ronald Tschalär 2019-07-15  1747  	applespi->gpe = (int)gpe;
038b1a05eae666 Ronald Tschalär 2019-07-15  1748  
038b1a05eae666 Ronald Tschalär 2019-07-15  1749  	acpi_sts = acpi_install_gpe_handler(NULL, applespi->gpe,
038b1a05eae666 Ronald Tschalär 2019-07-15  1750  					    ACPI_GPE_LEVEL_TRIGGERED,
038b1a05eae666 Ronald Tschalär 2019-07-15  1751  					    applespi_notify, applespi);
038b1a05eae666 Ronald Tschalär 2019-07-15  1752  	if (ACPI_FAILURE(acpi_sts)) {
038b1a05eae666 Ronald Tschalär 2019-07-15  1753  		dev_err(&applespi->spi->dev,
038b1a05eae666 Ronald Tschalär 2019-07-15  1754  			"Failed to install GPE handler for GPE %d: %s\n",
038b1a05eae666 Ronald Tschalär 2019-07-15  1755  			applespi->gpe, acpi_format_exception(acpi_sts));
038b1a05eae666 Ronald Tschalär 2019-07-15  1756  		return -ENODEV;
038b1a05eae666 Ronald Tschalär 2019-07-15  1757  	}
038b1a05eae666 Ronald Tschalär 2019-07-15  1758  
038b1a05eae666 Ronald Tschalär 2019-07-15  1759  	applespi->suspended = false;
038b1a05eae666 Ronald Tschalär 2019-07-15  1760  
038b1a05eae666 Ronald Tschalär 2019-07-15  1761  	acpi_sts = acpi_enable_gpe(NULL, applespi->gpe);
038b1a05eae666 Ronald Tschalär 2019-07-15  1762  	if (ACPI_FAILURE(acpi_sts)) {
038b1a05eae666 Ronald Tschalär 2019-07-15  1763  		dev_err(&applespi->spi->dev,
038b1a05eae666 Ronald Tschalär 2019-07-15  1764  			"Failed to enable GPE handler for GPE %d: %s\n",
038b1a05eae666 Ronald Tschalär 2019-07-15  1765  			applespi->gpe, acpi_format_exception(acpi_sts));
038b1a05eae666 Ronald Tschalär 2019-07-15  1766  		acpi_remove_gpe_handler(NULL, applespi->gpe, applespi_notify);
038b1a05eae666 Ronald Tschalär 2019-07-15  1767  		return -ENODEV;
038b1a05eae666 Ronald Tschalär 2019-07-15  1768  	}
038b1a05eae666 Ronald Tschalär 2019-07-15  1769  
038b1a05eae666 Ronald Tschalär 2019-07-15  1770  	/* trigger touchpad setup */
038b1a05eae666 Ronald Tschalär 2019-07-15  1771  	applespi_init(applespi, false);
038b1a05eae666 Ronald Tschalär 2019-07-15  1772  
038b1a05eae666 Ronald Tschalär 2019-07-15  1773  	/*
038b1a05eae666 Ronald Tschalär 2019-07-15  1774  	 * By default this device is not enabled for wakeup; but USB keyboards
038b1a05eae666 Ronald Tschalär 2019-07-15  1775  	 * generally are, so the expectation is that by default the keyboard
038b1a05eae666 Ronald Tschalär 2019-07-15  1776  	 * will wake the system.
038b1a05eae666 Ronald Tschalär 2019-07-15  1777  	 */
038b1a05eae666 Ronald Tschalär 2019-07-15  1778  	device_wakeup_enable(&spi->dev);
038b1a05eae666 Ronald Tschalär 2019-07-15  1779  
038b1a05eae666 Ronald Tschalär 2019-07-15  1780  	/* set up keyboard-backlight */
038b1a05eae666 Ronald Tschalär 2019-07-15  1781  	sts = applespi_get_saved_bl_level(applespi);
038b1a05eae666 Ronald Tschalär 2019-07-15  1782  	if (sts >= 0)
038b1a05eae666 Ronald Tschalär 2019-07-15  1783  		applespi_set_bl_level(&applespi->backlight_info, sts);
038b1a05eae666 Ronald Tschalär 2019-07-15  1784  
038b1a05eae666 Ronald Tschalär 2019-07-15  1785  	applespi->backlight_info.name            = "spi::kbd_backlight";
038b1a05eae666 Ronald Tschalär 2019-07-15  1786  	applespi->backlight_info.default_trigger = "kbd-backlight";
038b1a05eae666 Ronald Tschalär 2019-07-15  1787  	applespi->backlight_info.brightness_set  = applespi_set_bl_level;
038b1a05eae666 Ronald Tschalär 2019-07-15  1788  
038b1a05eae666 Ronald Tschalär 2019-07-15 @1789  	sts = devm_led_classdev_register(&spi->dev, &applespi->backlight_info);
038b1a05eae666 Ronald Tschalär 2019-07-15  1790  	if (sts)
038b1a05eae666 Ronald Tschalär 2019-07-15  1791  		dev_warn(&applespi->spi->dev,
038b1a05eae666 Ronald Tschalär 2019-07-15  1792  			 "Unable to register keyboard backlight class dev (%d)\n",
038b1a05eae666 Ronald Tschalär 2019-07-15  1793  			 sts);
038b1a05eae666 Ronald Tschalär 2019-07-15  1794  
038b1a05eae666 Ronald Tschalär 2019-07-15  1795  	/* set up debugfs entries for touchpad dimensions logging */
038b1a05eae666 Ronald Tschalär 2019-07-15  1796  	applespi->debugfs_root = debugfs_create_dir("applespi", NULL);
038b1a05eae666 Ronald Tschalär 2019-07-15  1797  	if (IS_ERR(applespi->debugfs_root)) {
038b1a05eae666 Ronald Tschalär 2019-07-15  1798  		if (PTR_ERR(applespi->debugfs_root) != -ENODEV)
038b1a05eae666 Ronald Tschalär 2019-07-15  1799  			dev_warn(&applespi->spi->dev,
038b1a05eae666 Ronald Tschalär 2019-07-15  1800  				 "Error creating debugfs root entry (%ld)\n",
038b1a05eae666 Ronald Tschalär 2019-07-15  1801  				 PTR_ERR(applespi->debugfs_root));
038b1a05eae666 Ronald Tschalär 2019-07-15  1802  	} else {
038b1a05eae666 Ronald Tschalär 2019-07-15  1803  		struct dentry *ret;
038b1a05eae666 Ronald Tschalär 2019-07-15  1804  
038b1a05eae666 Ronald Tschalär 2019-07-15  1805  		ret = debugfs_create_bool("enable_tp_dim", 0600,
038b1a05eae666 Ronald Tschalär 2019-07-15  1806  					  applespi->debugfs_root,
038b1a05eae666 Ronald Tschalär 2019-07-15  1807  					  &applespi->debug_tp_dim);
038b1a05eae666 Ronald Tschalär 2019-07-15  1808  		if (IS_ERR(ret))
038b1a05eae666 Ronald Tschalär 2019-07-15  1809  			dev_dbg(&applespi->spi->dev,
038b1a05eae666 Ronald Tschalär 2019-07-15  1810  				"Error creating debugfs entry enable_tp_dim (%ld)\n",
038b1a05eae666 Ronald Tschalär 2019-07-15  1811  				PTR_ERR(ret));
038b1a05eae666 Ronald Tschalär 2019-07-15  1812  
038b1a05eae666 Ronald Tschalär 2019-07-15  1813  		ret = debugfs_create_file("tp_dim", 0400,
038b1a05eae666 Ronald Tschalär 2019-07-15  1814  					  applespi->debugfs_root, applespi,
038b1a05eae666 Ronald Tschalär 2019-07-15  1815  					  &applespi_tp_dim_fops);
038b1a05eae666 Ronald Tschalär 2019-07-15  1816  		if (IS_ERR(ret))
038b1a05eae666 Ronald Tschalär 2019-07-15  1817  			dev_dbg(&applespi->spi->dev,
038b1a05eae666 Ronald Tschalär 2019-07-15  1818  				"Error creating debugfs entry tp_dim (%ld)\n",
038b1a05eae666 Ronald Tschalär 2019-07-15  1819  				PTR_ERR(ret));
038b1a05eae666 Ronald Tschalär 2019-07-15  1820  	}
038b1a05eae666 Ronald Tschalär 2019-07-15  1821  
038b1a05eae666 Ronald Tschalär 2019-07-15  1822  	return 0;
038b1a05eae666 Ronald Tschalär 2019-07-15  1823  }
038b1a05eae666 Ronald Tschalär 2019-07-15  1824  

:::::: The code at line 1789 was first introduced by commit
:::::: 038b1a05eae6666b731920e46f47d8e2332e07ff Input: add Apple SPI keyboard and trackpad driver

:::::: TO: Ronald Tschalär <ronald@xxxxxxxxxxxxx>
:::::: CC: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>

---
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 ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux