All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Hans de Goede" <hdegoede@redhat.com>,
	"Pali Rohár" <pali@kernel.org>,
	"Jean Delvare" <jdelvare@suse.com>,
	"Andi Shyti" <andi.shyti@kernel.org>,
	"Eric Piel" <eric.piel@tremplin-utc.net>
Cc: oe-kbuild-all@lists.linux.dev,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Paul Menzel" <pmenzel@molgen.mpg.de>,
	"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
	"Andy Shevchenko" <andy@kernel.org>,
	Dell.Client.Kernel@dell.com, "Marius Hoch" <mail@mariushoch.de>,
	"Kai Heng Feng" <kai.heng.feng@canonical.com>,
	"Wolfram Sang" <wsa-dev@sang-engineering.com>,
	platform-driver-x86@vger.kernel.org, linux-i2c@vger.kernel.org
Subject: Re: [PATCH 3/6] platform/x86: dell-smo8800: Move instantiation of lis3lv02d i2c_client from i2c-i801 to dell-smo8800
Date: Mon, 8 Jan 2024 17:40:52 +0800	[thread overview]
Message-ID: <202401081755.B1WHdRuF-lkp@intel.com> (raw)
In-Reply-To: <20231224213629.395741-4-hdegoede@redhat.com>

Hi Hans,

kernel test robot noticed the following build errors:

