All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH 2/2] platform/chrome: reserve only the I/O ports required for the MEC EC
Date: Sun, 09 Jan 2022 07:03:20 +0800	[thread overview]
Message-ID: <202201090725.PnArnVcv-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 11214 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20220105031242.287751-3-dustin@howett.net>
References: <20220105031242.287751-3-dustin@howett.net>
TO: "Dustin L. Howett" <dustin@howett.net>
TO: linux-kernel(a)vger.kernel.org
CC: Benson Leung <bleung@chromium.org>
CC: Guenter Roeck <groeck@chromium.org>
CC: "Dustin L. Howett" <dustin@howett.net>

Hi "Dustin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on chrome-platform/for-next]
[also build test WARNING on linux/master linus/master v5.16-rc8 next-20220107]
[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]

url:    https://github.com/0day-ci/linux/commits/Dustin-L-Howett/platform-chrome-Add-support-for-the-Framework-Laptop/20220105-111340
base:   https://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux.git for-next
:::::: branch date: 4 days ago
:::::: commit date: 4 days ago
config: i386-randconfig-m021-20220107 (https://download.01.org/0day-ci/archive/20220109/202201090725.PnArnVcv-lkp(a)intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/platform/chrome/cros_ec_lpc.c:382 cros_ec_lpc_probe() warn: consider using resource_size() here

vim +382 drivers/platform/chrome/cros_ec_lpc.c

a6df7798d03b29 Gwendal Grignou        2017-05-16  334  
ec2f33ab582bf6 Bill Richardson        2015-02-02  335  static int cros_ec_lpc_probe(struct platform_device *pdev)
ec2f33ab582bf6 Bill Richardson        2015-02-02  336  {
ec2f33ab582bf6 Bill Richardson        2015-02-02  337  	struct device *dev = &pdev->dev;
a6df7798d03b29 Gwendal Grignou        2017-05-16  338  	struct acpi_device *adev;
a6df7798d03b29 Gwendal Grignou        2017-05-16  339  	acpi_status status;
ec2f33ab582bf6 Bill Richardson        2015-02-02  340  	struct cros_ec_device *ec_dev;
bce70fef727924 Shawn Nematbakhsh      2017-05-16  341  	u8 buf[2];
da1cf5a1cf124f Enrico Granata         2018-10-09  342  	int irq, ret;
ec2f33ab582bf6 Bill Richardson        2015-02-02  343  
268c7bd0087331 Dustin L. Howett       2022-01-04  344  	/*
268c7bd0087331 Dustin L. Howett       2022-01-04  345  	 * The Framework Laptop (and possibly other non-ChromeOS devices)
268c7bd0087331 Dustin L. Howett       2022-01-04  346  	 * only exposes the eight I/O ports that are required for the Microchip EC.
268c7bd0087331 Dustin L. Howett       2022-01-04  347  	 * Requesting a larger reservation will fail.
268c7bd0087331 Dustin L. Howett       2022-01-04  348  	 */
268c7bd0087331 Dustin L. Howett       2022-01-04  349  	if (!devm_request_region(dev, EC_HOST_CMD_REGION0,
268c7bd0087331 Dustin L. Howett       2022-01-04  350  				 EC_HOST_CMD_MEC_REGION_SIZE, dev_name(dev))) {
268c7bd0087331 Dustin L. Howett       2022-01-04  351  		dev_err(dev, "couldn't reserve MEC region\n");
ec2f33ab582bf6 Bill Richardson        2015-02-02  352  		return -EBUSY;
ec2f33ab582bf6 Bill Richardson        2015-02-02  353  	}
ec2f33ab582bf6 Bill Richardson        2015-02-02  354  
22c040fa21b604 Enric Balletbo i Serra 2019-06-14  355  	/*
22c040fa21b604 Enric Balletbo i Serra 2019-06-14  356  	 * Read the mapped ID twice, the first one is assuming the
22c040fa21b604 Enric Balletbo i Serra 2019-06-14  357  	 * EC is a Microchip Embedded Controller (MEC) variant, if the
22c040fa21b604 Enric Balletbo i Serra 2019-06-14  358  	 * protocol fails, fallback to the non MEC variant and try to
22c040fa21b604 Enric Balletbo i Serra 2019-06-14  359  	 * read again the ID.
22c040fa21b604 Enric Balletbo i Serra 2019-06-14  360  	 */
22c040fa21b604 Enric Balletbo i Serra 2019-06-14  361  	cros_ec_lpc_ops.read = cros_ec_lpc_mec_read_bytes;
22c040fa21b604 Enric Balletbo i Serra 2019-06-14  362  	cros_ec_lpc_ops.write = cros_ec_lpc_mec_write_bytes;
22c040fa21b604 Enric Balletbo i Serra 2019-06-14  363  	cros_ec_lpc_ops.read(EC_LPC_ADDR_MEMMAP + EC_MEMMAP_ID, 2, buf);
22c040fa21b604 Enric Balletbo i Serra 2019-06-14  364  	if (buf[0] != 'E' || buf[1] != 'C') {
268c7bd0087331 Dustin L. Howett       2022-01-04  365  		if (!devm_request_region(dev, EC_LPC_ADDR_MEMMAP, EC_MEMMAP_SIZE,
268c7bd0087331 Dustin L. Howett       2022-01-04  366  					 dev_name(dev))) {
268c7bd0087331 Dustin L. Howett       2022-01-04  367  			dev_err(dev, "couldn't reserve memmap region\n");
268c7bd0087331 Dustin L. Howett       2022-01-04  368  			return -EBUSY;
268c7bd0087331 Dustin L. Howett       2022-01-04  369  		}
268c7bd0087331 Dustin L. Howett       2022-01-04  370  
22c040fa21b604 Enric Balletbo i Serra 2019-06-14  371  		/* Re-assign read/write operations for the non MEC variant */
22c040fa21b604 Enric Balletbo i Serra 2019-06-14  372  		cros_ec_lpc_ops.read = cros_ec_lpc_read_bytes;
22c040fa21b604 Enric Balletbo i Serra 2019-06-14  373  		cros_ec_lpc_ops.write = cros_ec_lpc_write_bytes;
22c040fa21b604 Enric Balletbo i Serra 2019-06-14  374  		cros_ec_lpc_ops.read(EC_LPC_ADDR_MEMMAP + EC_MEMMAP_ID, 2,
22c040fa21b604 Enric Balletbo i Serra 2019-06-14  375  				     buf);
bce70fef727924 Shawn Nematbakhsh      2017-05-16  376  		if (buf[0] != 'E' || buf[1] != 'C') {
ec2f33ab582bf6 Bill Richardson        2015-02-02  377  			dev_err(dev, "EC ID not detected\n");
ec2f33ab582bf6 Bill Richardson        2015-02-02  378  			return -ENODEV;
ec2f33ab582bf6 Bill Richardson        2015-02-02  379  		}
ec2f33ab582bf6 Bill Richardson        2015-02-02  380  
268c7bd0087331 Dustin L. Howett       2022-01-04  381  		/* Reserve the remaining I/O ports required by the non-MEC protocol. */
268c7bd0087331 Dustin L. Howett       2022-01-04 @382  		if (!devm_request_region(dev, EC_HOST_CMD_REGION0 + EC_HOST_CMD_MEC_REGION_SIZE,
268c7bd0087331 Dustin L. Howett       2022-01-04  383  					 EC_HOST_CMD_REGION_SIZE - EC_HOST_CMD_MEC_REGION_SIZE,
268c7bd0087331 Dustin L. Howett       2022-01-04  384  					 dev_name(dev))) {
268c7bd0087331 Dustin L. Howett       2022-01-04  385  			dev_err(dev, "couldn't reserve remainder of region0\n");
ec2f33ab582bf6 Bill Richardson        2015-02-02  386  			return -EBUSY;
ec2f33ab582bf6 Bill Richardson        2015-02-02  387  		}
ec2f33ab582bf6 Bill Richardson        2015-02-02  388  		if (!devm_request_region(dev, EC_HOST_CMD_REGION1,
ec2f33ab582bf6 Bill Richardson        2015-02-02  389  					 EC_HOST_CMD_REGION_SIZE, dev_name(dev))) {
ec2f33ab582bf6 Bill Richardson        2015-02-02  390  			dev_err(dev, "couldn't reserve region1\n");
ec2f33ab582bf6 Bill Richardson        2015-02-02  391  			return -EBUSY;
ec2f33ab582bf6 Bill Richardson        2015-02-02  392  		}
268c7bd0087331 Dustin L. Howett       2022-01-04  393  	}
ec2f33ab582bf6 Bill Richardson        2015-02-02  394  
ec2f33ab582bf6 Bill Richardson        2015-02-02  395  	ec_dev = devm_kzalloc(dev, sizeof(*ec_dev), GFP_KERNEL);
ec2f33ab582bf6 Bill Richardson        2015-02-02  396  	if (!ec_dev)
ec2f33ab582bf6 Bill Richardson        2015-02-02  397  		return -ENOMEM;
ec2f33ab582bf6 Bill Richardson        2015-02-02  398  
ec2f33ab582bf6 Bill Richardson        2015-02-02  399  	platform_set_drvdata(pdev, ec_dev);
ec2f33ab582bf6 Bill Richardson        2015-02-02  400  	ec_dev->dev = dev;
ec2f33ab582bf6 Bill Richardson        2015-02-02  401  	ec_dev->phys_name = dev_name(dev);
ec2f33ab582bf6 Bill Richardson        2015-02-02  402  	ec_dev->cmd_xfer = cros_ec_cmd_xfer_lpc;
d365407079d331 Stephen Barber         2015-06-09  403  	ec_dev->pkt_xfer = cros_ec_pkt_xfer_lpc;
ec2f33ab582bf6 Bill Richardson        2015-02-02  404  	ec_dev->cmd_readmem = cros_ec_lpc_readmem;
2c7589af3c4dee Stephen Barber         2015-06-09  405  	ec_dev->din_size = sizeof(struct ec_host_response) +
2c7589af3c4dee Stephen Barber         2015-06-09  406  			   sizeof(struct ec_response_get_protocol_info);
2c7589af3c4dee Stephen Barber         2015-06-09  407  	ec_dev->dout_size = sizeof(struct ec_host_request);
ec2f33ab582bf6 Bill Richardson        2015-02-02  408  
da1cf5a1cf124f Enrico Granata         2018-10-09  409  	/*
da1cf5a1cf124f Enrico Granata         2018-10-09  410  	 * Some boards do not have an IRQ allotted for cros_ec_lpc,
da1cf5a1cf124f Enrico Granata         2018-10-09  411  	 * which makes ENXIO an expected (and safe) scenario.
da1cf5a1cf124f Enrico Granata         2018-10-09  412  	 */
a69b4eebe513b8 Enric Balletbo i Serra 2019-11-29  413  	irq = platform_get_irq_optional(pdev, 0);
da1cf5a1cf124f Enrico Granata         2018-10-09  414  	if (irq > 0)
da1cf5a1cf124f Enrico Granata         2018-10-09  415  		ec_dev->irq = irq;
da1cf5a1cf124f Enrico Granata         2018-10-09  416  	else if (irq != -ENXIO) {
da1cf5a1cf124f Enrico Granata         2018-10-09  417  		dev_err(dev, "couldn't retrieve IRQ number (%d)\n", irq);
da1cf5a1cf124f Enrico Granata         2018-10-09  418  		return irq;
da1cf5a1cf124f Enrico Granata         2018-10-09  419  	}
da1cf5a1cf124f Enrico Granata         2018-10-09  420  
ec2f33ab582bf6 Bill Richardson        2015-02-02  421  	ret = cros_ec_register(ec_dev);
ec2f33ab582bf6 Bill Richardson        2015-02-02  422  	if (ret) {
ec2f33ab582bf6 Bill Richardson        2015-02-02  423  		dev_err(dev, "couldn't register ec_dev (%d)\n", ret);
ec2f33ab582bf6 Bill Richardson        2015-02-02  424  		return ret;
ec2f33ab582bf6 Bill Richardson        2015-02-02  425  	}
ec2f33ab582bf6 Bill Richardson        2015-02-02  426  
a6df7798d03b29 Gwendal Grignou        2017-05-16  427  	/*
a6df7798d03b29 Gwendal Grignou        2017-05-16  428  	 * Connect a notify handler to process MKBP messages if we have a
a6df7798d03b29 Gwendal Grignou        2017-05-16  429  	 * companion ACPI device.
a6df7798d03b29 Gwendal Grignou        2017-05-16  430  	 */
a6df7798d03b29 Gwendal Grignou        2017-05-16  431  	adev = ACPI_COMPANION(dev);
a6df7798d03b29 Gwendal Grignou        2017-05-16  432  	if (adev) {
a6df7798d03b29 Gwendal Grignou        2017-05-16  433  		status = acpi_install_notify_handler(adev->handle,
a6df7798d03b29 Gwendal Grignou        2017-05-16  434  						     ACPI_ALL_NOTIFY,
a6df7798d03b29 Gwendal Grignou        2017-05-16  435  						     cros_ec_lpc_acpi_notify,
a6df7798d03b29 Gwendal Grignou        2017-05-16  436  						     ec_dev);
a6df7798d03b29 Gwendal Grignou        2017-05-16  437  		if (ACPI_FAILURE(status))
a6df7798d03b29 Gwendal Grignou        2017-05-16  438  			dev_warn(dev, "Failed to register notifier %08x\n",
a6df7798d03b29 Gwendal Grignou        2017-05-16  439  				 status);
a6df7798d03b29 Gwendal Grignou        2017-05-16  440  	}
a6df7798d03b29 Gwendal Grignou        2017-05-16  441  
ec2f33ab582bf6 Bill Richardson        2015-02-02  442  	return 0;
ec2f33ab582bf6 Bill Richardson        2015-02-02  443  }
ec2f33ab582bf6 Bill Richardson        2015-02-02  444  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

             reply	other threads:[~2022-01-08 23:03 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-08 23:03 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-01-05  3:12 [PATCH 0/2] platform/chrome: Add support for the Framework Laptop Dustin L. Howett
2022-01-05  3:12 ` [PATCH 2/2] platform/chrome: reserve only the I/O ports required for the MEC EC Dustin L. Howett
2022-01-25  3:42   ` Tzung-Bi Shih
2022-01-25  4:17     ` Tzung-Bi Shih
2022-01-25 15:15       ` Dustin Howett
2022-01-26  6:24         ` Tzung-Bi Shih

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=202201090725.PnArnVcv-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.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 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.