Hi Kavyasree, Thank you for the patch! Yet something to improve: [auto build test ERROR on lee-mfd/for-mfd-next] [also build test ERROR on robh/for-next] [cannot apply to soc/for-next linus/master v5.18-rc5 next-20220503] [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/intel-lab-lkp/linux/commits/Kavyasree-Kotagiri/Add-support-for-lan966-flexcom-multiplexer/20220503-190011 base: https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next config: mips-randconfig-r014-20220502 (https://download.01.org/0day-ci/archive/20220504/202205040310.pikNhpUq-lkp@xxxxxxxxx/config) compiler: mips64el-linux-gcc (GCC) 11.3.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/intel-lab-lkp/linux/commit/f8c4bcef1d51c8668507ca53f7cad11e6ace1b2b git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Kavyasree-Kotagiri/Add-support-for-lan966-flexcom-multiplexer/20220503-190011 git checkout f8c4bcef1d51c8668507ca53f7cad11e6ace1b2b # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/mailbox/mailbox-altera.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/hwspinlock/hwspinlock_core.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/remoteproc/remoteproc_core.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/remoteproc/remoteproc_coredump.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/remoteproc/remoteproc_debugfs.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/remoteproc/remoteproc_sysfs.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/remoteproc/remoteproc_virtio.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/remoteproc/remoteproc_elf_loader.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/remoteproc/remoteproc_cdev.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/soundwire/bus_type.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/soundwire/bus.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/soundwire/master.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/soundwire/slave.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/soundwire/mipi_disco.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/soundwire/stream.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/soundwire/sysfs_slave.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/soundwire/sysfs_slave_dpn.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/soundwire/debugfs.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/devfreq/devfreq.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/devfreq/devfreq-event.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/devfreq/governor_simpleondemand.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/devfreq/governor_powersave.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/extcon/extcon.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/extcon/devres.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/extcon/extcon-gpio.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/extcon/extcon-usb-gpio.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/memory/jz4780-nemc.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/vme/vme.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/vme/bridges/vme_ca91cx42.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/vme/boards/vme_vmivme7805.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/ntb/core.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/ntb/test/ntb_tool.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/ntb/ntb_transport.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/powercap/powercap_sys.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/powercap/idle_inject.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/ras/ras.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/ras/debugfs.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/hwtracing/intel_th/core.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/hwtracing/intel_th/msu.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/hwtracing/intel_th/msu-sink.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/nvmem/core.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/interconnect/core.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/interconnect/bulk.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/counter/counter-core.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/counter/counter-sysfs.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/counter/counter-chrdev.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `drivers/counter/ftm-quaddec.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/sound_core.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/sound.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/init.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/memory.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/control.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/misc.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/device.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/info.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/info_oss.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/isadma.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/sound_oss.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/ctljack.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/jack.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/timer.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/pcm.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/pcm_native.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/pcm_lib.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/pcm_misc.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/pcm_memory.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/memalloc.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/seq_device.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/rawmidi.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/seq/seq.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/seq/seq_lock.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/seq/seq_clientmgr.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/seq/seq_memory.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/seq/seq_queue.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/seq/seq_fifo.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/seq/seq_prioq.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/seq/seq_timer.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/seq/seq_system.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/seq/seq_ports.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/seq/seq_info.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/seq/seq_dummy.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/seq/seq_midi.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/core/seq/seq_midi_event.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/drivers/dummy.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/drivers/serial-u16550.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/drivers/mtpav.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/virtio/virtio_card.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/virtio/virtio_chmap.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/virtio/virtio_ctl_msg.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/virtio/virtio_jack.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/virtio/virtio_pcm.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/virtio/virtio_pcm_msg.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/virtio/virtio_pcm_ops.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `sound/last.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `arch/mips/pci/pci.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `arch/mips/pci/pci-legacy.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `arch/mips/pci/fixup-fuloong2e.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `arch/mips/pci/ops-loongson2.o' being placed in section `.ctors.65436' mips64el-linux-ld: warning: orphan section `.ctors.65436' from `arch/mips/crypto/poly1305-glue.o' being placed in section `.ctors.65436' mips64el-linux-ld: drivers/mfd/atmel-flexcom.o: in function `atmel_flexcom_probe': >> drivers/mfd/atmel-flexcom.c:97: undefined reference to `devm_mux_control_get' mips64el-linux-ld: drivers/mfd/atmel-flexcom.o: in function `mux_control_select': >> include/linux/mux/consumer.h:34: undefined reference to `mux_control_select_delay' mips64el-linux-ld: drivers/mfd/atmel-flexcom.o: in function `atmel_flexcom_probe': >> drivers/mfd/atmel-flexcom.c:109: undefined reference to `mux_control_deselect' vim +97 drivers/mfd/atmel-flexcom.c 41 42 static int atmel_flexcom_probe(struct platform_device *pdev) 43 { 44 struct device_node *np = pdev->dev.of_node; 45 const struct atmel_flex_caps *caps; 46 struct resource *res; 47 struct atmel_flexcom *ddata; 48 int err; 49 50 ddata = devm_kzalloc(&pdev->dev, sizeof(*ddata), GFP_KERNEL); 51 if (!ddata) 52 return -ENOMEM; 53 54 platform_set_drvdata(pdev, ddata); 55 56 err = of_property_read_u32(np, "atmel,flexcom-mode", &ddata->opmode); 57 if (err) 58 return err; 59 60 if (ddata->opmode < ATMEL_FLEXCOM_MODE_USART || 61 ddata->opmode > ATMEL_FLEXCOM_MODE_TWI) 62 return -EINVAL; 63 64 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 65 ddata->base = devm_ioremap_resource(&pdev->dev, res); 66 if (IS_ERR(ddata->base)) 67 return PTR_ERR(ddata->base); 68 69 ddata->clk = devm_clk_get(&pdev->dev, NULL); 70 if (IS_ERR(ddata->clk)) 71 return PTR_ERR(ddata->clk); 72 73 err = clk_prepare_enable(ddata->clk); 74 if (err) 75 return err; 76 77 /* 78 * Set the Operating Mode in the Mode Register: only the selected device 79 * is clocked. Hence, registers of the other serial devices remain 80 * inaccessible and are read as zero. Also the external I/O lines of the 81 * Flexcom are muxed to reach the selected device. 82 */ 83 writel(FLEX_MR_OPMODE(ddata->opmode), ddata->base + FLEX_MR); 84 85 caps = of_device_get_match_data(&pdev->dev); 86 if (!caps) { 87 dev_err(&pdev->dev, "Could not retrieve flexcom caps\n"); 88 return -EINVAL; 89 } 90 91 /* Flexcom Mux */ 92 if (caps->has_flx_mux && of_property_read_bool(np, "mux-controls")) { 93 struct mux_control *flx_mux; 94 struct of_phandle_args args; 95 int i, count; 96 > 97 flx_mux = devm_mux_control_get(&pdev->dev, NULL); 98 if (IS_ERR(flx_mux)) 99 return PTR_ERR(flx_mux); 100 101 count = of_property_count_strings(np, "mux-control-names"); 102 for (i = 0; i < count; i++) { 103 err = of_parse_phandle_with_fixed_args(np, "mux-controls", 1, i, &args); 104 if (err) 105 break; 106 107 err = mux_control_select(flx_mux, args.args[0]); 108 if (!err) { > 109 mux_control_deselect(flx_mux); 110 } else { 111 dev_err(&pdev->dev, "Failed to select FLEXCOM mux\n"); 112 return err; 113 } 114 } 115 } 116 117 clk_disable_unprepare(ddata->clk); 118 119 return devm_of_platform_populate(&pdev->dev); 120 } 121 -- 0-DAY CI Kernel Test Service https://01.org/lkp