[auto build test ERROR on linus/master]
[also build test ERROR on v6.7]
[cannot apply to wsa/i2c/for-next next-20240108]
[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/Hans-de-Goede/platform-x86-dell-smo8800-Only-load-on-Dell-laptops/20231225-152720
base:   linus/master
patch link:    https://lore.kernel.org/r/20231224213629.395741-4-hdegoede%40redhat.com
patch subject: [PATCH 3/6] platform/x86: dell-smo8800: Move instantiation of lis3lv02d i2c_client from i2c-i801 to dell-smo8800
config: i386-randconfig-003-20240106 (https://download.01.org/0day-ci/archive/20240108/202401081755.B1WHdRuF-lkp@intel.com/config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240108/202401081755.B1WHdRuF-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202401081755.B1WHdRuF-lkp@intel.com/

All errors (new ones prefixed by >>):

   ld: drivers/platform/x86/dell/dell-smo8800.o: in function `smo8800_remove':
>> drivers/platform/x86/dell/dell-smo8800.c:278: undefined reference to `i2c_unregister_device'
   ld: drivers/platform/x86/dell/dell-smo8800.o: in function `smo8800_instantiate_i2c_client':
>> drivers/platform/x86/dell/dell-smo8800.c:179: undefined reference to `i2c_bus_type'
>> ld: drivers/platform/x86/dell/dell-smo8800.c:211: undefined reference to `i2c_put_adapter'
   ld: drivers/platform/x86/dell/dell-smo8800.o: in function `smo8800_probe':
   drivers/platform/x86/dell/dell-smo8800.c:267: undefined reference to `i2c_unregister_device'
   ld: drivers/platform/x86/dell/dell-smo8800.o: in function `smo8800_instantiate_i2c_client':
   drivers/platform/x86/dell/dell-smo8800.c:201: undefined reference to `i2c_new_client_device'
   ld: drivers/platform/x86/dell/dell-smo8800.o: in function `smo8800_find_i801':
>> drivers/platform/x86/dell/dell-smo8800.c:126: undefined reference to `i2c_verify_adapter'
>> ld: drivers/platform/x86/dell/dell-smo8800.c:140: undefined reference to `i2c_get_adapter'


vim +278 drivers/platform/x86/dell/dell-smo8800.c

   111	
   112	static int smo8800_find_i801(struct device *dev, void *data)
   113	{
   114		static const u16 i801_idf_pci_device_ids[] = {
   115			0x1d70, /* Patsburg (PCH) */
   116			0x1d71, /* Patsburg (PCH) */
   117			0x1d72, /* Patsburg (PCH) */
   118			0x8d7d, /* Wellsburg (PCH) */
   119			0x8d7e, /* Wellsburg (PCH) */
   120			0x8d7f, /* Wellsburg (PCH) */
   121		};
   122		struct i2c_adapter *adap, **adap_ret = data;
   123		struct pci_dev *pdev;
   124		int i;
   125	
 > 126		adap = i2c_verify_adapter(dev);
   127		if (!adap)
   128			return 0;
   129	
   130		if (!strstarts(adap->name, "SMBus I801 adapter"))
   131			return 0;
   132	
   133		/* The parent of an I801 adapter is always a PCI device */
   134		pdev = to_pci_dev(adap->dev.parent);
   135		for (i = 0; i < ARRAY_SIZE(i801_idf_pci_device_ids); i++) {
   136			if (pdev->device == i801_idf_pci_device_ids[i])
   137				return 0; /* Only register client on main SMBus channel */
   138		}
   139	
 > 140		*adap_ret = i2c_get_adapter(adap->nr);
   141		return 1;
   142	}
   143	
   144	/*
   145	 * Accelerometer's I2C address is not specified in DMI nor ACPI,
   146	 * so it is needed to define mapping table based on DMI product names.
   147	 */
   148	static const struct {
   149		const char *dmi_product_name;
   150		unsigned short i2c_addr;
   151	} dell_lis3lv02d_devices[] = {
   152		/*
   153		 * Dell platform team told us that these Latitude devices have
   154		 * ST microelectronics accelerometer at I2C address 0x29.
   155		 */
   156		{ "Latitude E5250",     0x29 },
   157		{ "Latitude E5450",     0x29 },
   158		{ "Latitude E5550",     0x29 },
   159		{ "Latitude E6440",     0x29 },
   160		{ "Latitude E6440 ATG", 0x29 },
   161		{ "Latitude E6540",     0x29 },
   162		/*
   163		 * Additional individual entries were added after verification.
   164		 */
   165		{ "Latitude 5480",      0x29 },
   166		{ "Latitude E6330",     0x29 },
   167		{ "Vostro V131",        0x1d },
   168		{ "Vostro 5568",        0x29 },
   169	};
   170	
   171	static void smo8800_instantiate_i2c_client(struct smo8800_device *smo8800)
   172	{
   173		struct i2c_board_info info = { };
   174		struct i2c_adapter *adap = NULL;
   175		const char *dmi_product_name;
   176		u8 addr = 0;
   177		int i;
   178	
 > 179		bus_for_each_dev(&i2c_bus_type, NULL, &adap, smo8800_find_i801);
   180		if (!adap)
   181			return;
   182	
   183		dmi_product_name = dmi_get_system_info(DMI_PRODUCT_NAME);
   184		for (i = 0; i < ARRAY_SIZE(dell_lis3lv02d_devices); ++i) {
   185			if (strcmp(dmi_product_name,
   186				   dell_lis3lv02d_devices[i].dmi_product_name) == 0) {
   187				addr = dell_lis3lv02d_devices[i].i2c_addr;
   188				break;
   189			}
   190		}
   191	
   192		if (!addr) {
   193			dev_warn(smo8800->dev,
   194				 "Accelerometer lis3lv02d is present on SMBus but its address is unknown, skipping registration\n");
   195			goto put_adapter;
   196		}
   197	
   198		info.addr = addr;
   199		strscpy(info.type, "lis3lv02d", I2C_NAME_SIZE);
   200	
   201		smo8800->i2c_dev = i2c_new_client_device(adap, &info);
   202		if (IS_ERR(smo8800->i2c_dev)) {
   203			dev_err_probe(smo8800->dev, PTR_ERR(smo8800->i2c_dev),
   204				      "registering accel i2c_client\n");
   205			smo8800->i2c_dev = NULL;
   206		} else {
   207			dev_info(smo8800->dev, "Registered %s accelerometer on address 0x%02x\n",
   208				 info.type, info.addr);
   209		}
   210	put_adapter:
 > 211		i2c_put_adapter(adap);
   212	}
   213	
   214	static int smo8800_probe(struct platform_device *device)
   215	{
   216		int err;
   217		struct smo8800_device *smo8800;
   218	
   219		if (!dmi_match(DMI_SYS_VENDOR, "Dell Inc."))
   220			return false;
   221	
   222		smo8800 = devm_kzalloc(&device->dev, sizeof(*smo8800), GFP_KERNEL);
   223		if (!smo8800) {
   224			dev_err(&device->dev, "failed to allocate device data\n");
   225			return -ENOMEM;
   226		}
   227	
   228		smo8800->dev = &device->dev;
   229		smo8800->miscdev.minor = MISC_DYNAMIC_MINOR;
   230		smo8800->miscdev.name = "freefall";
   231		smo8800->miscdev.fops = &smo8800_misc_fops;
   232	
   233		init_waitqueue_head(&smo8800->misc_wait);
   234	
   235		err = platform_get_irq(device, 0);
   236		if (err < 0)
   237			return err;
   238		smo8800->irq = err;
   239	
   240		smo8800_instantiate_i2c_client(smo8800);
   241	
   242		err = misc_register(&smo8800->miscdev);
   243		if (err) {
   244			dev_err(&device->dev, "failed to register misc dev: %d\n", err);
   245			goto error_unregister_i2c_client;
   246		}
   247	
   248		err = request_threaded_irq(smo8800->irq, smo8800_interrupt_quick,
   249					   smo8800_interrupt_thread,
   250					   IRQF_TRIGGER_RISING | IRQF_ONESHOT,
   251					   DRIVER_NAME, smo8800);
   252		if (err) {
   253			dev_err(&device->dev,
   254				"failed to request thread for IRQ %d: %d\n",
   255				smo8800->irq, err);
   256			goto error;
   257		}
   258	
   259		dev_dbg(&device->dev, "device /dev/freefall registered with IRQ %d\n",
   260			 smo8800->irq);
   261		platform_set_drvdata(device, smo8800);
   262		return 0;
   263	
   264	error:
   265		misc_deregister(&smo8800->miscdev);
   266	error_unregister_i2c_client:
   267		i2c_unregister_device(smo8800->i2c_dev);
   268		return err;
   269	}
   270	
   271	static void smo8800_remove(struct platform_device *device)
   272	{
   273		struct smo8800_device *smo8800 = platform_get_drvdata(device);
   274	
   275		free_irq(smo8800->irq, smo8800);
   276		misc_deregister(&smo8800->miscdev);
   277		dev_dbg(&device->dev, "device /dev/freefall unregistered\n");
 > 278		i2c_unregister_device(smo8800->i2c_dev);
   279	}
   280	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  parent reply	other threads:[~2024-01-08  9:41 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-24 21:36 [PATCH 0/6] i2c-i801 / dell-smo8800: Move instantiation of lis3lv02d i2c_client from i2c-i801 to dell-smo8800 Hans de Goede
2023-12-24 21:36 ` [PATCH 1/6] platform/x86: dell-smo8800: Only load on Dell laptops Hans de Goede
2023-12-24 21:48   ` Pali Rohár
2024-01-05 16:25     ` Hans de Goede
2023-12-24 21:36 ` [PATCH 2/6] platform/x86: dell-smo8800: Change probe() ordering a bit Hans de Goede
2023-12-24 21:36 ` [PATCH 3/6] platform/x86: dell-smo8800: Move instantiation of lis3lv02d i2c_client from i2c-i801 to dell-smo8800 Hans de Goede
2023-12-24 21:55   ` Pali Rohár
2024-01-05 16:31     ` Hans de Goede
2024-01-05 18:26       ` Pali Rohár
2024-01-06 12:13         ` Hans de Goede
2024-01-06 12:16           ` Pali Rohár
2023-12-25 20:00   ` Andy Shevchenko
2024-01-08  9:40   ` kernel test robot [this message]
2023-12-24 21:36 ` [PATCH 4/6] platform/x86: dell-smo8800: Pass the IRQ to the lis3lv02d i2c_client Hans de Goede
2024-01-08 17:28   ` kernel test robot
2023-12-24 21:36 ` [PATCH 5/6] platform/x86: dell-smo8800: Instantiate an i2c_client for the IIO st_accel driver Hans de Goede
2023-12-24 22:03   ` Pali Rohár
2024-01-05 16:34     ` Hans de Goede
2024-01-05 18:33       ` Pali Rohár
2024-01-05 18:37       ` Andy Shevchenko
2024-01-05 19:04         ` Andy Shevchenko
2024-01-05 19:20           ` Pali Rohár
2024-01-05 19:46             ` Hans de Goede
2024-01-09  2:00   ` kernel test robot
2023-12-24 21:36 ` [PATCH 6/6] platform/x86: dell-smo8800: Add support for probing for the accelerometer i2c address Hans de Goede
2023-12-24 22:07   ` Pali Rohár
2024-01-05 16:36     ` Hans de Goede
2024-01-05 18:51       ` Pali Rohár
2024-01-06 14:30         ` Hans de Goede
2024-01-08 13:22       ` Dell contacts (was: [PATCH 6/6] platform/x86: dell-smo8800: Add support for probing for the accelerometer i2c address) Paul Menzel
2024-01-08 14:06         ` Greg KH
2024-01-06 14:23 ` [PATCH 0/6] i2c-i801 / dell-smo8800: Move instantiation of lis3lv02d i2c_client from i2c-i801 to dell-smo8800 Paul Menzel
2024-01-06 16:15   ` Hans de Goede
2024-01-08 11:29     ` Paul Menzel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202401081755.B1WHdRuF-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=Dell.Client.Kernel@dell.com \
    --cc=andi.shyti@kernel.org \
    --cc=andy@kernel.org \
    --cc=eric.piel@tremplin-utc.net \
    --cc=hdegoede@redhat.com \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=jdelvare@suse.com \
    --cc=kai.heng.feng@canonical.com \
    --cc=linux-i2c@vger.kernel.org \
    --cc=mail@mariushoch.de \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=pali@kernel.org \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=pmenzel@molgen.mpg.de \
    --cc=wsa-dev@sang-engineering.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.