Hi Lu, [auto build test ERROR on usb/usb-testing] [also build test ERROR on v4.5-rc6 next-20160303] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/Lu-Baolu/usb-add-support-for-Intel-dual-role-port-mux/20160303-144241 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing config: arm64-allyesconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=arm64 All error/warnings (new ones prefixed by >>): drivers/usb/misc/intel-mux-drcfg.c: In function 'intel_mux_drcfg_switch': >> drivers/usb/misc/intel-mux-drcfg.c:42:2: error: implicit declaration of function 'readl' [-Werror=implicit-function-declaration] data = readl(mux->regs + INTEL_MUX_CFG0); ^ >> drivers/usb/misc/intel-mux-drcfg.c:45:3: error: implicit declaration of function 'writel' [-Werror=implicit-function-declaration] writel(data, mux->regs + INTEL_MUX_CFG0); ^ drivers/usb/misc/intel-mux-drcfg.c: In function 'intel_mux_drcfg_probe': >> drivers/usb/misc/intel-mux-drcfg.c:108:2: error: implicit declaration of function 'devm_ioremap_nocache' [-Werror=implicit-function-declaration] mux->regs = devm_ioremap_nocache(dev, start, size); ^ >> drivers/usb/misc/intel-mux-drcfg.c:108:12: warning: assignment makes pointer from integer without a cast mux->regs = devm_ioremap_nocache(dev, start, size); ^ cc1: some warnings being treated as errors vim +/readl +42 drivers/usb/misc/intel-mux-drcfg.c 36 unsigned long timeout; 37 u32 data; 38 39 mux = container_of(umdev, struct intel_usb_mux, umdev); 40 41 /* Check and set mux to SW controlled mode */ > 42 data = readl(mux->regs + INTEL_MUX_CFG0); 43 if (!(data & CFG0_SW_IDPIN_EN)) { 44 data |= CFG0_SW_IDPIN_EN; > 45 writel(data, mux->regs + INTEL_MUX_CFG0); 46 } 47 48 /* 49 * Configure CFG0 to switch the mux and VBUS_VALID bit is 50 * required for device mode. 51 */ 52 data = readl(mux->regs + INTEL_MUX_CFG0); 53 if (host) 54 data &= ~(CFG0_SW_IDPIN | CFG0_SW_VBUS_VALID); 55 else 56 data |= (CFG0_SW_IDPIN | CFG0_SW_VBUS_VALID); 57 writel(data, mux->regs + INTEL_MUX_CFG0); 58 59 /* 60 * Polling CFG1 for safety, most case it takes about 600ms 61 * to finish mode switching, set TIMEOUT long enough. 62 */ 63 timeout = jiffies + msecs_to_jiffies(CFG1_POLL_TIMEOUT); 64 65 /* Polling on CFG1 register to confirm mode switch. */ 66 while (!time_after(jiffies, timeout)) { 67 data = readl(mux->regs + INTEL_MUX_CFG1); 68 if (!(host ^ (data & CFG1_SW_MODE))) 69 return 0; 70 /* interval for polling is set to about 5ms */ 71 usleep_range(5000, 5100); 72 } 73 74 return -ETIMEDOUT; 75 } 76 77 static int intel_mux_drcfg_cable_set(struct usb_mux_dev *umdev) 78 { 79 dev_dbg(umdev->dev, "drcfg mux switch to HOST\n"); 80 81 return intel_mux_drcfg_switch(umdev, true); 82 } 83 84 static int intel_mux_drcfg_cable_unset(struct usb_mux_dev *umdev) 85 { 86 dev_dbg(umdev->dev, "drcfg mux switch to DEVICE\n"); 87 88 return intel_mux_drcfg_switch(umdev, false); 89 } 90 91 static int intel_mux_drcfg_probe(struct platform_device *pdev) 92 { 93 struct intel_usb_mux *mux; 94 struct usb_mux_dev *umdev; 95 struct device *dev = &pdev->dev; 96 u64 start, size; 97 int ret; 98 99 mux = devm_kzalloc(dev, sizeof(*mux), GFP_KERNEL); 100 if (!mux) 101 return -ENOMEM; 102 103 ret = device_property_read_u64(dev, "reg-start", &start); 104 ret |= device_property_read_u64(dev, "reg-size", &size); 105 if (ret) 106 return -ENODEV; 107 > 108 mux->regs = devm_ioremap_nocache(dev, start, size); 109 if (!mux->regs) 110 return -ENOMEM; 111 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: Binary data