[PATCH v3 3/4] soc: aspeed: Add eSPI driver

kernel test robot lkp at intel.com
Fri Aug 27 09:30:06 AEST 2021


Hi Chia-Wei,

I love your patch! Yet something to improve:

[auto build test ERROR on robh/for-next]
[also build test ERROR on arm/for-next keystone/next soc/for-next rockchip/for-next arm64/for-next/core linus/master joel-aspeed/for-next v5.14-rc7 next-20210826]
[cannot apply to xlnx/master]
[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/Chia-Wei-Wang/arm-aspeed-Add-eSPI-support/20210826-141737
base:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: arm64-randconfig-r002-20210826 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/2980a1777c50754fe145f2e73ded8739931c0712
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Chia-Wei-Wang/arm-aspeed-Add-eSPI-support/20210826-141737
        git checkout 2980a1777c50754fe145f2e73ded8739931c0712
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

   In file included from drivers/soc/aspeed/aspeed-espi-ctrl.c:22:
   drivers/soc/aspeed/aspeed-espi-perif.h: In function 'aspeed_espi_perif_alloc':
>> drivers/soc/aspeed/aspeed-espi-perif.h:446:43: error: passing argument 3 of 'of_property_read_u32' from incompatible pointer type [-Werror=incompatible-pointer-types]
     446 |                                           &espi_perif->mcyc_saddr);
         |                                           ^~~~~~~~~~~~~~~~~~~~~~~
         |                                           |
         |                                           phys_addr_t * {aka long long unsigned int *}
   In file included from include/linux/of_device.h:9,
                    from drivers/soc/aspeed/aspeed-espi-ctrl.c:9:
   include/linux/of.h:1249:45: note: expected 'u32 *' {aka 'unsigned int *'} but argument is of type 'phys_addr_t *' {aka 'long long unsigned int *'}
    1249 |                                        u32 *out_value)
         |                                        ~~~~~^~~~~~~~~
   drivers/soc/aspeed/aspeed-espi-ctrl.c: In function 'aspeed_espi_ctrl_probe':
   drivers/soc/aspeed/aspeed-espi-ctrl.c:98:30: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
      98 |         espi_ctrl->version = (uint32_t)of_device_get_match_data(dev);
         |                              ^
   cc1: some warnings being treated as errors


vim +/of_property_read_u32 +446 drivers/soc/aspeed/aspeed-espi-perif.h

   422	
   423	static void *aspeed_espi_perif_alloc(struct device *dev, struct aspeed_espi_ctrl *espi_ctrl)
   424	{
   425		int rc;
   426		struct aspeed_espi_perif *espi_perif;
   427		struct aspeed_espi_perif_dma *dma;
   428	
   429		espi_perif = devm_kzalloc(dev, sizeof(*espi_perif), GFP_KERNEL);
   430		if (!espi_perif)
   431			return ERR_PTR(-ENOMEM);
   432	
   433		espi_perif->ctrl = espi_ctrl;
   434	
   435		init_waitqueue_head(&espi_perif->wq);
   436	
   437		spin_lock_init(&espi_perif->lock);
   438	
   439		mutex_init(&espi_perif->pc_rx_mtx);
   440		mutex_init(&espi_perif->pc_tx_mtx);
   441		mutex_init(&espi_perif->np_tx_mtx);
   442	
   443		espi_perif->mcyc_enable = of_property_read_bool(dev->of_node, "perif,memcyc-enable");
   444		if (espi_perif->mcyc_enable) {
   445			rc = of_property_read_u32(dev->of_node, "perif,memcyc-src-addr",
 > 446						  &espi_perif->mcyc_saddr);
   447			if (rc) {
   448				dev_err(dev, "cannot get Host source address for memory cycle\n");
   449				return ERR_PTR(-ENODEV);
   450			}
   451	
   452			rc = of_property_read_u32(dev->of_node, "perif,memcyc-size",
   453						  &espi_perif->mcyc_size);
   454			if (rc) {
   455				dev_err(dev, "cannot get size for memory cycle\n");
   456				return ERR_PTR(-ENODEV);
   457			}
   458	
   459			if (espi_perif->mcyc_size < PERIF_MEMCYC_SIZE_MIN)
   460				espi_perif->mcyc_size = PERIF_MEMCYC_SIZE_MIN;
   461			else
   462				espi_perif->mcyc_size = roundup_pow_of_two(espi_perif->mcyc_size);
   463	
   464			espi_perif->mcyc_mask = ~(espi_perif->mcyc_size - 1);
   465			espi_perif->mcyc_virt = dma_alloc_coherent(dev, espi_perif->mcyc_size,
   466								   &espi_perif->mcyc_taddr, GFP_KERNEL);
   467			if (!espi_perif->mcyc_virt) {
   468				dev_err(dev, "cannot allocate memory cycle region\n");
   469				return ERR_PTR(-ENOMEM);
   470			}
   471		}
   472	
   473		if (of_property_read_bool(dev->of_node, "perif,dma-mode")) {
   474			dma = &espi_perif->dma;
   475	
   476			dma->pc_tx_virt = dma_alloc_coherent(dev, PAGE_SIZE,
   477							     &dma->pc_tx_addr, GFP_KERNEL);
   478			if (!dma->pc_tx_virt) {
   479				dev_err(dev, "cannot allocate posted TX DMA buffer\n");
   480				return ERR_PTR(-ENOMEM);
   481			}
   482	
   483			dma->pc_rx_virt = dma_alloc_coherent(dev, PAGE_SIZE,
   484							     &dma->pc_rx_addr, GFP_KERNEL);
   485			if (!dma->pc_rx_virt) {
   486				dev_err(dev, "cannot allocate posted RX DMA buffer\n");
   487				return ERR_PTR(-ENOMEM);
   488			}
   489	
   490			dma->np_tx_virt = dma_alloc_coherent(dev, PAGE_SIZE,
   491					&dma->np_tx_addr, GFP_KERNEL);
   492			if (!dma->np_tx_virt) {
   493				dev_err(dev, "cannot allocate non-posted TX DMA buffer\n");
   494				return ERR_PTR(-ENOMEM);
   495			}
   496	
   497			espi_perif->dma_mode = 1;
   498		}
   499	
   500		espi_perif->mdev.parent = dev;
   501		espi_perif->mdev.minor = MISC_DYNAMIC_MINOR;
   502		espi_perif->mdev.name = devm_kasprintf(dev, GFP_KERNEL, "%s", PERIF_MDEV_NAME);
   503		espi_perif->mdev.fops = &aspeed_espi_perif_fops;
   504		rc = misc_register(&espi_perif->mdev);
   505		if (rc) {
   506			dev_err(dev, "cannot register device\n");
   507			return ERR_PTR(rc);
   508		}
   509	
   510		aspeed_espi_perif_enable(espi_perif);
   511	
   512		return espi_perif;
   513	}
   514	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 42142 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linux-aspeed/attachments/20210827/b00a950a/attachment-0001.gz>


More information about the Linux-aspeed mailing list