devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Jameson Thies <jthies@google.com>,
	tzungbi@kernel.org, ukaszb@chromium.org, bleung@chromium.org,
	heikki.krogerus@linux.intel.com, robh+dt@kernel.org,
	krzysztof.kozlowski+dt@linaro.org, groeck@chromium.org,
	swboyd@chromium.org, akuchynski@chromium.org
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	devicetree@vger.kernel.org, chrome-platform@lists.linux.dev,
	linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
	Jameson Thies <jthies@google.com>
Subject: Re: [PATCH v1 3/3] mfd: cros_ec: Don't add cros_ec_ucsi if it is defined in OF or ACPI
Date: Fri, 14 Mar 2025 00:07:58 +0800	[thread overview]
Message-ID: <202503132357.RnlF5A0E-lkp@intel.com> (raw)
In-Reply-To: <20250312195951.1579682-4-jthies@google.com>

Hi Jameson,

kernel test robot noticed the following build errors:

[auto build test ERROR on 9fc83373f0ffb8834da48b1446a5c2fef9525bb1]

url:    https://github.com/intel-lab-lkp/linux/commits/Jameson-Thies/dt-bindings-Add-cros-ec-ucsi-to-cros-ec-typec-device-tree-documentation/20250313-040216
base:   9fc83373f0ffb8834da48b1446a5c2fef9525bb1
patch link:    https://lore.kernel.org/r/20250312195951.1579682-4-jthies%40google.com
patch subject: [PATCH v1 3/3] mfd: cros_ec: Don't add cros_ec_ucsi if it is defined in OF or ACPI
config: x86_64-buildonly-randconfig-003-20250313 (https://download.01.org/0day-ci/archive/20250313/202503132357.RnlF5A0E-lkp@intel.com/config)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250313/202503132357.RnlF5A0E-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/202503132357.RnlF5A0E-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/mfd/cros_ec_dev.c:273:12: error: incompatible function pointer types passing 'int (struct device *, void *)' to parameter of type 'device_match_t' (aka 'int (*)(struct device *, const void *)') [-Wincompatible-function-pointer-types]
     273 |                                                             ucsi_acpi_match);
         |                                                             ^~~~~~~~~~~~~~~
   include/linux/device.h:1101:21: note: passing argument to parameter 'match' here
    1101 |                                  device_match_t match);
         |                                                 ^
   1 error generated.


