On 12/15/20 1:58 PM, Peter Chen wrote:
On 20-12-14 23:35:56, kernel test robot wrote:
Hi Pawel,

I love your patch! Perhaps something to improve:

[auto build test WARNING on next-20201211]
[cannot apply to peter.chen-usb/ci-for-usb-next v5.10 v5.10-rc7 v5.10-rc6 v5.10]
Sorry, I changed the branch name to reflect the branch does not only queue
chipidea USB patches.

next branch: for-usb-next
fixes branch: for-usb-fixes

Peter

Hi Peter,

Thanks for the feedback, we'll update it on the CI system.

Best Regards,
Rong Chen


[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://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit-scm.com%2Fdocs%2Fgit-format-patch&data=04%7C01%7Cpeter.chen%40nxp.com%7C6ce79474794448ae12b008d8a045f9ce%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637435572341553421%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Cy3huYNzWiJ57OKmzmaleCT14gcFr8RyYDnqTfZWNG4%3D&reserved=0]

url:    
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommits%2FPawel-Laszczak%2Fusb-cdns3-Adds-missing-__iomem-markers%2F20201214-205353&data=04%7C01%7Cpeter.chen%40nxp.com%7C6ce79474794448ae12b008d8a045f9ce%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637435572341553421%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=x5XoDUUskeGteTFaPjgS24Hrbb712XqMqaIkqwXWu14%3D&reserved=0
base:    3cc2bd440f2171f093b3a8480a4b54d8c270ed38
config: riscv-allmodconfig (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
         wget 
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintel%2Flkp-tests%2Fmaster%2Fsbin%2Fmake.cross&data=04%7C01%7Cpeter.chen%40nxp.com%7C6ce79474794448ae12b008d8a045f9ce%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637435572341553421%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=jAavg0T3itnjkbHXADvePHHgtYeqiVTBt%2BoatHT0VHU%3D&reserved=0
 -O ~/bin/make.cross
         chmod +x ~/bin/make.cross
         # 
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux%2Fcommit%2F315bfcf1e0604de6ecfc1856cf5820876390f16c&data=04%7C01%7Cpeter.chen%40nxp.com%7C6ce79474794448ae12b008d8a045f9ce%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637435572341553421%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=SQ75IXxfld6HMRIFkZ%2F8Z4YqxnFP%2F%2BZ%2BsYZIycNeO%2FA%3D&reserved=0
         git remote add linux-review 
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2F0day-ci%2Flinux&data=04%7C01%7Cpeter.chen%40nxp.com%7C6ce79474794448ae12b008d8a045f9ce%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637435572341553421%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=ZVS4723WbEO03hbsLXJ%2B%2FmB5EZElulY7lAsMEMatiko%3D&reserved=0
         git fetch --no-tags linux-review 
Pawel-Laszczak/usb-cdns3-Adds-missing-__iomem-markers/20201214-205353
         git checkout 315bfcf1e0604de6ecfc1856cf5820876390f16c
         # save the attached .config to linux build tree
         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross 
ARCH=riscv

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

All warnings (new ones prefixed by >>):

    In file included from arch/riscv/include/asm/io.h:23,
                     from include/linux/io.h:13,
                     from include/linux/irq.h:20,
                     from include/asm-generic/hardirq.h:17,
                     from ./arch/riscv/include/generated/asm/hardirq.h:1,
                     from include/linux/hardirq.h:10,
                     from include/linux/interrupt.h:11,
                     from drivers/usb/cdns3/drd.c:13:
    drivers/usb/cdns3/drd.c: In function 'cdns_otg_disable_irq':
    drivers/usb/cdns3/drd.c:159:31: error: dereferencing pointer to incomplete 
type 'struct cdns_otg_irq_reg'
      159 |  writel(0, &cdns->otg_irq_regs->ien);
          |                               ^~
    arch/riscv/include/asm/mmio.h:93:76: note: in definition of macro 
'writel_cpu'
       93 | #define writel_cpu(v, c) ((void)__raw_writel((__force 
u32)cpu_to_le32(v), (c)))
          |                                                                     
       ^
    drivers/usb/cdns3/drd.c:159:2: note: in expansion of macro 'writel'
      159 |  writel(0, &cdns->otg_irq_regs->ien);
          |  ^~~~~~
    drivers/usb/cdns3/drd.c: In function 'cdns_drd_init':
    drivers/usb/cdns3/drd.c:409:22: error: assignment to 'struct 
