Hi Youling,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on wsa/i2c/for-next]
[also build test ERROR on v5.10-rc6 next-20201201]
[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/Youling-Tang/i2c-ismt-Use-dma_set_mask_and_coherent/20201203-090418
base:   https://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git 
i2c/for-next
config: x86_64-randconfig-r031-20201203 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 
32c501dd88b62787d3a5ffda7aabcf4650dbe3cd)
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
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # 
https://github.com/0day-ci/linux/commit/70c09af3590c87f78b3fb025c692195d97696f28
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Youling-Tang/i2c-ismt-Use-dma_set_mask_and_coherent/20201203-090418
        git checkout 70c09af3590c87f78b3fb025c692195d97696f28
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

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

All errors (new ones prefixed by >>):

>> drivers/i2c/busses/i2c-ismt.c:906:32: error: incompatible pointer types 
>> passing 'struct pci_dev *' to parameter of type 'struct device *' 
>> [-Werror,-Wincompatible-pointer-types]
           if (dma_set_mask_and_coherent(pdev, DMA_BIT_MASK(64)) != 0)
                                         ^~~~
   include/linux/dma-mapping.h:420:60: note: passing argument to parameter 
'dev' here
   static inline int dma_set_mask_and_coherent(struct device *dev, u64 mask)
                                                              ^
   drivers/i2c/busses/i2c-ismt.c:907:33: error: incompatible pointer types 
passing 'struct pci_dev *' to parameter of type 'struct device *' 
[-Werror,-Wincompatible-pointer-types]
                   if (dma_set_mask_and_coherent(pdev, DMA_BIT_MASK(32)) != 0) {
                                                 ^~~~
   include/linux/dma-mapping.h:420:60: note: passing argument to parameter 
'dev' here
   static inline int dma_set_mask_and_coherent(struct device *dev, u64 mask)
                                                              ^
   2 errors generated.

vim +906 drivers/i2c/busses/i2c-ismt.c

   832  
   833  /**
   834   * ismt_probe() - probe for iSMT devices
   835   * @pdev: PCI-Express device
   836   * @id: PCI-Express device ID
   837   */
   838  static int
   839  ismt_probe(struct pci_dev *pdev, const struct pci_device_id *id)
   840  {
   841          int err;
   842          struct ismt_priv *priv;
   843          unsigned long start, len;
   844  
   845          priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
   846          if (!priv)
   847                  return -ENOMEM;
   848  
   849          pci_set_drvdata(pdev, priv);
   850  
   851          i2c_set_adapdata(&priv->adapter, priv);
   852          priv->adapter.owner = THIS_MODULE;
   853          priv->adapter.class = I2C_CLASS_HWMON;
   854          priv->adapter.algo = &smbus_algorithm;
   855          priv->adapter.dev.parent = &pdev->dev;
   856          ACPI_COMPANION_SET(&priv->adapter.dev, 
ACPI_COMPANION(&pdev->dev));
   857          priv->adapter.retries = ISMT_MAX_RETRIES;
   858  
   859          priv->pci_dev = pdev;
   860  
   861          err = pcim_enable_device(pdev);
   862          if (err) {
   863                  dev_err(&pdev->dev, "Failed to enable SMBus PCI device 
(%d)\n",
   864                          err);
   865                  return err;
   866          }
   867  
   868          /* enable bus mastering */
   869          pci_set_master(pdev);
   870  
   871          /* Determine the address of the SMBus area */
   872          start = pci_resource_start(pdev, SMBBAR);
   873          len = pci_resource_len(pdev, SMBBAR);
   874          if (!start || !len) {
   875                  dev_err(&pdev->dev,
   876                          "SMBus base address uninitialized, upgrade 
BIOS\n");
   877                  return -ENODEV;
   878          }
   879  
   880          snprintf(priv->adapter.name, sizeof(priv->adapter.name),
   881                   "SMBus iSMT adapter at %lx", start);
   882  
   883          dev_dbg(&priv->pci_dev->dev, " start=0x%lX\n", start);
   884          dev_dbg(&priv->pci_dev->dev, " len=0x%lX\n", len);
   885  
   886          err = acpi_check_resource_conflict(&pdev->resource[SMBBAR]);
   887          if (err) {
   888                  dev_err(&pdev->dev, "ACPI resource conflict!\n");
   889                  return err;
   890          }
   891  
   892          err = pci_request_region(pdev, SMBBAR, ismt_driver.name);
   893          if (err) {
   894                  dev_err(&pdev->dev,
   895                          "Failed to request SMBus region 0x%lx-0x%lx\n",
   896                          start, start + len);
   897                  return err;
   898          }
   899  
   900          priv->smba = pcim_iomap(pdev, SMBBAR, len);
   901          if (!priv->smba) {
   902                  dev_err(&pdev->dev, "Unable to ioremap SMBus BAR\n");
   903                  return -ENODEV;
   904          }
   905  
 > 906          if (dma_set_mask_and_coherent(pdev, DMA_BIT_MASK(64)) != 0)
   907                  if (dma_set_mask_and_coherent(pdev, DMA_BIT_MASK(32)) 
!= 0) {
   908                          dev_err(&pdev->dev, "pci_set_dma_mask fail 
%p\n",
   909                                  pdev);
   910                          return -ENODEV;
   911                  }
   912  
   913          err = ismt_dev_init(priv);
   914          if (err)
   915                  return err;
   916  
   917          ismt_hw_init(priv);
   918  
   919          err = ismt_int_init(priv);
   920          if (err)
   921                  return err;
   922  
   923          err = i2c_add_adapter(&priv->adapter);
   924          if (err)
   925                  return -ENODEV;
   926          return 0;
   927  }
   928  

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

Attachment: .config.gz
Description: application/gzip

Reply via email to