vim +273 drivers/mfd/cros_ec_dev.c

   181	
   182	static int ec_device_probe(struct platform_device *pdev)
   183	{
   184		int retval = -ENOMEM;
   185		struct device_node *node;
   186		struct device *dev = &pdev->dev;
   187		struct cros_ec_platform *ec_platform = dev_get_platdata(dev);
   188		struct cros_ec_dev *ec = kzalloc(sizeof(*ec), GFP_KERNEL);
   189		struct ec_response_pchg_count pchg_count;
   190		int i;
   191	
   192		if (!ec)
   193			return retval;
   194	
   195		dev_set_drvdata(dev, ec);
   196		ec->ec_dev = dev_get_drvdata(dev->parent);
   197		ec->dev = dev;
   198		ec->cmd_offset = ec_platform->cmd_offset;
   199		ec->features.flags[0] = -1U; /* Not cached yet */
   200		ec->features.flags[1] = -1U; /* Not cached yet */
   201		device_initialize(&ec->class_dev);
   202	
   203		for (i = 0; i < ARRAY_SIZE(cros_mcu_devices); i++) {
   204			/*
   205			 * Check whether this is actually a dedicated MCU rather
   206			 * than an standard EC.
   207			 */
   208			if (cros_ec_check_features(ec, cros_mcu_devices[i].id)) {
   209				dev_info(dev, "CrOS %s MCU detected\n",
   210					 cros_mcu_devices[i].desc);
   211				/*
   212				 * Help userspace differentiating ECs from other MCU,
   213				 * regardless of the probing order.
   214				 */
   215				ec_platform->ec_name = cros_mcu_devices[i].name;
   216				break;
   217			}
   218		}
   219	
   220		/*
   221		 * Add the class device
   222		 */
   223		ec->class_dev.class = &cros_class;
   224		ec->class_dev.parent = dev;
   225		ec->class_dev.release = cros_ec_class_release;
   226	
   227		retval = dev_set_name(&ec->class_dev, "%s", ec_platform->ec_name);
   228		if (retval) {
   229			dev_err(dev, "dev_set_name failed => %d\n", retval);
   230			goto failed;
   231		}
   232	
   233		retval = device_add(&ec->class_dev);
   234		if (retval)
   235			goto failed;
   236	
   237		/* check whether this EC is a sensor hub. */
   238		if (cros_ec_get_sensor_count(ec) > 0) {
   239			retval = mfd_add_hotplug_devices(ec->dev,
   240					cros_ec_sensorhub_cells,
   241					ARRAY_SIZE(cros_ec_sensorhub_cells));
   242			if (retval)
   243				dev_err(ec->dev, "failed to add %s subdevice: %d\n",
   244					cros_ec_sensorhub_cells->name, retval);
   245		}
   246	
   247		/*
   248		 * The following subdevices can be detected by sending the
   249		 * EC_FEATURE_GET_CMD Embedded Controller device.
   250		 */
   251		for (i = 0; i < ARRAY_SIZE(cros_subdevices); i++) {
   252			if (cros_ec_check_features(ec, cros_subdevices[i].id)) {
   253				retval = mfd_add_hotplug_devices(ec->dev,
   254							cros_subdevices[i].mfd_cells,
   255							cros_subdevices[i].num_cells);
   256				if (retval)
   257					dev_err(ec->dev,
   258						"failed to add %s subdevice: %d\n",
   259						cros_subdevices[i].mfd_cells->name,
   260						retval);
   261			}
   262		}
   263	
   264		/*
   265		 * FW nodes can load cros_ec_ucsi, but early PDC devices did not define
   266		 * the required nodes. On PDC systems without FW nodes for cros_ec_ucsi,
   267		 * the driver should be added as an mfd subdevice.
   268		 */
   269		if (cros_ec_check_features(ec, EC_FEATURE_USB_PD) &&
   270		    cros_ec_check_features(ec, EC_FEATURE_UCSI_PPM)) {
   271			struct device *acpi_dev = device_find_child(ec->ec_dev->dev,
   272								    NULL,
 > 273								    ucsi_acpi_match);
   274	
   275			if (!!acpi_dev) {
   276				put_device(acpi_dev);
   277			} else if (!of_find_compatible_node(NULL, NULL, "google,cros-ec-ucsi")) {
   278				retval = mfd_add_hotplug_devices(ec->dev,
   279							cros_ec_ucsi_cells,
   280							ARRAY_SIZE(cros_ec_ucsi_cells));
   281				if (retval)
   282					dev_warn(ec->dev,
   283						 "failed to add cros_ec_ucsi: %d\n",
   284						 retval);
   285			}
   286		}
   287	
   288		/*
   289		 * UCSI provides power supply information so we don't need to separately
   290		 * load the cros_usbpd_charger driver.
   291		 */
   292		if (cros_ec_check_features(ec, EC_FEATURE_USB_PD) &&
   293		    !cros_ec_check_features(ec, EC_FEATURE_UCSI_PPM)) {
   294			retval = mfd_add_hotplug_devices(ec->dev,
   295							 cros_usbpd_charger_cells,
   296							 ARRAY_SIZE(cros_usbpd_charger_cells));
   297	
   298			if (retval)
   299				dev_warn(ec->dev, "failed to add usbpd-charger: %d\n",
   300					 retval);
   301		}
   302	
   303		/*
   304		 * Lightbar is a special case. Newer devices support autodetection,
   305		 * but older ones do not.
   306		 */
   307		if (cros_ec_check_features(ec, EC_FEATURE_LIGHTBAR) ||
   308		    dmi_match(DMI_PRODUCT_NAME, "Link")) {
   309			retval = mfd_add_hotplug_devices(ec->dev,
   310						cros_ec_lightbar_cells,
   311						ARRAY_SIZE(cros_ec_lightbar_cells));
   312			if (retval)
   313				dev_warn(ec->dev, "failed to add lightbar: %d\n",
   314					 retval);
   315		}
   316	
   317		/*
   318		 * The PD notifier driver cell is separate since it only needs to be
   319		 * explicitly added on platforms that don't have the PD notifier ACPI
   320		 * device entry defined.
   321		 */
   322		if (IS_ENABLED(CONFIG_OF) && ec->ec_dev->dev->of_node) {
   323			if (cros_ec_check_features(ec, EC_FEATURE_USB_PD)) {
   324				retval = mfd_add_hotplug_devices(ec->dev,
   325						cros_usbpd_notify_cells,
   326						ARRAY_SIZE(cros_usbpd_notify_cells));
   327				if (retval)
   328					dev_err(ec->dev,
   329						"failed to add PD notify devices: %d\n",
   330						retval);
   331			}
   332		}
   333	
   334		/*
   335		 * The PCHG device cannot be detected by sending EC_FEATURE_GET_CMD, but
   336		 * it can be detected by querying the number of peripheral chargers.
   337		 */
   338		retval = cros_ec_cmd(ec->ec_dev, 0, EC_CMD_PCHG_COUNT, NULL, 0,
   339				     &pchg_count, sizeof(pchg_count));
   340		if (retval >= 0 && pchg_count.port_count) {
   341			retval = mfd_add_hotplug_devices(ec->dev,
   342						cros_ec_pchg_cells,
   343						ARRAY_SIZE(cros_ec_pchg_cells));
   344			if (retval)
   345				dev_warn(ec->dev, "failed to add pchg: %d\n",
   346					 retval);
   347		}
   348	
   349		/*
   350		 * The following subdevices cannot be detected by sending the
   351		 * EC_FEATURE_GET_CMD to the Embedded Controller device.
   352		 */
   353		retval = mfd_add_hotplug_devices(ec->dev, cros_ec_platform_cells,
   354						 ARRAY_SIZE(cros_ec_platform_cells));
   355		if (retval)
   356			dev_warn(ec->dev,
   357				 "failed to add cros-ec platform devices: %d\n",
   358				 retval);
   359	
   360		/* Check whether this EC instance has a VBC NVRAM */
   361		node = ec->ec_dev->dev->of_node;
   362		if (of_property_read_bool(node, "google,has-vbc-nvram")) {
   363			retval = mfd_add_hotplug_devices(ec->dev, cros_ec_vbc_cells,
   364							ARRAY_SIZE(cros_ec_vbc_cells));
   365			if (retval)
   366				dev_warn(ec->dev, "failed to add VBC devices: %d\n",
   367					 retval);
   368		}
   369	
   370		return 0;
   371	
   372	failed:
   373		put_device(&ec->class_dev);
   374		return retval;
   375	}
   376	

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

  parent reply	other threads:[~2025-03-13 16:08 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-12 19:59 [PATCH v1 0/3] Load cros_ec_ucsi from OF and ACPI definitions Jameson Thies
2025-03-12 19:59 ` [PATCH v1 1/3] dt-bindings: Add cros-ec-ucsi to cros-ec-typec device tree documentation Jameson Thies
2025-03-13  7:10   ` Krzysztof Kozlowski
2025-03-13  7:13   ` Krzysztof Kozlowski
2025-03-13 23:23     ` Jameson Thies
2025-03-12 19:59 ` [PATCH v1 2/3] usb: typec: cros_ec_ucsi: Load driver from OF and ACPI definitions Jameson Thies
2025-03-12 19:59 ` [PATCH v1 3/3] mfd: cros_ec: Don't add cros_ec_ucsi if it is defined in OF or ACPI Jameson Thies
2025-03-13  7:11   ` Krzysztof Kozlowski
2025-03-13  7:46     ` Krzysztof Kozlowski
2025-03-13 14:53   ` kernel test robot
2025-03-13 16:07   ` kernel test robot [this message]
2025-03-13 23:29     ` Jameson Thies
  -- strict thread matches above, loose matches on Subject: below --
2025-09-30  1:23 [PATCH v1 0/3] Load cros_ec_ucsi from OF and ACPI definitions Jameson Thies
2025-09-30  1:23 ` [PATCH v1 3/3] mfd: cros_ec: Don't add cros_ec_ucsi if it is defined in OF or ACPI Jameson Thies

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=202503132357.RnlF5A0E-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=akuchynski@chromium.org \
    --cc=bleung@chromium.org \
    --cc=chrome-platform@lists.linux.dev \
    --cc=devicetree@vger.kernel.org \
    --cc=groeck@chromium.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=jthies@google.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=robh+dt@kernel.org \
    --cc=swboyd@chromium.org \
    --cc=tzungbi@kernel.org \
    --cc=ukaszb@chromium.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).