Hi Sui, kernel test robot noticed the following build warnings: [auto build test WARNING on drm-misc/drm-misc-next] [also build test WARNING on linus/master v6.7-rc2 next-20231120] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Sui-Jingfeng/drm-bridge-it66121-Use-dev-replace-ctx-dev-in-the-it66121_probe/20231114-231203 base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next patch link: https://lore.kernel.org/r/20231114150130.497915-9-sui.jingfeng%40linux.dev patch subject: [PATCH 8/8] drm/bridge: it66121: Allow link this driver as a lib config: x86_64-buildonly-randconfig-004-20231120 (https://download.01.org/0day-ci/archive/20231120/202311201649.qjEbx5YL-lkp@xxxxxxxxx/config) compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231120/202311201649.qjEbx5YL-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202311201649.qjEbx5YL-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> drivers/gpu/drm/bridge/ite-it66121.c:1654:5: warning: no previous prototype for function 'it66121_create_bridge' [-Wmissing-prototypes] int it66121_create_bridge(struct i2c_client *client, bool of_support, ^ drivers/gpu/drm/bridge/ite-it66121.c:1654:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int it66121_create_bridge(struct i2c_client *client, bool of_support, ^ static >> drivers/gpu/drm/bridge/ite-it66121.c:1752:6: warning: no previous prototype for function 'it66121_destroy_bridge' [-Wmissing-prototypes] void it66121_destroy_bridge(struct drm_bridge *bridge) ^ drivers/gpu/drm/bridge/ite-it66121.c:1752:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void it66121_destroy_bridge(struct drm_bridge *bridge) ^ static 2 warnings generated. vim +/it66121_create_bridge +1654 drivers/gpu/drm/bridge/ite-it66121.c 1653 > 1654 int it66121_create_bridge(struct i2c_client *client, bool of_support, 1655 bool hpd_support, bool audio_support, 1656 struct drm_bridge **bridge) 1657 { 1658 struct device *dev = &client->dev; 1659 int ret; 1660 struct it66121_ctx *ctx; 1661 1662 ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); 1663 if (!ctx) 1664 return -ENOMEM; 1665 1666 ctx->dev = dev; 1667 ctx->client = client; 1668 mutex_init(&ctx->lock); 1669 1670 if (of_support) { 1671 ret = it66121_of_read_bus_width(dev, &ctx->bus_width); 1672 if (ret) 1673 return ret; 1674 1675 ret = it66121_of_get_next_bridge(dev, &ctx->next_bridge); 1676 if (ret) 1677 return ret; 1678 } else { 1679 ctx->bus_width = 24; 1680 ctx->next_bridge = NULL; 1681 } 1682 1683 it66121_hw_reset(ctx); 1684 1685 ctx->regmap = devm_regmap_init_i2c(client, &it66121_regmap_config); 1686 if (IS_ERR(ctx->regmap)) 1687 return PTR_ERR(ctx->regmap); 1688 1689 ret = it66121_read_chip_id(ctx, false); 1690 if (ret) 1691 return ret; 1692 1693 ctx->info = it66121_get_match_data(ctx->vender_id, ctx->device_id); 1694 if (!ctx->info) 1695 return -ENODEV; 1696 1697 if (hpd_support) { 1698 ret = devm_request_threaded_irq(dev, client->irq, NULL, 1699 it66121_irq_threaded_handler, 1700 IRQF_ONESHOT, dev_name(dev), 1701 ctx); 1702 if (ret < 0) { 1703 dev_err(dev, "Failed to request irq: %d\n", ret); 1704 return ret; 1705 } 1706 } 1707 1708 it66121_bridge_init_base(&ctx->bridge, dev->of_node, true); 1709 1710 if (audio_support) 1711 it66121_audio_codec_init(ctx, dev); 1712 1713 *bridge = &ctx->bridge; 1714 1715 dev_info(dev, "IT66121 probed, chip id: 0x%x:0x%x, revision: %u\n", 1716 ctx->vender_id, ctx->device_id, ctx->revision); 1717 1718 return 0; 1719 } 1720 EXPORT_SYMBOL_GPL(it66121_create_bridge); 1721 1722 static int it66121_probe(struct i2c_client *client) 1723 { 1724 struct device *dev = &client->dev; 1725 struct it66121_ctx *ctx; 1726 struct drm_bridge *bridge; 1727 int ret; 1728 1729 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { 1730 dev_err(dev, "I2C check functionality failed.\n"); 1731 return -ENXIO; 1732 } 1733 1734 ret = devm_regulator_bulk_get_enable(dev, ARRAY_SIZE(it66121_supplies), 1735 it66121_supplies); 1736 if (ret) { 1737 dev_err(dev, "Failed to enable power supplies\n"); 1738 return ret; 1739 } 1740 1741 ret = it66121_create_bridge(client, true, true, true, &bridge); 1742 if (ret) 1743 return ret; 1744 1745 ctx = bridge_to_it66121(bridge); 1746 1747 i2c_set_clientdata(client, ctx); 1748 1749 return 0; 1750 } 1751 > 1752 void it66121_destroy_bridge(struct drm_bridge *bridge) 1753 { 1754 struct it66121_ctx *ctx = bridge_to_it66121(bridge); 1755 1756 drm_bridge_remove(bridge); 1757 1758 mutex_destroy(&ctx->lock); 1759 } 1760 EXPORT_SYMBOL_GPL(it66121_destroy_bridge); 1761 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki