[PATCH 4/4] mux: lan966: Add support for flexcom mux controller

kernel test robot lkp at intel.com
Tue May 3 12:57:32 PDT 2022


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@intel.com/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 at intel.com>

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



More information about the linux-arm-kernel mailing list