cdns_otg_irq_reg *' from incompatible pointer type 'struct cdns_otg_irq_regs *' 
[-Werror=incompatible-pointer-types]
      409 |   cdns->otg_irq_regs = (struct cdns_otg_irq_regs __iomem  *)
          |                      ^
    In file included from include/linux/byteorder/little_endian.h:5,
                     from arch/riscv/include/uapi/asm/byteorder.h:10,
                     from include/asm-generic/bitops/le.h:6,
                     from arch/riscv/include/asm/bitops.h:202,
                     from include/linux/bitops.h:32,
                     from include/linux/kernel.h:11,
                     from drivers/usb/cdns3/drd.c:12:
drivers/usb/cdns3/drd.c:421:33: warning: passing argument 1 of '__raw_readl' 
makes pointer from integer without a cast [-Wint-conversion]
      421 |   if (readl(cdns->otg_cdnsp_regs->did) == OTG_CDNSP_DID) {
          |             ~~~~~~~~~~~~~~~~~~~~^~~~~
          |                                 |
          |                                 __le32 {aka unsigned int}
    include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of 
macro '__le32_to_cpu'
       34 | #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
          |                                                   ^
    arch/riscv/include/asm/mmio.h:140:47: note: in expansion of macro 
'readl_cpu'
      140 | #define readl(c) ({ u32 __v; __io_br(); __v = readl_cpu(c); 
__io_ar(__v); __v; })
          |                                               ^~~~~~~~~
    drivers/usb/cdns3/drd.c:421:7: note: in expansion of macro 'readl'
      421 |   if (readl(cdns->otg_cdnsp_regs->did) == OTG_CDNSP_DID) {
          |       ^~~~~
    In file included from arch/riscv/include/asm/io.h:23,
                     from include/linux/io.h:13,
                     from include/linux/irq.h:20,
                     from include/asm-generic/hardirq.h:17,
                     from ./arch/riscv/include/generated/asm/hardirq.h:1,
                     from include/linux/hardirq.h:10,
                     from include/linux/interrupt.h:11,
                     from drivers/usb/cdns3/drd.c:13:
    arch/riscv/include/asm/mmio.h:63:60: note: expected 'const volatile void *' 
but argument is of type '__le32' {aka 'unsigned int'}
       63 | static inline u32 __raw_readl(const volatile void __iomem *addr)
          |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
    drivers/usb/cdns3/drd.c:422:23: error: assignment to 'struct 
cdns_otg_irq_reg *' from incompatible pointer type 'struct cdns_otg_irq_regs *' 
[-Werror=incompatible-pointer-types]
      422 |    cdns->otg_irq_regs = (struct cdns_otg_irq_regs __iomem *)
          |                       ^
    drivers/usb/cdns3/drd.c:426:23: error: assignment to 'struct 
cdns_otg_irq_reg *' from incompatible pointer type 'struct cdns_otg_irq_regs *' 
[-Werror=incompatible-pointer-types]
      426 |    cdns->otg_irq_regs = (struct cdns_otg_irq_regs __iomem *)
          |                       ^
    cc1: some warnings being treated as errors

vim +/__raw_readl +421 drivers/usb/cdns3/drd.c

    383 
    384 int cdns_drd_init(struct cdns *cdns)
    385 {
    386         void __iomem *regs;
    387         u32 state;
    388         int ret;
    389 
    390         regs = devm_ioremap_resource(cdns->dev, &cdns->otg_res);
    391         if (IS_ERR(regs))
    392                 return PTR_ERR(regs);
    393 
    394         /* Detection of DRD version. Controller has been released
    395          * in three versions. All are very similar and are software 
compatible,
    396          * but they have same changes in register maps.
    397          * The first register in oldest version is command register and 
it's
    398          * read only. Driver should read 0 from it. On the other hand, 
in v1
    399          * and v2 the first register contains device ID number which is 
not
    400          * set to 0. Driver uses this fact to detect the proper version 
of
    401          * controller.
    402          */
    403         cdns->otg_v0_regs = regs;
    404         if (!readl(&cdns->otg_v0_regs->cmd)) {
    405                 cdns->version  = CDNS3_CONTROLLER_V0;
    406                 cdns->otg_v1_regs = NULL;
    407                 cdns->otg_cdnsp_regs = NULL;
    408                 cdns->otg_regs = regs;
    409                 cdns->otg_irq_regs = (struct cdns_otg_irq_regs __iomem  
*)
    410                                      &cdns->otg_v0_regs->ien;
    411                 writel(1, &cdns->otg_v0_regs->simulate);
    412                 dev_dbg(cdns->dev, "DRD version v0 (%08x)\n",
    413                          readl(&cdns->otg_v0_regs->version));
    414         } else {
    415                 cdns->otg_v0_regs = NULL;
    416                 cdns->otg_v1_regs = regs;
    417                 cdns->otg_cdnsp_regs = regs;
    418 
    419                 cdns->otg_regs = (void __iomem 
*)&cdns->otg_v1_regs->cmd;
    420 
  > 421                      if (readl(cdns->otg_cdnsp_regs->did) == 
OTG_CDNSP_DID) {
    422                         cdns->otg_irq_regs = (struct cdns_otg_irq_regs 
__iomem *)
    423                                               
&cdns->otg_cdnsp_regs->ien;
    424                         cdns->version  = CDNSP_CONTROLLER_V2;
    425                 } else {
    426                         cdns->otg_irq_regs = (struct cdns_otg_irq_regs 
__iomem *)
    427                                               &cdns->otg_v1_regs->ien;
    428                         writel(1, &cdns->otg_v1_regs->simulate);
    429                         cdns->version  = CDNS3_CONTROLLER_V1;
    430                 }
    431 
    432                 dev_dbg(cdns->dev, "DRD version v1 (ID: %08x, rev: 
%08x)\n",
    433                          readl(&cdns->otg_v1_regs->did),
    434                          readl(&cdns->otg_v1_regs->rid));
    435         }
    436 
    437         state = OTGSTS_STRAP(readl(&cdns->otg_regs->sts));
    438 
    439         /* Update dr_mode according to STRAP configuration. */
    440         cdns->dr_mode = USB_DR_MODE_OTG;
    441 
    442         if ((cdns->version == CDNSP_CONTROLLER_V2 &&
    443              state == OTGSTS_CDNSP_STRAP_HOST) ||
    444             (cdns->version != CDNSP_CONTROLLER_V2 &&
    445              state == OTGSTS_STRAP_HOST)) {
    446                 dev_dbg(cdns->dev, "Controller strapped to HOST\n");
    447                 cdns->dr_mode = USB_DR_MODE_HOST;
    448         } else if ((cdns->version == CDNSP_CONTROLLER_V2 &&
    449                     state == OTGSTS_CDNSP_STRAP_GADGET) ||
    450                    (cdns->version != CDNSP_CONTROLLER_V2 &&
    451                     state == OTGSTS_STRAP_GADGET)) {
    452                 dev_dbg(cdns->dev, "Controller strapped to 
PERIPHERAL\n");
    453                 cdns->dr_mode = USB_DR_MODE_PERIPHERAL;
    454         }
    455 
    456         ret = devm_request_threaded_irq(cdns->dev, cdns->otg_irq,
    457                                         cdns_drd_irq,
    458                                         cdns_drd_thread_irq,
    459                                         IRQF_SHARED,
    460                                         dev_name(cdns->dev), cdns);
    461         if (ret) {
    462                 dev_err(cdns->dev, "couldn't get otg_irq\n");
    463                 return ret;
    464         }
    465 
    466         state = readl(&cdns->otg_regs->sts);
    467         if (OTGSTS_OTG_NRDY(state)) {
    468                 dev_err(cdns->dev, "Cadence USB3 OTG device not 
ready\n");
    469                 return -ENODEV;
    470         }
    471 
    472         return 0;
    473 }
    474 

---
0-DAY CI Kernel Test Service, Intel Corporation
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.01.org%2Fhyperkitty%2Flist%2Fkbuild-all%40lists.01.org&amp;data=04%7C01%7Cpeter.chen%40nxp.com%7C6ce79474794448ae12b008d8a045f9ce%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637435572341553421%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=v9fQGKZKobtIysXu43lCekV%2FoXCc2EZZXIxoTtQpSdw%3D&amp;reserved=0



Reply via email to