* Re: [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform
@ 2025-06-18 0:51 kernel test robot
0 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2025-06-18 0:51 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Julia Lawall
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20250616124934.141782-3-al.kochet@gmail.com>
References: <20250616124934.141782-3-al.kochet@gmail.com>
TO: Alexander Kochetkov <al.kochet@gmail.com>
TO: Vinod Koul <vkoul@kernel.org>
TO: dmaengine@vger.kernel.org
TO: linux-kernel@vger.kernel.org
CC: Nishad Saraf <nishads@amd.com>
CC: Lizhi Hou <lizhi.hou@amd.com>
CC: Jacky Huang <ychuang3@nuvoton.com>
CC: "Shan-Chun Hung" <schung@nuvoton.com>
CC: Florian Fainelli <florian.fainelli@broadcom.com>
CC: Ray Jui <rjui@broadcom.com>
CC: Scott Branden <sbranden@broadcom.com>
CC: "Lars-Peter Clausen" <lars@metafoo.de>
CC: Paul Cercueil <paul@crapouillou.net>
CC: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
CC: Manivannan Sadhasivam <mani@kernel.org>
CC: Frank Li <Frank.Li@nxp.com>
CC: Zhou Wang <wangzhou1@hisilicon.com>
CC: Longfang Liu <liulongfang@huawei.com>
CC: Andy Shevchenko <andy@kernel.org>
CC: Shawn Guo <shawnguo@kernel.org>
CC: Sascha Hauer <s.hauer@pengutronix.de>
CC: Pengutronix Kernel Team <kernel@pengutronix.de>
CC: Fabio Estevam <festevam@gmail.com>
CC: Keguang Zhang <keguang.zhang@gmail.com>
CC: Sean Wang <sean.wang@mediatek.com>
CC: Matthias Brugger <matthias.bgg@gmail.com>
CC: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
CC: "Andreas Färber" <afaerber@suse.de>
CC: Daniel Mack <daniel@zonque.org>
CC: Haojian Zhuang <haojian.zhuang@gmail.com>
CC: Robert Jarzmik <robert.jarzmik@free.fr>
Hi Alexander,
kernel test robot noticed the following build warnings:
[auto build test WARNING on vkoul-dmaengine/next]
[also build test WARNING on shawnguo/for-next sunxi/sunxi/for-next lee-mfd/for-mfd-next linus/master v6.16-rc2 next-20250617]
[cannot apply to atorgue-stm32/stm32-next lee-mfd/for-mfd-fixes]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Alexander-Kochetkov/dmaengine-virt-dma-convert-tasklet-to-BH-workqueue-for-callback-invocation/20250616-205118
base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
patch link: https://lore.kernel.org/r/20250616124934.141782-3-al.kochet%40gmail.com
patch subject: [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: alpha-randconfig-r052-20250618 (https://download.01.org/0day-ci/archive/20250618/202506180852.dB2jZ8KI-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250618/202506180852.dB2jZ8KI-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202506180852.dB2jZ8KI-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/dma/bcm2835-dma.c:856:34: warning: 'bcm2835_dma_of_match' defined but not used [-Wunused-const-variable=]
static const struct of_device_id bcm2835_dma_of_match[] = {
^~~~~~~~~~~~~~~~~~~~
cocci warnings: (new ones prefixed by >>)
>> drivers/dma/bcm2835-dma.c:994:36-37: WARNING opportunity for min()
vim +994 drivers/dma/bcm2835-dma.c
96286b57669073 Florian Meier 2014-01-06 855
96286b57669073 Florian Meier 2014-01-06 @856 static const struct of_device_id bcm2835_dma_of_match[] = {
96286b57669073 Florian Meier 2014-01-06 857 { .compatible = "brcm,bcm2835-dma", },
96286b57669073 Florian Meier 2014-01-06 858 {},
96286b57669073 Florian Meier 2014-01-06 859 };
96286b57669073 Florian Meier 2014-01-06 860 MODULE_DEVICE_TABLE(of, bcm2835_dma_of_match);
96286b57669073 Florian Meier 2014-01-06 861
96286b57669073 Florian Meier 2014-01-06 862 static struct dma_chan *bcm2835_dma_xlate(struct of_phandle_args *spec,
96286b57669073 Florian Meier 2014-01-06 863 struct of_dma *ofdma)
96286b57669073 Florian Meier 2014-01-06 864 {
96286b57669073 Florian Meier 2014-01-06 865 struct bcm2835_dmadev *d = ofdma->of_dma_data;
96286b57669073 Florian Meier 2014-01-06 866 struct dma_chan *chan;
96286b57669073 Florian Meier 2014-01-06 867
96286b57669073 Florian Meier 2014-01-06 868 chan = dma_get_any_slave_channel(&d->ddev);
96286b57669073 Florian Meier 2014-01-06 869 if (!chan)
96286b57669073 Florian Meier 2014-01-06 870 return NULL;
96286b57669073 Florian Meier 2014-01-06 871
96286b57669073 Florian Meier 2014-01-06 872 /* Set DREQ from param */
96286b57669073 Florian Meier 2014-01-06 873 to_bcm2835_dma_chan(chan)->dreq = spec->args[0];
96286b57669073 Florian Meier 2014-01-06 874
96286b57669073 Florian Meier 2014-01-06 875 return chan;
96286b57669073 Florian Meier 2014-01-06 876 }
96286b57669073 Florian Meier 2014-01-06 877
9602a843cb3a16 Stefan Wahren 2024-12-04 878 static int bcm2835_dma_suspend_late(struct device *dev)
9602a843cb3a16 Stefan Wahren 2024-12-04 879 {
9602a843cb3a16 Stefan Wahren 2024-12-04 880 struct bcm2835_dmadev *od = dev_get_drvdata(dev);
9602a843cb3a16 Stefan Wahren 2024-12-04 881 struct bcm2835_chan *c, *next;
9602a843cb3a16 Stefan Wahren 2024-12-04 882
9602a843cb3a16 Stefan Wahren 2024-12-04 883 list_for_each_entry_safe(c, next, &od->ddev.channels,
9602a843cb3a16 Stefan Wahren 2024-12-04 884 vc.chan.device_node) {
9602a843cb3a16 Stefan Wahren 2024-12-04 885 void __iomem *chan_base = c->chan_base;
9602a843cb3a16 Stefan Wahren 2024-12-04 886
9602a843cb3a16 Stefan Wahren 2024-12-04 887 /* Check if DMA channel is busy */
9602a843cb3a16 Stefan Wahren 2024-12-04 888 if (readl(chan_base + BCM2835_DMA_ADDR))
9602a843cb3a16 Stefan Wahren 2024-12-04 889 return -EBUSY;
9602a843cb3a16 Stefan Wahren 2024-12-04 890 }
9602a843cb3a16 Stefan Wahren 2024-12-04 891
9602a843cb3a16 Stefan Wahren 2024-12-04 892 return 0;
9602a843cb3a16 Stefan Wahren 2024-12-04 893 }
9602a843cb3a16 Stefan Wahren 2024-12-04 894
9602a843cb3a16 Stefan Wahren 2024-12-04 895 static const struct dev_pm_ops bcm2835_dma_pm_ops = {
95032938c7c9b2 Stefan Wahren 2025-02-22 896 LATE_SYSTEM_SLEEP_PM_OPS(bcm2835_dma_suspend_late, NULL)
9602a843cb3a16 Stefan Wahren 2024-12-04 897 };
9602a843cb3a16 Stefan Wahren 2024-12-04 898
96286b57669073 Florian Meier 2014-01-06 899 static int bcm2835_dma_probe(struct platform_device *pdev)
96286b57669073 Florian Meier 2014-01-06 900 {
96286b57669073 Florian Meier 2014-01-06 901 struct bcm2835_dmadev *od;
96286b57669073 Florian Meier 2014-01-06 902 void __iomem *base;
96286b57669073 Florian Meier 2014-01-06 903 int rc;
e2eca6389b031c Martin Sperl 2016-04-11 904 int i, j;
e2eca6389b031c Martin Sperl 2016-04-11 905 int irq[BCM2835_DMA_MAX_DMA_CHAN_SUPPORTED + 1];
e2eca6389b031c Martin Sperl 2016-04-11 906 int irq_flags;
96286b57669073 Florian Meier 2014-01-06 907 uint32_t chans_available;
e2eca6389b031c Martin Sperl 2016-04-11 908 char chan_name[BCM2835_DMA_CHAN_NAME_SIZE];
96286b57669073 Florian Meier 2014-01-06 909
96286b57669073 Florian Meier 2014-01-06 910 if (!pdev->dev.dma_mask)
96286b57669073 Florian Meier 2014-01-06 911 pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask;
96286b57669073 Florian Meier 2014-01-06 912
96286b57669073 Florian Meier 2014-01-06 913 rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
72503b25ee3638 Stefan Wahren 2019-07-16 914 if (rc) {
72503b25ee3638 Stefan Wahren 2019-07-16 915 dev_err(&pdev->dev, "Unable to set DMA mask\n");
96286b57669073 Florian Meier 2014-01-06 916 return rc;
72503b25ee3638 Stefan Wahren 2019-07-16 917 }
96286b57669073 Florian Meier 2014-01-06 918
96286b57669073 Florian Meier 2014-01-06 919 od = devm_kzalloc(&pdev->dev, sizeof(*od), GFP_KERNEL);
96286b57669073 Florian Meier 2014-01-06 920 if (!od)
96286b57669073 Florian Meier 2014-01-06 921 return -ENOMEM;
96286b57669073 Florian Meier 2014-01-06 922
96286b57669073 Florian Meier 2014-01-06 923 dma_set_max_seg_size(&pdev->dev, 0x3FFFFFFF);
96286b57669073 Florian Meier 2014-01-06 924
4b23603a251d24 Tudor Ambarus 2022-11-10 925 base = devm_platform_ioremap_resource(pdev, 0);
96286b57669073 Florian Meier 2014-01-06 926 if (IS_ERR(base))
96286b57669073 Florian Meier 2014-01-06 927 return PTR_ERR(base);
96286b57669073 Florian Meier 2014-01-06 928
96286b57669073 Florian Meier 2014-01-06 929 od->base = base;
96286b57669073 Florian Meier 2014-01-06 930
96286b57669073 Florian Meier 2014-01-06 931 dma_cap_set(DMA_SLAVE, od->ddev.cap_mask);
7f5ae3553685d5 Florian Meier 2014-01-17 932 dma_cap_set(DMA_PRIVATE, od->ddev.cap_mask);
96286b57669073 Florian Meier 2014-01-06 933 dma_cap_set(DMA_CYCLIC, od->ddev.cap_mask);
d9f094a02f3051 Martin Sperl 2016-03-16 934 dma_cap_set(DMA_MEMCPY, od->ddev.cap_mask);
96286b57669073 Florian Meier 2014-01-06 935 od->ddev.device_alloc_chan_resources = bcm2835_dma_alloc_chan_resources;
96286b57669073 Florian Meier 2014-01-06 936 od->ddev.device_free_chan_resources = bcm2835_dma_free_chan_resources;
96286b57669073 Florian Meier 2014-01-06 937 od->ddev.device_tx_status = bcm2835_dma_tx_status;
96286b57669073 Florian Meier 2014-01-06 938 od->ddev.device_issue_pending = bcm2835_dma_issue_pending;
96286b57669073 Florian Meier 2014-01-06 939 od->ddev.device_prep_dma_cyclic = bcm2835_dma_prep_dma_cyclic;
388cc7a281c06e Martin Sperl 2016-03-16 940 od->ddev.device_prep_slave_sg = bcm2835_dma_prep_slave_sg;
d9f094a02f3051 Martin Sperl 2016-03-16 941 od->ddev.device_prep_dma_memcpy = bcm2835_dma_prep_dma_memcpy;
39159bea78ed05 Maxime Ripard 2014-11-17 942 od->ddev.device_config = bcm2835_dma_slave_config;
39159bea78ed05 Maxime Ripard 2014-11-17 943 od->ddev.device_terminate_all = bcm2835_dma_terminate_all;
de92436ac40ffe Peter Ujfalusi 2017-11-14 944 od->ddev.device_synchronize = bcm2835_dma_synchronize;
b574368024670a Maxime Ripard 2014-11-17 945 od->ddev.src_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_4_BYTES);
b574368024670a Maxime Ripard 2014-11-17 946 od->ddev.dst_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_4_BYTES);
d9f094a02f3051 Martin Sperl 2016-03-16 947 od->ddev.directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV) |
d9f094a02f3051 Martin Sperl 2016-03-16 948 BIT(DMA_MEM_TO_MEM);
0fa5867e6a2c61 Martin Sperl 2016-03-16 949 od->ddev.residue_granularity = DMA_RESIDUE_GRANULARITY_BURST;
6f6869dc97e865 Lukas Wunner 2019-09-11 950 od->ddev.descriptor_reuse = true;
96286b57669073 Florian Meier 2014-01-06 951 od->ddev.dev = &pdev->dev;
96286b57669073 Florian Meier 2014-01-06 952 INIT_LIST_HEAD(&od->ddev.channels);
96286b57669073 Florian Meier 2014-01-06 953
96286b57669073 Florian Meier 2014-01-06 954 platform_set_drvdata(pdev, od);
96286b57669073 Florian Meier 2014-01-06 955
bf75703d0912da Lukas Wunner 2019-09-11 956 od->zero_page = dma_map_page_attrs(od->ddev.dev, ZERO_PAGE(0), 0,
bf75703d0912da Lukas Wunner 2019-09-11 957 PAGE_SIZE, DMA_TO_DEVICE,
bf75703d0912da Lukas Wunner 2019-09-11 958 DMA_ATTR_SKIP_CPU_SYNC);
bf75703d0912da Lukas Wunner 2019-09-11 959 if (dma_mapping_error(od->ddev.dev, od->zero_page)) {
bf75703d0912da Lukas Wunner 2019-09-11 960 dev_err(&pdev->dev, "Failed to map zero page\n");
bf75703d0912da Lukas Wunner 2019-09-11 961 return -ENOMEM;
bf75703d0912da Lukas Wunner 2019-09-11 962 }
bf75703d0912da Lukas Wunner 2019-09-11 963
96286b57669073 Florian Meier 2014-01-06 964 /* Request DMA channel mask from device tree */
96286b57669073 Florian Meier 2014-01-06 965 if (of_property_read_u32(pdev->dev.of_node,
96286b57669073 Florian Meier 2014-01-06 966 "brcm,dma-channel-mask",
96286b57669073 Florian Meier 2014-01-06 967 &chans_available)) {
96286b57669073 Florian Meier 2014-01-06 968 dev_err(&pdev->dev, "Failed to get channel mask\n");
96286b57669073 Florian Meier 2014-01-06 969 rc = -EINVAL;
96286b57669073 Florian Meier 2014-01-06 970 goto err_no_dma;
96286b57669073 Florian Meier 2014-01-06 971 }
96286b57669073 Florian Meier 2014-01-06 972
e2eca6389b031c Martin Sperl 2016-04-11 973 /* get irqs for each channel that we support */
e2eca6389b031c Martin Sperl 2016-04-11 974 for (i = 0; i <= BCM2835_DMA_MAX_DMA_CHAN_SUPPORTED; i++) {
e2eca6389b031c Martin Sperl 2016-04-11 975 /* skip masked out channels */
e2eca6389b031c Martin Sperl 2016-04-11 976 if (!(chans_available & (1 << i))) {
e2eca6389b031c Martin Sperl 2016-04-11 977 irq[i] = -1;
e2eca6389b031c Martin Sperl 2016-04-11 978 continue;
e2eca6389b031c Martin Sperl 2016-04-11 979 }
e2eca6389b031c Martin Sperl 2016-04-11 980
e2eca6389b031c Martin Sperl 2016-04-11 981 /* get the named irq */
e2eca6389b031c Martin Sperl 2016-04-11 982 snprintf(chan_name, sizeof(chan_name), "dma%i", i);
e2eca6389b031c Martin Sperl 2016-04-11 983 irq[i] = platform_get_irq_byname(pdev, chan_name);
e2eca6389b031c Martin Sperl 2016-04-11 984 if (irq[i] >= 0)
e2eca6389b031c Martin Sperl 2016-04-11 985 continue;
e2eca6389b031c Martin Sperl 2016-04-11 986
e2eca6389b031c Martin Sperl 2016-04-11 987 /* legacy device tree case handling */
e2eca6389b031c Martin Sperl 2016-04-11 988 dev_warn_once(&pdev->dev,
0eef727a47c5ea Martin Sperl 2016-04-22 989 "missing interrupt-names property in device tree - legacy interpretation is used\n");
e2eca6389b031c Martin Sperl 2016-04-11 990 /*
e2eca6389b031c Martin Sperl 2016-04-11 991 * in case of channel >= 11
e2eca6389b031c Martin Sperl 2016-04-11 992 * use the 11th interrupt and that is shared
e2eca6389b031c Martin Sperl 2016-04-11 993 */
e2eca6389b031c Martin Sperl 2016-04-11 @994 irq[i] = platform_get_irq(pdev, i < 11 ? i : 11);
e2eca6389b031c Martin Sperl 2016-04-11 995 }
e2eca6389b031c Martin Sperl 2016-04-11 996
e2eca6389b031c Martin Sperl 2016-04-11 997 /* get irqs for each channel */
e2eca6389b031c Martin Sperl 2016-04-11 998 for (i = 0; i <= BCM2835_DMA_MAX_DMA_CHAN_SUPPORTED; i++) {
e2eca6389b031c Martin Sperl 2016-04-11 999 /* skip channels without irq */
e2eca6389b031c Martin Sperl 2016-04-11 1000 if (irq[i] < 0)
e2eca6389b031c Martin Sperl 2016-04-11 1001 continue;
e2eca6389b031c Martin Sperl 2016-04-11 1002
e2eca6389b031c Martin Sperl 2016-04-11 1003 /* check if there are other channels that also use this irq */
e2eca6389b031c Martin Sperl 2016-04-11 1004 irq_flags = 0;
e2eca6389b031c Martin Sperl 2016-04-11 1005 for (j = 0; j <= BCM2835_DMA_MAX_DMA_CHAN_SUPPORTED; j++)
e2eca6389b031c Martin Sperl 2016-04-11 1006 if ((i != j) && (irq[j] == irq[i])) {
e2eca6389b031c Martin Sperl 2016-04-11 1007 irq_flags = IRQF_SHARED;
96286b57669073 Florian Meier 2014-01-06 1008 break;
e2eca6389b031c Martin Sperl 2016-04-11 1009 }
96286b57669073 Florian Meier 2014-01-06 1010
e2eca6389b031c Martin Sperl 2016-04-11 1011 /* initialize the channel */
e2eca6389b031c Martin Sperl 2016-04-11 1012 rc = bcm2835_dma_chan_init(od, i, irq[i], irq_flags);
96286b57669073 Florian Meier 2014-01-06 1013 if (rc)
96286b57669073 Florian Meier 2014-01-06 1014 goto err_no_dma;
96286b57669073 Florian Meier 2014-01-06 1015 }
96286b57669073 Florian Meier 2014-01-06 1016
96286b57669073 Florian Meier 2014-01-06 1017 dev_dbg(&pdev->dev, "Initialized %i DMA channels\n", i);
96286b57669073 Florian Meier 2014-01-06 1018
96286b57669073 Florian Meier 2014-01-06 1019 /* Device-tree DMA controller registration */
96286b57669073 Florian Meier 2014-01-06 1020 rc = of_dma_controller_register(pdev->dev.of_node,
96286b57669073 Florian Meier 2014-01-06 1021 bcm2835_dma_xlate, od);
96286b57669073 Florian Meier 2014-01-06 1022 if (rc) {
96286b57669073 Florian Meier 2014-01-06 1023 dev_err(&pdev->dev, "Failed to register DMA controller\n");
96286b57669073 Florian Meier 2014-01-06 1024 goto err_no_dma;
96286b57669073 Florian Meier 2014-01-06 1025 }
96286b57669073 Florian Meier 2014-01-06 1026
96286b57669073 Florian Meier 2014-01-06 1027 rc = dma_async_device_register(&od->ddev);
96286b57669073 Florian Meier 2014-01-06 1028 if (rc) {
96286b57669073 Florian Meier 2014-01-06 1029 dev_err(&pdev->dev,
96286b57669073 Florian Meier 2014-01-06 1030 "Failed to register slave DMA engine device: %d\n", rc);
96286b57669073 Florian Meier 2014-01-06 1031 goto err_no_dma;
96286b57669073 Florian Meier 2014-01-06 1032 }
96286b57669073 Florian Meier 2014-01-06 1033
96286b57669073 Florian Meier 2014-01-06 1034 dev_dbg(&pdev->dev, "Load BCM2835 DMA engine driver\n");
96286b57669073 Florian Meier 2014-01-06 1035
96286b57669073 Florian Meier 2014-01-06 1036 return 0;
96286b57669073 Florian Meier 2014-01-06 1037
96286b57669073 Florian Meier 2014-01-06 1038 err_no_dma:
96286b57669073 Florian Meier 2014-01-06 1039 bcm2835_dma_free(od);
96286b57669073 Florian Meier 2014-01-06 1040 return rc;
96286b57669073 Florian Meier 2014-01-06 1041 }
96286b57669073 Florian Meier 2014-01-06 1042
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH v2 0/2] dmaengine: virt-dma: convert tasklet to BH workqueue for callback invocation
@ 2025-06-16 12:48 Alexander Kochetkov
2025-06-16 12:48 ` [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform Alexander Kochetkov
0 siblings, 1 reply; 8+ messages in thread
From: Alexander Kochetkov @ 2025-06-16 12:48 UTC (permalink / raw)
To: Vinod Koul, dmaengine, linux-kernel
Cc: Nishad Saraf, Lizhi Hou, Jacky Huang, Shan-Chun Hung,
Florian Fainelli, Ray Jui, Scott Branden, Lars-Peter Clausen,
Paul Cercueil, Eugeniy Paltsev, Manivannan Sadhasivam, Frank Li,
Zhou Wang, Longfang Liu, Andy Shevchenko, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Keguang Zhang, Sean Wang,
Matthias Brugger, AngeloGioacchino Del Regno, Andreas Färber,
Daniel Mack, Haojian Zhuang, Robert Jarzmik, Paul Walmsley,
Samuel Holland, Orson Zhai, Baolin Wang, Chunyan Zhang,
Patrice Chotard, Amélie Delaunay, Maxime Coquelin,
Alexandre Torgue, Chen-Yu Tsai, Jernej Skrabec, Laxman Dewangan,
Jon Hunter, Thierry Reding, Peter Ujfalusi, Kunihiko Hayashi,
Masami Hiramatsu, Dave Jiang, Amit Vadhavana,
Uwe Kleine-König, Ulf Hansson, Md Sadre Alam,
Alexander Kochetkov, Casey Connolly, Kees Cook, Fenghua Yu,
Jyothi Kumar Seerapu
Hello!
Here is v2.
I've updated patch accoding to recomendations from Andy Shevchenko:
- where possible I placed #include <linux/interrupt.h> in correct position
to keep include list ordered.
Also I provide patch file for Kconfig files. It allows to compile most of
virt-dma users on unsupported architecture. I've used ARM64 configuration
to compile kernel.
One driver (qcom_adm.o) is impossible to compile on ARM64, and that intended
behaviour. It has condition 'depends on (ARCH_QCOM || COMPILE_TEST) &&
!PHYS_ADDR_T_64BIT' preventing from building it on 64-bit architectures.
I've checked it doesn't touch virt-dma fields directly and contains
#include <linux/interrupt.h> already. It looks that it doesn't need any
changes. Anyway, I tried to compile it and only get the following errors:
/kernel-source/drivers/dma/qcom/qcom_adm.c: In function 'adm_process_fc_descriptors':
/kernel-source/drivers/dma/qcom/qcom_adm.c:245:21: error: assignment to 'u32 *'
{aka 'unsigned int *'} from incompatible pointer type 'phys_addr_t *'
{aka 'long long unsigned int *'} [-Werror=incompatible-pointer-types]
245 | src = &achan->slave.src_addr;
| ^
/kernel-source/drivers/dma/qcom/qcom_adm.c:251:21: error: assignment to 'u32 *'
{aka 'unsigned int *'} from incompatible pointer type 'phys_addr_t *'
{aka 'long long unsigned int *'} [-Werror=incompatible-pointer-types]
251 | dst = &achan->slave.dst_addr;
| ^
/kernel-source/drivers/dma/qcom/qcom_adm.c: In function 'adm_process_non_fc_descriptors':
/kernel-source/drivers/dma/qcom/qcom_adm.c:309:21: error: assignment to 'u32 *'
{aka 'unsigned int *'} from incompatible pointer type 'phys_addr_t *'
{aka 'long long unsigned int *'} [-Werror=incompatible-pointer-types]
309 | src = &achan->slave.src_addr;
| ^
/kernel-source/drivers/dma/qcom/qcom_adm.c:313:21: error: assignment to 'u32 *'
{aka 'unsigned int *'} from incompatible pointer type 'phys_addr_t *'
{aka 'long long unsigned int *'} [-Werror=incompatible-pointer-types]
313 | dst = &achan->slave.dst_addr;
| ^
/kernel-source/drivers/dma/qcom/qcom_adm.c: In function 'adm_dma_probe':
/kernel-source/drivers/dma/qcom/qcom_adm.c:77:41: warning: conversion from
'long unsigned int' to 'u32' {aka 'unsigned int'} changes value from
'18446744072371568648' to '2956984328' [-Woverflow]
77 | #define ADM_CI_RANGE_START(x) ((x) << 16)
/kernel-source/drivers/dma/qcom/qcom_adm.c:848:16: note: in expansion of
macro 'ADM_CI_RANGE_START'
848 | writel(ADM_CI_RANGE_START(0x40) | ADM_CI_RANGE_END(0xb0) |
In order to detect all users of virt-dma, I did following.
I got all include files containing 'virt-dma.h' or 'struct virt_dma_chan'.
$ git grep -l -e virt-dma.h -e 'struct virt_dma_chan' -- '*.h'
drivers/dma/amd/ae4dma/ae4dma.h
drivers/dma/amd/ptdma/ptdma.h
drivers/dma/amd/qdma/qdma.h
drivers/dma/dw-axi-dmac/dw-axi-dmac.h
drivers/dma/dw-edma/dw-edma-core.h
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.h
drivers/dma/fsl-edma-common.h
drivers/dma/hsu/hsu.h
drivers/dma/idma64.h
drivers/dma/sf-pdma/sf-pdma.h
drivers/dma/st_fdma.h
drivers/dma/virt-dma.h
I got all include files containing all include files found in step 1:
$ git grep -l -e ae4dma.h -e ptdma.h -e qdma.h -e dw-axi-dmac.h \
-e dw-edma-core.h -e dpaa2-qdma.h -e fsl-edma-common.h \
-e hsu.h -e idma64.h -e sf-pdma.h -e st_fdma.h -e virt-dma.h \
-e 'struct virt_dma_chan' -- '*.h'
drivers/dma/amd/ae4dma/ae4dma.h
drivers/dma/amd/ptdma/ptdma.h
drivers/dma/amd/qdma/qdma.h
drivers/dma/dw-axi-dmac/dw-axi-dmac.h
drivers/dma/dw-edma/dw-edma-core.h
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.h
drivers/dma/fsl-edma-common.h
drivers/dma/hsu/hsu.h
drivers/dma/idma64.h
drivers/dma/sf-pdma/sf-pdma.h
drivers/dma/st_fdma.h
drivers/dma/virt-dma.h
drivers/net/ethernet/mediatek/mtk_eth_soc.h
include/linux/dma/hsu.h
After that I got all users of virt dma:
$ git grep -l -e ae4dma.h -e ptdma.h -e qdma.h -e dw-axi-dmac.h \
-e dw-edma-core.h -e dpaa2-qdma.h -e fsl-edma-common.h \
-e hsu.h -e idma64.h -e sf-pdma.h -e st_fdma.h -e virt-dma.h \
-e mtk_eth_soc.h -e 'struct virt_dma_chan' -- '*.c'
drivers/dma/amba-pl08x.c
drivers/dma/amd/ae4dma/ae4dma-dev.c
drivers/dma/amd/ae4dma/ae4dma-pci.c
drivers/dma/amd/ptdma/ptdma-debugfs.c
drivers/dma/amd/ptdma/ptdma-dev.c
drivers/dma/amd/ptdma/ptdma-dmaengine.c
drivers/dma/amd/ptdma/ptdma-pci.c
drivers/dma/amd/qdma/qdma-comm-regs.c
drivers/dma/amd/qdma/qdma.c
drivers/dma/arm-dma350.c
drivers/dma/at_hdmac.c
drivers/dma/bcm2835-dma.c
drivers/dma/dma-axi-dmac.c
drivers/dma/dma-jz4780.c
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
drivers/dma/dw-edma/dw-edma-core.c
drivers/dma/dw-edma/dw-edma-pcie.c
drivers/dma/dw-edma/dw-edma-v0-core.c
drivers/dma/dw-edma/dw-edma-v0-debugfs.c
drivers/dma/dw-edma/dw-hdma-v0-core.c
drivers/dma/dw-edma/dw-hdma-v0-debugfs.c
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
drivers/dma/fsl-edma-common.c
drivers/dma/fsl-edma-main.c
drivers/dma/fsl-edma-trace.c
drivers/dma/fsl-qdma.c
drivers/dma/hisi_dma.c
drivers/dma/hsu/hsu.c
drivers/dma/hsu/pci.c
drivers/dma/idma64.c
drivers/dma/img-mdc-dma.c
drivers/dma/imx-sdma.c
drivers/dma/k3dma.c
drivers/dma/lgm/lgm-dma.c
drivers/dma/loongson1-apb-dma.c
drivers/dma/loongson2-apb-dma.c
drivers/dma/mcf-edma-main.c
drivers/dma/mediatek/mtk-cqdma.c
drivers/dma/mediatek/mtk-hsdma.c
drivers/dma/mediatek/mtk-uart-apdma.c
drivers/dma/milbeaut-hdmac.c
drivers/dma/milbeaut-xdmac.c
drivers/dma/moxart-dma.c
drivers/dma/owl-dma.c
drivers/dma/pxa_dma.c
drivers/dma/qcom/bam_dma.c
drivers/dma/qcom/gpi.c
drivers/dma/qcom/qcom_adm.c
drivers/dma/sa11x0-dma.c
drivers/dma/sf-pdma/sf-pdma.c
drivers/dma/sh/rz-dmac.c
drivers/dma/sh/usb-dmac.c
drivers/dma/sprd-dma.c
drivers/dma/st_fdma.c
drivers/dma/stm32/stm32-dma.c
drivers/dma/stm32/stm32-dma3.c
drivers/dma/stm32/stm32-mdma.c
drivers/dma/sun4i-dma.c
drivers/dma/sun6i-dma.c
drivers/dma/tegra186-gpc-dma.c
drivers/dma/tegra210-adma.c
drivers/dma/ti/edma.c
drivers/dma/ti/k3-udma.c
drivers/dma/ti/omap-dma.c
drivers/dma/uniphier-mdmac.c
drivers/dma/uniphier-xdmac.c
drivers/dma/virt-dma.c
drivers/dma/xilinx/xdma.c
drivers/dma/xilinx/xilinx_dpdma.c
drivers/mfd/intel-lpss.c
drivers/net/ethernet/airoha/airoha_eth.c
drivers/net/ethernet/mediatek/mtk_eth_path.c
drivers/net/ethernet/mediatek/mtk_eth_soc.c
drivers/net/ethernet/mediatek/mtk_ppe.c
drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c
drivers/net/ethernet/mediatek/mtk_ppe_offload.c
drivers/net/ethernet/mediatek/mtk_wed.c
drivers/pci/controller/pcie-xilinx-dma-pl.c
drivers/tty/serial/8250/8250_mid.c
After that I compiled kernel with following options:
CONFIG_COMPILE_TEST=y
CONFIG_FORCE_PCI=y
CONFIG_PCI=y
CONFIG_PCI_MSI=y
CONFIG_AMD_QDMA=y
CONFIG_AMD_PTDMA=y
CONFIG_DW_AXI_DMAC=y
CONFIG_DW_EDMA=y
CONFIG_DW_EDMA_PCIE=y
CONFIG_INTEL_LDMA=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_MT6577=y
CONFIG_MTK_HSDMA=y
CONFIG_MTK_CQDMA=y
CONFIG_MTK_UART_APDMA=y
# CONFIG_QCOM_ADM=y - error: assignment to 'u32 *' {aka 'unsigned int *'} from incompatible pointer type 'phys_addr_t *'
CONFIG_QCOM_GPI_DMA=y
CONFIG_QCOM_BAM_DMA=y
CONFIG_SF_PDMA=y
CONFIG_STM32_DMA=y
CONFIG_STM32_MDMA=y
CONFIG_STM32_DMA3=y
CONFIG_DMA_OMAP=y
CONFIG_TI_EDMA=y
CONFIG_TI_MESSAGE_MANAGER=y
CONFIG_TI_SCI_PROTOCOL=y
CONFIG_TI_SCI_INTA_IRQCHIP=y
CONFIG_TI_K3_UDMA=y
CONFIG_XILINX_ZYNQMP_DPDMA=y
CONFIG_XILINX_XDMA=y
CONFIG_AMBA_PL08X=y
CONFIG_ARM_DMA350=y
CONFIG_FSL_EDMA=y
CONFIG_FSL_QDMA=y
CONFIG_MCF_EDMA=y
CONFIG_INTEL_IDMA64=y
CONFIG_DMA_SUN6I=y
CONFIG_DMA_SUN4I=y
CONFIG_AT_HDMAC=y
CONFIG_REMOTEPROC=y
CONFIG_ST_FDMA=y
CONFIG_K3_DMA=y
CONFIG_DMA_SA11X0=y
CONFIG_AXI_DMAC=y
CONFIG_IMG_MDC_DMA=y
CONFIG_UNIPHIER_XDMAC=y
CONFIG_UNIPHIER_MDMAC=y
CONFIG_LOONGSON1_APB_DMA=y
CONFIG_LOONGSON2_APB_DMA=y
CONFIG_DMA_BCM2835=y
CONFIG_TEGRA210_ADMA=y
CONFIG_TEGRA186_GPC_DMA=y
CONFIG_MOXART_DMA=y
CONFIG_DMA_JZ4780=y
CONFIG_IMX_SDMA=y
CONFIG_OWL_DMA=y
CONFIG_SPRD_DMA=y
CONFIG_MILBEAUT_XDMAC=y
CONFIG_MILBEAUT_HDMAC=y
CONFIG_HISI_DMA=y
CONFIG_FSL_MC_BUS=y
CONFIG_FSL_MC_DPIO=y
CONFIG_FSL_DPAA2_QDMA=y
CONFIG_RZ_DMAC=y
CONFIG_RENESAS_USB_DMAC=y
CONFIG_PXA_DMA=y
CONFIG_HSU_DMA=y
CONFIG_HSU_DMA_PCI=y
CONFIG_MFD_INTEL_LPSS=y
CONFIG_NET_AIROHA=y
CONFIG_NET_VENDOR_MEDIATEK=y
CONFIG_NET_MEDIATEK_SOC=y
CONFIG_NET_MEDIATEK_SOC_WED=y
CONFIG_PCIE_XILINX_DMA_PL=y
CONFIG_SERIAL_8250_MID=y
CONFIG_AMD_AE4DMA=y
After that I've used following script to check compilation (it used file
list obtained in previous step):
#!/bin/bash
for f in `cat files`; do
f=`echo $f | sed 's/.c$/.o/'`
test -f $f && echo $f: ok || echo $f: No such file or directory
done
It produced following output:
$ ./check
drivers/dma/amba-pl08x.o: ok
drivers/dma/amd/ae4dma/ae4dma-dev.o: ok
drivers/dma/amd/ae4dma/ae4dma-pci.o: ok
drivers/dma/amd/ptdma/ptdma-debugfs.o: ok
drivers/dma/amd/ptdma/ptdma-dev.o: ok
drivers/dma/amd/ptdma/ptdma-dmaengine.o: ok
drivers/dma/amd/ptdma/ptdma-pci.o: ok
drivers/dma/amd/qdma/qdma-comm-regs.o: ok
drivers/dma/amd/qdma/qdma.o: ok
drivers/dma/arm-dma350.o: ok
drivers/dma/at_hdmac.o: ok
drivers/dma/bcm2835-dma.o: ok
drivers/dma/dma-axi-dmac.o: ok
drivers/dma/dma-jz4780.o: ok
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.o: ok
drivers/dma/dw-edma/dw-edma-core.o: ok
drivers/dma/dw-edma/dw-edma-pcie.o: ok
drivers/dma/dw-edma/dw-edma-v0-core.o: ok
drivers/dma/dw-edma/dw-edma-v0-debugfs.o: ok
drivers/dma/dw-edma/dw-hdma-v0-core.o: ok
drivers/dma/dw-edma/dw-hdma-v0-debugfs.o: ok
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.o: ok
drivers/dma/fsl-edma-common.o: ok
drivers/dma/fsl-edma-main.o: ok
drivers/dma/fsl-edma-trace.o: ok
drivers/dma/fsl-qdma.o: ok
drivers/dma/hisi_dma.o: ok
drivers/dma/hsu/hsu.o: ok
drivers/dma/hsu/pci.o: ok
drivers/dma/idma64.o: ok
drivers/dma/img-mdc-dma.o: ok
drivers/dma/imx-sdma.o: ok
drivers/dma/k3dma.o: ok
drivers/dma/lgm/lgm-dma.o: ok
drivers/dma/loongson1-apb-dma.o: ok
drivers/dma/loongson2-apb-dma.o: ok
drivers/dma/mcf-edma-main.o: ok
drivers/dma/mediatek/mtk-cqdma.o: ok
drivers/dma/mediatek/mtk-hsdma.o: ok
drivers/dma/mediatek/mtk-uart-apdma.o: ok
drivers/dma/milbeaut-hdmac.o: ok
drivers/dma/milbeaut-xdmac.o: ok
drivers/dma/moxart-dma.o: ok
drivers/dma/owl-dma.o: ok
drivers/dma/pxa_dma.o: ok
drivers/dma/qcom/bam_dma.o: ok
drivers/dma/qcom/gpi.o: ok
drivers/dma/qcom/qcom_adm.o: No such file or directory
drivers/dma/sa11x0-dma.o: ok
drivers/dma/sf-pdma/sf-pdma.o: ok
drivers/dma/sh/rz-dmac.o: ok
drivers/dma/sh/usb-dmac.o: ok
drivers/dma/sprd-dma.o: ok
drivers/dma/st_fdma.o: ok
drivers/dma/stm32/stm32-dma.o: ok
drivers/dma/stm32/stm32-dma3.o: ok
drivers/dma/stm32/stm32-mdma.o: ok
drivers/dma/sun4i-dma.o: ok
drivers/dma/sun6i-dma.o: ok
drivers/dma/tegra186-gpc-dma.o: ok
drivers/dma/tegra210-adma.o: ok
drivers/dma/ti/edma.o: ok
drivers/dma/ti/k3-udma.o: ok
drivers/dma/ti/omap-dma.o: ok
drivers/dma/uniphier-mdmac.o: ok
drivers/dma/uniphier-xdmac.o: ok
drivers/dma/virt-dma.o: ok
drivers/dma/xilinx/xdma.o: ok
drivers/dma/xilinx/xilinx_dpdma.o: ok
drivers/mfd/intel-lpss.o: ok
drivers/net/ethernet/airoha/airoha_eth.o: ok
drivers/net/ethernet/mediatek/mtk_eth_path.o: ok
drivers/net/ethernet/mediatek/mtk_eth_soc.o: ok
drivers/net/ethernet/mediatek/mtk_ppe.o: ok
drivers/net/ethernet/mediatek/mtk_ppe_debugfs.o: ok
drivers/net/ethernet/mediatek/mtk_ppe_offload.o: ok
drivers/net/ethernet/mediatek/mtk_wed.o: ok
drivers/pci/controller/pcie-xilinx-dma-pl.o: ok
drivers/tty/serial/8250/8250_mid.o: ok
Alexander Kochetkov (2):
dmaengine: virt-dma: convert tasklet to BH workqueue for callback
invocation
Allow compile virt-dma users on ARM64 platform
drivers/dma/Kconfig | 22 +++++++++----------
drivers/dma/amd/Kconfig | 4 ++--
drivers/dma/amd/qdma/qdma.c | 1 +
drivers/dma/arm-dma350.c | 1 +
drivers/dma/bcm2835-dma.c | 2 +-
drivers/dma/dma-axi-dmac.c | 8 +++----
drivers/dma/dma-jz4780.c | 2 +-
.../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 2 +-
drivers/dma/dw-edma/dw-edma-core.c | 2 +-
drivers/dma/fsl-edma-common.c | 2 +-
drivers/dma/fsl-edma-common.h | 1 +
drivers/dma/fsl-qdma.c | 3 ++-
drivers/dma/hisi_dma.c | 2 +-
drivers/dma/hsu/Kconfig | 4 ++--
drivers/dma/hsu/hsu.c | 2 +-
drivers/dma/idma64.c | 3 ++-
drivers/dma/img-mdc-dma.c | 2 +-
drivers/dma/imx-sdma.c | 2 +-
drivers/dma/k3dma.c | 2 +-
drivers/dma/loongson1-apb-dma.c | 2 +-
drivers/dma/mediatek/mtk-cqdma.c | 2 +-
drivers/dma/mediatek/mtk-hsdma.c | 3 ++-
drivers/dma/mediatek/mtk-uart-apdma.c | 4 ++--
drivers/dma/owl-dma.c | 2 +-
drivers/dma/pxa_dma.c | 2 +-
drivers/dma/qcom/Kconfig | 6 ++---
drivers/dma/qcom/bam_dma.c | 4 ++--
drivers/dma/qcom/gpi.c | 1 +
drivers/dma/qcom/qcom_adm.c | 2 +-
drivers/dma/sa11x0-dma.c | 2 +-
drivers/dma/sf-pdma/sf-pdma.c | 3 ++-
drivers/dma/sprd-dma.c | 2 +-
drivers/dma/st_fdma.c | 2 +-
drivers/dma/stm32/stm32-dma.c | 1 +
drivers/dma/stm32/stm32-dma3.c | 1 +
drivers/dma/stm32/stm32-mdma.c | 1 +
drivers/dma/sun6i-dma.c | 2 +-
drivers/dma/tegra186-gpc-dma.c | 2 +-
drivers/dma/tegra210-adma.c | 3 ++-
drivers/dma/ti/Kconfig | 2 +-
drivers/dma/ti/edma.c | 2 +-
drivers/dma/ti/k3-udma.c | 10 ++++-----
drivers/dma/ti/omap-dma.c | 2 +-
drivers/dma/uniphier-xdmac.c | 1 +
drivers/dma/virt-dma.c | 8 +++----
drivers/dma/virt-dma.h | 10 ++++-----
drivers/mfd/Kconfig | 2 +-
47 files changed, 82 insertions(+), 69 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform
2025-06-16 12:48 [PATCH v2 0/2] dmaengine: virt-dma: convert tasklet to BH workqueue for callback invocation Alexander Kochetkov
@ 2025-06-16 12:48 ` Alexander Kochetkov
2025-06-17 9:30 ` kernel test robot
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Alexander Kochetkov @ 2025-06-16 12:48 UTC (permalink / raw)
To: Vinod Koul, dmaengine, linux-kernel
Cc: Nishad Saraf, Lizhi Hou, Jacky Huang, Shan-Chun Hung,
Florian Fainelli, Ray Jui, Scott Branden, Lars-Peter Clausen,
Paul Cercueil, Eugeniy Paltsev, Manivannan Sadhasivam, Frank Li,
Zhou Wang, Longfang Liu, Andy Shevchenko, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Keguang Zhang, Sean Wang,
Matthias Brugger, AngeloGioacchino Del Regno, Andreas Färber,
Daniel Mack, Haojian Zhuang, Robert Jarzmik, Paul Walmsley,
Samuel Holland, Orson Zhai, Baolin Wang, Chunyan Zhang,
Patrice Chotard, Amélie Delaunay, Maxime Coquelin,
Alexandre Torgue, Chen-Yu Tsai, Jernej Skrabec, Laxman Dewangan,
Jon Hunter, Thierry Reding, Peter Ujfalusi, Kunihiko Hayashi,
Masami Hiramatsu, Dave Jiang, Amit Vadhavana,
Uwe Kleine-König, Ulf Hansson, Md Sadre Alam,
Alexander Kochetkov, Casey Connolly, Kees Cook, Fenghua Yu,
Jyothi Kumar Seerapu
This patch is for testing only!
Most of DMA drivers are platform specific and their configuration
options can be enabled only then building kernel for specific
platform. In order to simplify compilation check of such drivers
Kconfig files were modified.
Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
---
drivers/dma/Kconfig | 22 +++++++++++-----------
drivers/dma/amd/Kconfig | 4 ++--
drivers/dma/hsu/Kconfig | 4 ++--
drivers/dma/qcom/Kconfig | 6 +++---
drivers/dma/ti/Kconfig | 2 +-
drivers/mfd/Kconfig | 2 +-
6 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index db87dd2a07f7..b1840ae86964 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -103,7 +103,7 @@ config ARM_DMA350
config AT_HDMAC
tristate "Atmel AHB DMA support"
- depends on ARCH_AT91
+ depends on ARCH_AT91 || COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
@@ -144,7 +144,7 @@ config BCM_SBA_RAID
config DMA_BCM2835
tristate "BCM2835 DMA engine support"
- depends on ARCH_BCM2835
+ depends on ARCH_BCM2835 || COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
@@ -170,7 +170,7 @@ config DMA_SA11X0
config DMA_SUN4I
tristate "Allwinner A10 DMA SoCs support"
- depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUNIV
+ depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUNIV || COMPILE_TEST
default (MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUNIV)
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
@@ -207,7 +207,7 @@ config EP93XX_DMA
config FSL_DMA
tristate "Freescale Elo series DMA support"
- depends on FSL_SOC
+ depends on FSL_SOC || COMPILE_TEST
select DMA_ENGINE
select ASYNC_TX_ENABLE_CHANNEL_SWITCH
help
@@ -219,7 +219,7 @@ config FSL_DMA
config FSL_EDMA
tristate "Freescale eDMA engine support"
depends on OF
- depends on HAS_IOMEM
+ depends on HAS_IOMEM || COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
@@ -280,7 +280,7 @@ config IMX_DMA
config IMX_SDMA
tristate "i.MX SDMA support"
- depends on ARCH_MXC
+ depends on ARCH_MXC || COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
@@ -289,7 +289,7 @@ config IMX_SDMA
config INTEL_IDMA64
tristate "Intel integrated DMA 64-bit support"
- depends on HAS_IOMEM
+ depends on HAS_IOMEM || COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
@@ -420,7 +420,7 @@ config LPC32XX_DMAMUX
config MCF_EDMA
tristate "Freescale eDMA engine support, ColdFire mcf5441x SoCs"
- depends on M5441x || (COMPILE_TEST && FSL_EDMA=n)
+ depends on M5441x || (COMPILE_TEST)
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
@@ -467,7 +467,7 @@ config MMP_TDMA
config MOXART_DMA
tristate "MOXART DMA support"
- depends on ARCH_MOXART
+ depends on ARCH_MOXART || COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
@@ -523,7 +523,7 @@ config NBPFAXI_DMA
config OWL_DMA
tristate "Actions Semi Owl SoCs DMA support"
- depends on ARCH_ACTIONS
+ depends on ARCH_ACTIONS || COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
@@ -582,7 +582,7 @@ config STE_DMA40
config ST_FDMA
tristate "ST FDMA dmaengine support"
- depends on ARCH_STI
+ depends on ARCH_STI || COMPILE_TEST
depends on REMOTEPROC
select ST_SLIM_REMOTEPROC
select DMA_ENGINE
diff --git a/drivers/dma/amd/Kconfig b/drivers/dma/amd/Kconfig
index 00d874872a8f..8773f3c5c31c 100644
--- a/drivers/dma/amd/Kconfig
+++ b/drivers/dma/amd/Kconfig
@@ -2,7 +2,7 @@
#
config AMD_AE4DMA
- tristate "AMD AE4DMA Engine"
+ bool "AMD AE4DMA Engine"
depends on (X86_64 || COMPILE_TEST) && PCI
depends on AMD_PTDMA
select DMA_ENGINE
@@ -17,7 +17,7 @@ config AMD_AE4DMA
config AMD_PTDMA
tristate "AMD PassThru DMA Engine"
- depends on X86_64 && PCI
+ depends on (X86_64 || COMPILE_TEST) && PCI
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
diff --git a/drivers/dma/hsu/Kconfig b/drivers/dma/hsu/Kconfig
index af102baec125..80426b74d3a2 100644
--- a/drivers/dma/hsu/Kconfig
+++ b/drivers/dma/hsu/Kconfig
@@ -1,10 +1,10 @@
# SPDX-License-Identifier: GPL-2.0-only
# DMA engine configuration for hsu
config HSU_DMA
- tristate
+ bool "HSU_DMA"
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
config HSU_DMA_PCI
- tristate
+ bool "HSU_DMA_PCI"
depends on HSU_DMA && PCI
diff --git a/drivers/dma/qcom/Kconfig b/drivers/dma/qcom/Kconfig
index ace75d7b835a..224436d3e50a 100644
--- a/drivers/dma/qcom/Kconfig
+++ b/drivers/dma/qcom/Kconfig
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0-only
config QCOM_ADM
tristate "Qualcomm ADM support"
- depends on (ARCH_QCOM || COMPILE_TEST) && !PHYS_ADDR_T_64BIT
+ depends on (ARCH_QCOM || COMPILE_TEST)
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
@@ -12,7 +12,7 @@ config QCOM_ADM
config QCOM_BAM_DMA
tristate "QCOM BAM DMA support"
- depends on ARCH_QCOM || (COMPILE_TEST && OF && ARM)
+ depends on ARCH_QCOM || (COMPILE_TEST && OF && ARM) || COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
@@ -21,7 +21,7 @@ config QCOM_BAM_DMA
config QCOM_GPI_DMA
tristate "Qualcomm Technologies GPI DMA support"
- depends on ARCH_QCOM
+ depends on ARCH_QCOM || COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
diff --git a/drivers/dma/ti/Kconfig b/drivers/dma/ti/Kconfig
index 2adc2cca10e9..8bd0b4739326 100644
--- a/drivers/dma/ti/Kconfig
+++ b/drivers/dma/ti/Kconfig
@@ -36,7 +36,7 @@ config DMA_OMAP
config TI_K3_UDMA
tristate "Texas Instruments UDMA support"
- depends on ARCH_K3
+ depends on ARCH_K3 || COMPILE_TEST
depends on TI_SCI_PROTOCOL
depends on TI_SCI_INTA_IRQCHIP
select DMA_ENGINE
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 6fb3768e3d71..866997123a1c 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -702,7 +702,7 @@ config INTEL_SOC_PMIC_MRFLD
that is found on Intel Merrifield systems.
config MFD_INTEL_LPSS
- tristate
+ bool "MFD_INTEL_LPSS"
select COMMON_CLK
select MFD_CORE
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform
2025-06-16 12:48 ` [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform Alexander Kochetkov
@ 2025-06-17 9:30 ` kernel test robot
2025-06-17 10:16 ` Alexander Kochetkov
2025-06-17 10:32 ` kernel test robot
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: kernel test robot @ 2025-06-17 9:30 UTC (permalink / raw)
To: Alexander Kochetkov, Vinod Koul, dmaengine, linux-kernel
Cc: llvm, oe-kbuild-all, Nishad Saraf, Lizhi Hou, Jacky Huang,
Shan-Chun Hung, Florian Fainelli, Ray Jui, Scott Branden,
Lars-Peter Clausen, Paul Cercueil, Eugeniy Paltsev,
Manivannan Sadhasivam, Frank Li, Zhou Wang, Longfang Liu,
Andy Shevchenko, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, Keguang Zhang, Sean Wang, Matthias Brugger,
AngeloGioacchino Del Regno, Andreas Färber, Daniel Mack,
Haojian Zhuang, Robert Jarzmik
Hi Alexander,
kernel test robot noticed the following build warnings:
[auto build test WARNING on vkoul-dmaengine/next]
[also build test WARNING on shawnguo/for-next sunxi/sunxi/for-next lee-mfd/for-mfd-next linus/master v6.16-rc2 next-20250617]
[cannot apply to atorgue-stm32/stm32-next lee-mfd/for-mfd-fixes]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Alexander-Kochetkov/dmaengine-virt-dma-convert-tasklet-to-BH-workqueue-for-callback-invocation/20250616-205118
base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
patch link: https://lore.kernel.org/r/20250616124934.141782-3-al.kochet%40gmail.com
patch subject: [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20250617/202506171615.p1kpBZuQ-lkp@intel.com/config)
compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250617/202506171615.p1kpBZuQ-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506171615.p1kpBZuQ-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/dma/qcom/qcom_adm.c:245:7: error: incompatible pointer types assigning to 'u32 *' (aka 'unsigned int *') from 'phys_addr_t *' (aka 'unsigned long long *') [-Werror,-Wincompatible-pointer-types]
245 | src = &achan->slave.src_addr;
| ^ ~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/qcom/qcom_adm.c:251:7: error: incompatible pointer types assigning to 'u32 *' (aka 'unsigned int *') from 'phys_addr_t *' (aka 'unsigned long long *') [-Werror,-Wincompatible-pointer-types]
251 | dst = &achan->slave.dst_addr;
| ^ ~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/qcom/qcom_adm.c:309:7: error: incompatible pointer types assigning to 'u32 *' (aka 'unsigned int *') from 'phys_addr_t *' (aka 'unsigned long long *') [-Werror,-Wincompatible-pointer-types]
309 | src = &achan->slave.src_addr;
| ^ ~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/qcom/qcom_adm.c:313:7: error: incompatible pointer types assigning to 'u32 *' (aka 'unsigned int *') from 'phys_addr_t *' (aka 'unsigned long long *') [-Werror,-Wincompatible-pointer-types]
313 | dst = &achan->slave.dst_addr;
| ^ ~~~~~~~~~~~~~~~~~~~~~~
>> drivers/dma/qcom/qcom_adm.c:848:59: warning: implicit conversion from 'unsigned long' to 'unsigned int' changes value from 18446744072371568648 to 2956984328 [-Wconstant-conversion]
848 | writel(ADM_CI_RANGE_START(0x40) | ADM_CI_RANGE_END(0xb0) |
| ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
849 | ADM_CI_BURST_8_WORDS, adev->regs + ADM_CI_CONF(0));
| ~~~~~~~~~~~~~~~~~~~~
1 warning and 4 errors generated.
vim +848 drivers/dma/qcom/qcom_adm.c
03de6b273805b3 Arnd Bergmann 2021-11-22 745
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 746 static int adm_dma_probe(struct platform_device *pdev)
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 747 {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 748 struct adm_device *adev;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 749 int ret;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 750 u32 i;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 751
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 752 adev = devm_kzalloc(&pdev->dev, sizeof(*adev), GFP_KERNEL);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 753 if (!adev)
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 754 return -ENOMEM;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 755
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 756 adev->dev = &pdev->dev;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 757
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 758 adev->regs = devm_platform_ioremap_resource(pdev, 0);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 759 if (IS_ERR(adev->regs))
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 760 return PTR_ERR(adev->regs);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 761
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 762 adev->irq = platform_get_irq(pdev, 0);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 763 if (adev->irq < 0)
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 764 return adev->irq;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 765
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 766 ret = of_property_read_u32(pdev->dev.of_node, "qcom,ee", &adev->ee);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 767 if (ret) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 768 dev_err(adev->dev, "Execution environment unspecified\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 769 return ret;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 770 }
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 771
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 772 adev->core_clk = devm_clk_get(adev->dev, "core");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 773 if (IS_ERR(adev->core_clk))
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 774 return PTR_ERR(adev->core_clk);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 775
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 776 adev->iface_clk = devm_clk_get(adev->dev, "iface");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 777 if (IS_ERR(adev->iface_clk))
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 778 return PTR_ERR(adev->iface_clk);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 779
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 780 adev->clk_reset = devm_reset_control_get_exclusive(&pdev->dev, "clk");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 781 if (IS_ERR(adev->clk_reset)) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 782 dev_err(adev->dev, "failed to get ADM0 reset\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 783 return PTR_ERR(adev->clk_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 784 }
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 785
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 786 adev->c0_reset = devm_reset_control_get_exclusive(&pdev->dev, "c0");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 787 if (IS_ERR(adev->c0_reset)) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 788 dev_err(adev->dev, "failed to get ADM0 C0 reset\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 789 return PTR_ERR(adev->c0_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 790 }
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 791
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 792 adev->c1_reset = devm_reset_control_get_exclusive(&pdev->dev, "c1");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 793 if (IS_ERR(adev->c1_reset)) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 794 dev_err(adev->dev, "failed to get ADM0 C1 reset\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 795 return PTR_ERR(adev->c1_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 796 }
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 797
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 798 adev->c2_reset = devm_reset_control_get_exclusive(&pdev->dev, "c2");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 799 if (IS_ERR(adev->c2_reset)) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 800 dev_err(adev->dev, "failed to get ADM0 C2 reset\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 801 return PTR_ERR(adev->c2_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 802 }
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 803
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 804 ret = clk_prepare_enable(adev->core_clk);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 805 if (ret) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 806 dev_err(adev->dev, "failed to prepare/enable core clock\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 807 return ret;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 808 }
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 809
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 810 ret = clk_prepare_enable(adev->iface_clk);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 811 if (ret) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 812 dev_err(adev->dev, "failed to prepare/enable iface clock\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 813 goto err_disable_core_clk;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 814 }
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 815
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 816 reset_control_assert(adev->clk_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 817 reset_control_assert(adev->c0_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 818 reset_control_assert(adev->c1_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 819 reset_control_assert(adev->c2_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 820
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 821 udelay(2);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 822
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 823 reset_control_deassert(adev->clk_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 824 reset_control_deassert(adev->c0_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 825 reset_control_deassert(adev->c1_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 826 reset_control_deassert(adev->c2_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 827
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 828 adev->channels = devm_kcalloc(adev->dev, ADM_MAX_CHANNELS,
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 829 sizeof(*adev->channels), GFP_KERNEL);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 830
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 831 if (!adev->channels) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 832 ret = -ENOMEM;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 833 goto err_disable_clks;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 834 }
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 835
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 836 /* allocate and initialize channels */
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 837 INIT_LIST_HEAD(&adev->common.channels);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 838
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 839 for (i = 0; i < ADM_MAX_CHANNELS; i++)
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 840 adm_channel_init(adev, &adev->channels[i], i);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 841
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 842 /* reset CRCIs */
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 843 for (i = 0; i < 16; i++)
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 844 writel(ADM_CRCI_CTL_RST, adev->regs +
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 845 ADM_CRCI_CTL(i, adev->ee));
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 846
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 847 /* configure client interfaces */
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 @848 writel(ADM_CI_RANGE_START(0x40) | ADM_CI_RANGE_END(0xb0) |
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 849 ADM_CI_BURST_8_WORDS, adev->regs + ADM_CI_CONF(0));
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 850 writel(ADM_CI_RANGE_START(0x2a) | ADM_CI_RANGE_END(0x2c) |
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 851 ADM_CI_BURST_8_WORDS, adev->regs + ADM_CI_CONF(1));
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 852 writel(ADM_CI_RANGE_START(0x12) | ADM_CI_RANGE_END(0x28) |
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 853 ADM_CI_BURST_8_WORDS, adev->regs + ADM_CI_CONF(2));
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 854 writel(ADM_GP_CTL_LP_EN | ADM_GP_CTL_LP_CNT(0xf),
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 855 adev->regs + ADM_GP_CTL);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 856
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 857 ret = devm_request_irq(adev->dev, adev->irq, adm_dma_irq,
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 858 0, "adm_dma", adev);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 859 if (ret)
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 860 goto err_disable_clks;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 861
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 862 platform_set_drvdata(pdev, adev);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 863
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 864 adev->common.dev = adev->dev;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 865 adev->common.dev->dma_parms = &adev->dma_parms;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 866
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 867 /* set capabilities */
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 868 dma_cap_zero(adev->common.cap_mask);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 869 dma_cap_set(DMA_SLAVE, adev->common.cap_mask);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 870 dma_cap_set(DMA_PRIVATE, adev->common.cap_mask);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 871
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 872 /* initialize dmaengine apis */
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 873 adev->common.directions = BIT(DMA_DEV_TO_MEM | DMA_MEM_TO_DEV);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 874 adev->common.residue_granularity = DMA_RESIDUE_GRANULARITY_DESCRIPTOR;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 875 adev->common.src_addr_widths = DMA_SLAVE_BUSWIDTH_4_BYTES;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 876 adev->common.dst_addr_widths = DMA_SLAVE_BUSWIDTH_4_BYTES;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 877 adev->common.device_free_chan_resources = adm_free_chan;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 878 adev->common.device_prep_slave_sg = adm_prep_slave_sg;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 879 adev->common.device_issue_pending = adm_issue_pending;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 880 adev->common.device_tx_status = adm_tx_status;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 881 adev->common.device_terminate_all = adm_terminate_all;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 882 adev->common.device_config = adm_slave_config;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 883
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 884 ret = dma_async_device_register(&adev->common);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 885 if (ret) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 886 dev_err(adev->dev, "failed to register dma async device\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 887 goto err_disable_clks;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 888 }
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 889
03de6b273805b3 Arnd Bergmann 2021-11-22 890 ret = of_dma_controller_register(pdev->dev.of_node, adm_dma_xlate,
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 891 &adev->common);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 892 if (ret)
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 893 goto err_unregister_dma;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 894
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 895 return 0;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 896
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 897 err_unregister_dma:
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 898 dma_async_device_unregister(&adev->common);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 899 err_disable_clks:
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 900 clk_disable_unprepare(adev->iface_clk);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 901 err_disable_core_clk:
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 902 clk_disable_unprepare(adev->core_clk);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 903
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 904 return ret;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 905 }
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 906
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform
2025-06-17 9:30 ` kernel test robot
@ 2025-06-17 10:16 ` Alexander Kochetkov
2025-06-17 11:13 ` Andy Shevchenko
0 siblings, 1 reply; 8+ messages in thread
From: Alexander Kochetkov @ 2025-06-17 10:16 UTC (permalink / raw)
To: kernel test robot
Cc: Vinod Koul, dmaengine, linux-kernel, llvm, oe-kbuild-all,
Nishad Saraf, Lizhi Hou, Jacky Huang, Shan-Chun Hung,
Florian Fainelli, Ray Jui, Scott Branden, Lars-Peter Clausen,
Paul Cercueil, Eugeniy Paltsev, Manivannan Sadhasivam, Frank Li,
Zhou Wang, Longfang Liu, Andy Shevchenko, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Keguang Zhang, Sean Wang,
Matthias Brugger, AngeloGioacchino Del Regno, Andreas Färber,
Daniel Mack, Haojian Zhuang, Robert Jarzmik
One more question. I can translate all other dma drivers to BH
workqueue. I cannot test all of them, but I did this for sun6i and it
works as usual. Fix straightforward. Is it a good idea?
That happened because of this change and this driver doesn't compile on x64.
Any action from me? Should I send v3 without this change?
diff --git a/drivers/dma/qcom/Kconfig b/drivers/dma/qcom/Kconfig
index ace75d7b835a..224436d3e50a 100644
--- a/drivers/dma/qcom/Kconfig
+++ b/drivers/dma/qcom/Kconfig
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0-only
config QCOM_ADM
tristate "Qualcomm ADM support"
- depends on (ARCH_QCOM || COMPILE_TEST) && !PHYS_ADDR_T_64BIT
+ depends on (ARCH_QCOM || COMPILE_TEST)
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
вт, 17 июн. 2025 г. в 12:31, kernel test robot <lkp@intel.com>:
>
> Hi Alexander,
>
> kernel test robot noticed the following build warnings:
>
> [auto build test WARNING on vkoul-dmaengine/next]
> [also build test WARNING on shawnguo/for-next sunxi/sunxi/for-next lee-mfd/for-mfd-next linus/master v6.16-rc2 next-20250617]
> [cannot apply to atorgue-stm32/stm32-next lee-mfd/for-mfd-fixes]
> [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#_base_tree_information]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Alexander-Kochetkov/dmaengine-virt-dma-convert-tasklet-to-BH-workqueue-for-callback-invocation/20250616-205118
> base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
> patch link: https://lore.kernel.org/r/20250616124934.141782-3-al.kochet%40gmail.com
> patch subject: [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform
> config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20250617/202506171615.p1kpBZuQ-lkp@intel.com/config)
> compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250617/202506171615.p1kpBZuQ-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202506171615.p1kpBZuQ-lkp@intel.com/
>
> All warnings (new ones prefixed by >>):
>
> drivers/dma/qcom/qcom_adm.c:245:7: error: incompatible pointer types assigning to 'u32 *' (aka 'unsigned int *') from 'phys_addr_t *' (aka 'unsigned long long *') [-Werror,-Wincompatible-pointer-types]
> 245 | src = &achan->slave.src_addr;
> | ^ ~~~~~~~~~~~~~~~~~~~~~~
> drivers/dma/qcom/qcom_adm.c:251:7: error: incompatible pointer types assigning to 'u32 *' (aka 'unsigned int *') from 'phys_addr_t *' (aka 'unsigned long long *') [-Werror,-Wincompatible-pointer-types]
> 251 | dst = &achan->slave.dst_addr;
> | ^ ~~~~~~~~~~~~~~~~~~~~~~
> drivers/dma/qcom/qcom_adm.c:309:7: error: incompatible pointer types assigning to 'u32 *' (aka 'unsigned int *') from 'phys_addr_t *' (aka 'unsigned long long *') [-Werror,-Wincompatible-pointer-types]
> 309 | src = &achan->slave.src_addr;
> | ^ ~~~~~~~~~~~~~~~~~~~~~~
> drivers/dma/qcom/qcom_adm.c:313:7: error: incompatible pointer types assigning to 'u32 *' (aka 'unsigned int *') from 'phys_addr_t *' (aka 'unsigned long long *') [-Werror,-Wincompatible-pointer-types]
> 313 | dst = &achan->slave.dst_addr;
> | ^ ~~~~~~~~~~~~~~~~~~~~~~
> >> drivers/dma/qcom/qcom_adm.c:848:59: warning: implicit conversion from 'unsigned long' to 'unsigned int' changes value from 18446744072371568648 to 2956984328 [-Wconstant-conversion]
> 848 | writel(ADM_CI_RANGE_START(0x40) | ADM_CI_RANGE_END(0xb0) |
> | ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
> 849 | ADM_CI_BURST_8_WORDS, adev->regs + ADM_CI_CONF(0));
> | ~~~~~~~~~~~~~~~~~~~~
> 1 warning and 4 errors generated.
>
>
> vim +848 drivers/dma/qcom/qcom_adm.c
>
> 03de6b273805b3 Arnd Bergmann 2021-11-22 745
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 746 static int adm_dma_probe(struct platform_device *pdev)
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 747 {
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 748 struct adm_device *adev;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 749 int ret;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 750 u32 i;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 751
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 752 adev = devm_kzalloc(&pdev->dev, sizeof(*adev), GFP_KERNEL);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 753 if (!adev)
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 754 return -ENOMEM;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 755
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 756 adev->dev = &pdev->dev;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 757
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 758 adev->regs = devm_platform_ioremap_resource(pdev, 0);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 759 if (IS_ERR(adev->regs))
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 760 return PTR_ERR(adev->regs);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 761
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 762 adev->irq = platform_get_irq(pdev, 0);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 763 if (adev->irq < 0)
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 764 return adev->irq;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 765
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 766 ret = of_property_read_u32(pdev->dev.of_node, "qcom,ee", &adev->ee);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 767 if (ret) {
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 768 dev_err(adev->dev, "Execution environment unspecified\n");
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 769 return ret;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 770 }
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 771
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 772 adev->core_clk = devm_clk_get(adev->dev, "core");
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 773 if (IS_ERR(adev->core_clk))
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 774 return PTR_ERR(adev->core_clk);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 775
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 776 adev->iface_clk = devm_clk_get(adev->dev, "iface");
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 777 if (IS_ERR(adev->iface_clk))
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 778 return PTR_ERR(adev->iface_clk);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 779
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 780 adev->clk_reset = devm_reset_control_get_exclusive(&pdev->dev, "clk");
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 781 if (IS_ERR(adev->clk_reset)) {
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 782 dev_err(adev->dev, "failed to get ADM0 reset\n");
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 783 return PTR_ERR(adev->clk_reset);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 784 }
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 785
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 786 adev->c0_reset = devm_reset_control_get_exclusive(&pdev->dev, "c0");
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 787 if (IS_ERR(adev->c0_reset)) {
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 788 dev_err(adev->dev, "failed to get ADM0 C0 reset\n");
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 789 return PTR_ERR(adev->c0_reset);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 790 }
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 791
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 792 adev->c1_reset = devm_reset_control_get_exclusive(&pdev->dev, "c1");
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 793 if (IS_ERR(adev->c1_reset)) {
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 794 dev_err(adev->dev, "failed to get ADM0 C1 reset\n");
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 795 return PTR_ERR(adev->c1_reset);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 796 }
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 797
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 798 adev->c2_reset = devm_reset_control_get_exclusive(&pdev->dev, "c2");
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 799 if (IS_ERR(adev->c2_reset)) {
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 800 dev_err(adev->dev, "failed to get ADM0 C2 reset\n");
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 801 return PTR_ERR(adev->c2_reset);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 802 }
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 803
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 804 ret = clk_prepare_enable(adev->core_clk);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 805 if (ret) {
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 806 dev_err(adev->dev, "failed to prepare/enable core clock\n");
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 807 return ret;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 808 }
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 809
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 810 ret = clk_prepare_enable(adev->iface_clk);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 811 if (ret) {
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 812 dev_err(adev->dev, "failed to prepare/enable iface clock\n");
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 813 goto err_disable_core_clk;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 814 }
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 815
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 816 reset_control_assert(adev->clk_reset);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 817 reset_control_assert(adev->c0_reset);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 818 reset_control_assert(adev->c1_reset);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 819 reset_control_assert(adev->c2_reset);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 820
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 821 udelay(2);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 822
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 823 reset_control_deassert(adev->clk_reset);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 824 reset_control_deassert(adev->c0_reset);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 825 reset_control_deassert(adev->c1_reset);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 826 reset_control_deassert(adev->c2_reset);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 827
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 828 adev->channels = devm_kcalloc(adev->dev, ADM_MAX_CHANNELS,
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 829 sizeof(*adev->channels), GFP_KERNEL);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 830
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 831 if (!adev->channels) {
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 832 ret = -ENOMEM;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 833 goto err_disable_clks;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 834 }
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 835
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 836 /* allocate and initialize channels */
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 837 INIT_LIST_HEAD(&adev->common.channels);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 838
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 839 for (i = 0; i < ADM_MAX_CHANNELS; i++)
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 840 adm_channel_init(adev, &adev->channels[i], i);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 841
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 842 /* reset CRCIs */
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 843 for (i = 0; i < 16; i++)
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 844 writel(ADM_CRCI_CTL_RST, adev->regs +
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 845 ADM_CRCI_CTL(i, adev->ee));
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 846
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 847 /* configure client interfaces */
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 @848 writel(ADM_CI_RANGE_START(0x40) | ADM_CI_RANGE_END(0xb0) |
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 849 ADM_CI_BURST_8_WORDS, adev->regs + ADM_CI_CONF(0));
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 850 writel(ADM_CI_RANGE_START(0x2a) | ADM_CI_RANGE_END(0x2c) |
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 851 ADM_CI_BURST_8_WORDS, adev->regs + ADM_CI_CONF(1));
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 852 writel(ADM_CI_RANGE_START(0x12) | ADM_CI_RANGE_END(0x28) |
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 853 ADM_CI_BURST_8_WORDS, adev->regs + ADM_CI_CONF(2));
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 854 writel(ADM_GP_CTL_LP_EN | ADM_GP_CTL_LP_CNT(0xf),
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 855 adev->regs + ADM_GP_CTL);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 856
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 857 ret = devm_request_irq(adev->dev, adev->irq, adm_dma_irq,
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 858 0, "adm_dma", adev);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 859 if (ret)
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 860 goto err_disable_clks;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 861
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 862 platform_set_drvdata(pdev, adev);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 863
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 864 adev->common.dev = adev->dev;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 865 adev->common.dev->dma_parms = &adev->dma_parms;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 866
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 867 /* set capabilities */
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 868 dma_cap_zero(adev->common.cap_mask);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 869 dma_cap_set(DMA_SLAVE, adev->common.cap_mask);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 870 dma_cap_set(DMA_PRIVATE, adev->common.cap_mask);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 871
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 872 /* initialize dmaengine apis */
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 873 adev->common.directions = BIT(DMA_DEV_TO_MEM | DMA_MEM_TO_DEV);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 874 adev->common.residue_granularity = DMA_RESIDUE_GRANULARITY_DESCRIPTOR;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 875 adev->common.src_addr_widths = DMA_SLAVE_BUSWIDTH_4_BYTES;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 876 adev->common.dst_addr_widths = DMA_SLAVE_BUSWIDTH_4_BYTES;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 877 adev->common.device_free_chan_resources = adm_free_chan;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 878 adev->common.device_prep_slave_sg = adm_prep_slave_sg;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 879 adev->common.device_issue_pending = adm_issue_pending;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 880 adev->common.device_tx_status = adm_tx_status;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 881 adev->common.device_terminate_all = adm_terminate_all;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 882 adev->common.device_config = adm_slave_config;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 883
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 884 ret = dma_async_device_register(&adev->common);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 885 if (ret) {
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 886 dev_err(adev->dev, "failed to register dma async device\n");
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 887 goto err_disable_clks;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 888 }
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 889
> 03de6b273805b3 Arnd Bergmann 2021-11-22 890 ret = of_dma_controller_register(pdev->dev.of_node, adm_dma_xlate,
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 891 &adev->common);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 892 if (ret)
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 893 goto err_unregister_dma;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 894
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 895 return 0;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 896
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 897 err_unregister_dma:
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 898 dma_async_device_unregister(&adev->common);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 899 err_disable_clks:
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 900 clk_disable_unprepare(adev->iface_clk);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 901 err_disable_core_clk:
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 902 clk_disable_unprepare(adev->core_clk);
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 903
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 904 return ret;
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 905 }
> 5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 906
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform
2025-06-17 10:16 ` Alexander Kochetkov
@ 2025-06-17 11:13 ` Andy Shevchenko
0 siblings, 0 replies; 8+ messages in thread
From: Andy Shevchenko @ 2025-06-17 11:13 UTC (permalink / raw)
To: Alexander Kochetkov
Cc: kernel test robot, Vinod Koul, dmaengine, linux-kernel, llvm,
oe-kbuild-all, Nishad Saraf, Lizhi Hou, Jacky Huang,
Shan-Chun Hung, Florian Fainelli, Ray Jui, Scott Branden,
Lars-Peter Clausen, Paul Cercueil, Eugeniy Paltsev,
Manivannan Sadhasivam, Frank Li, Zhou Wang, Longfang Liu,
Andy Shevchenko, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, Keguang Zhang, Sean Wang, Matthias Brugger,
AngeloGioacchino Del Regno, Andreas Färber, Daniel Mack,
Haojian Zhuang, Robert Jarzmik
On Tue, Jun 17, 2025 at 1:16 PM Alexander Kochetkov <al.kochet@gmail.com> wrote:
>
> One more question. I can translate all other dma drivers to BH
> workqueue. I cannot test all of them, but I did this for sun6i and it
> works as usual. Fix straightforward. Is it a good idea?
>
> That happened because of this change and this driver doesn't compile on x64.
> Any action from me? Should I send v3 without this change?
I wouldn't do anything. You explained well what's going on beforehand
along with the proper subject. This was expected, so only if the
maintainer asks you to do something. But modern tools, such as `b4`,
allows to pick up the certain patch(es) from the series, hence it can
be done easily without any need of being re-sent.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform
2025-06-16 12:48 ` [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform Alexander Kochetkov
2025-06-17 9:30 ` kernel test robot
@ 2025-06-17 10:32 ` kernel test robot
2025-06-17 13:00 ` kernel test robot
2025-06-17 13:21 ` kernel test robot
3 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2025-06-17 10:32 UTC (permalink / raw)
To: Alexander Kochetkov, Vinod Koul, dmaengine, linux-kernel
Cc: Paul Gazzillo, Necip Fazil Yildiran, oe-kbuild-all, Nishad Saraf,
Lizhi Hou, Jacky Huang, Shan-Chun Hung, Florian Fainelli, Ray Jui,
Scott Branden, Lars-Peter Clausen, Paul Cercueil, Eugeniy Paltsev,
Manivannan Sadhasivam, Frank Li, Zhou Wang, Longfang Liu,
Andy Shevchenko, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, Keguang Zhang, Sean Wang, Matthias Brugger,
AngeloGioacchino Del Regno, Andreas Färber, Daniel Mack,
Haojian Zhuang, Robert Jarzmik
Hi Alexander,
kernel test robot noticed the following build warnings:
[auto build test WARNING on vkoul-dmaengine/next]
[also build test WARNING on shawnguo/for-next sunxi/sunxi/for-next lee-mfd/for-mfd-next linus/master v6.16-rc2 next-20250617]
[cannot apply to atorgue-stm32/stm32-next lee-mfd/for-mfd-fixes]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Alexander-Kochetkov/dmaengine-virt-dma-convert-tasklet-to-BH-workqueue-for-callback-invocation/20250616-205118
base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
patch link: https://lore.kernel.org/r/20250616124934.141782-3-al.kochet%40gmail.com
patch subject: [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform
config: arm64-kismet-CONFIG_TI_K3_RINGACC-CONFIG_TI_K3_UDMA-0-0 (https://download.01.org/0day-ci/archive/20250617/202506171823.CHs69U2q-lkp@intel.com/config)
reproduce: (https://download.01.org/0day-ci/archive/20250617/202506171823.CHs69U2q-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506171823.CHs69U2q-lkp@intel.com/
kismet warnings: (new ones prefixed by >>)
>> kismet: WARNING: unmet direct dependencies detected for TI_K3_RINGACC when selected by TI_K3_UDMA
WARNING: unmet direct dependencies detected for TI_K3_RINGACC
Depends on [n]: SOC_TI [=n] && (ARCH_K3 [=n] || COMPILE_TEST [=y]) && TI_SCI_INTA_IRQCHIP [=y]
Selected by [y]:
- TI_K3_UDMA [=y] && DMADEVICES [=y] && (ARCH_K3 [=n] || COMPILE_TEST [=y]) && TI_SCI_PROTOCOL [=y] && TI_SCI_INTA_IRQCHIP [=y]
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform
2025-06-16 12:48 ` [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform Alexander Kochetkov
2025-06-17 9:30 ` kernel test robot
2025-06-17 10:32 ` kernel test robot
@ 2025-06-17 13:00 ` kernel test robot
2025-06-17 13:21 ` kernel test robot
3 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2025-06-17 13:00 UTC (permalink / raw)
To: Alexander Kochetkov, Vinod Koul, dmaengine, linux-kernel
Cc: oe-kbuild-all, Nishad Saraf, Lizhi Hou, Jacky Huang,
Shan-Chun Hung, Florian Fainelli, Ray Jui, Scott Branden,
Lars-Peter Clausen, Paul Cercueil, Eugeniy Paltsev,
Manivannan Sadhasivam, Frank Li, Zhou Wang, Longfang Liu,
Andy Shevchenko, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, Keguang Zhang, Sean Wang, Matthias Brugger,
AngeloGioacchino Del Regno, Andreas Färber, Daniel Mack,
Haojian Zhuang, Robert Jarzmik
Hi Alexander,
kernel test robot noticed the following build errors:
[auto build test ERROR on vkoul-dmaengine/next]
[also build test ERROR on shawnguo/for-next sunxi/sunxi/for-next lee-mfd/for-mfd-next linus/master v6.16-rc2 next-20250617]
[cannot apply to atorgue-stm32/stm32-next lee-mfd/for-mfd-fixes]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Alexander-Kochetkov/dmaengine-virt-dma-convert-tasklet-to-BH-workqueue-for-callback-invocation/20250616-205118
base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
patch link: https://lore.kernel.org/r/20250616124934.141782-3-al.kochet%40gmail.com
patch subject: [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform
config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20250617/202506172031.WOhp9AYg-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250617/202506172031.WOhp9AYg-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506172031.WOhp9AYg-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from drivers/dma/fsldma.c:37:
drivers/dma/fsldma.c: In function 'set_sr':
>> drivers/dma/fsldma.h:254:25: error: implicit declaration of function 'fsl_iowrite32be'; did you mean 'iowrite32be'? [-Wimplicit-function-declaration]
254 | fsl_iowrite##width##be(val, addr) : fsl_iowrite \
| ^~~~~~~~~~~
drivers/dma/fsldma.c:52:9: note: in expansion of macro 'FSL_DMA_OUT'
52 | FSL_DMA_OUT(chan, &chan->regs->sr, val, 32);
| ^~~~~~~~~~~
>> drivers/dma/fsldma.h:254:61: error: implicit declaration of function 'fsl_iowrite32'; did you mean 'gf_iowrite32'? [-Wimplicit-function-declaration]
254 | fsl_iowrite##width##be(val, addr) : fsl_iowrite \
| ^~~~~~~~~~~
drivers/dma/fsldma.c:52:9: note: in expansion of macro 'FSL_DMA_OUT'
52 | FSL_DMA_OUT(chan, &chan->regs->sr, val, 32);
| ^~~~~~~~~~~
drivers/dma/fsldma.c: In function 'get_sr':
>> drivers/dma/fsldma.h:250:25: error: implicit declaration of function 'fsl_ioread32be'; did you mean 'ioread32be'? [-Wimplicit-function-declaration]
250 | fsl_ioread##width##be(addr) : fsl_ioread##width(addr))
| ^~~~~~~~~~
drivers/dma/fsldma.c:57:16: note: in expansion of macro 'FSL_DMA_IN'
57 | return FSL_DMA_IN(chan, &chan->regs->sr, 32);
| ^~~~~~~~~~
>> drivers/dma/fsldma.h:250:55: error: implicit declaration of function 'fsl_ioread32'; did you mean 'gf_ioread32'? [-Wimplicit-function-declaration]
250 | fsl_ioread##width##be(addr) : fsl_ioread##width(addr))
| ^~~~~~~~~~
drivers/dma/fsldma.c:57:16: note: in expansion of macro 'FSL_DMA_IN'
57 | return FSL_DMA_IN(chan, &chan->regs->sr, 32);
| ^~~~~~~~~~
drivers/dma/fsldma.c: In function 'set_cdar':
>> drivers/dma/fsldma.h:254:25: error: implicit declaration of function 'fsl_iowrite64be' [-Wimplicit-function-declaration]
254 | fsl_iowrite##width##be(val, addr) : fsl_iowrite \
| ^~~~~~~~~~~
drivers/dma/fsldma.c:72:9: note: in expansion of macro 'FSL_DMA_OUT'
72 | FSL_DMA_OUT(chan, &chan->regs->cdar, addr | FSL_DMA_SNEN, 64);
| ^~~~~~~~~~~
>> drivers/dma/fsldma.h:254:61: error: implicit declaration of function 'fsl_iowrite64' [-Wimplicit-function-declaration]
254 | fsl_iowrite##width##be(val, addr) : fsl_iowrite \
| ^~~~~~~~~~~
drivers/dma/fsldma.c:72:9: note: in expansion of macro 'FSL_DMA_OUT'
72 | FSL_DMA_OUT(chan, &chan->regs->cdar, addr | FSL_DMA_SNEN, 64);
| ^~~~~~~~~~~
drivers/dma/fsldma.c: In function 'get_cdar':
>> drivers/dma/fsldma.h:250:25: error: implicit declaration of function 'fsl_ioread64be' [-Wimplicit-function-declaration]
250 | fsl_ioread##width##be(addr) : fsl_ioread##width(addr))
| ^~~~~~~~~~
drivers/dma/fsldma.c:77:16: note: in expansion of macro 'FSL_DMA_IN'
77 | return FSL_DMA_IN(chan, &chan->regs->cdar, 64) & ~FSL_DMA_SNEN;
| ^~~~~~~~~~
>> drivers/dma/fsldma.h:250:55: error: implicit declaration of function 'fsl_ioread64' [-Wimplicit-function-declaration]
250 | fsl_ioread##width##be(addr) : fsl_ioread##width(addr))
| ^~~~~~~~~~
drivers/dma/fsldma.c:77:16: note: in expansion of macro 'FSL_DMA_IN'
77 | return FSL_DMA_IN(chan, &chan->regs->cdar, 64) & ~FSL_DMA_SNEN;
| ^~~~~~~~~~
drivers/dma/fsldma.c: In function 'fsl_chan_set_src_loop_size':
>> drivers/dma/fsldma.c:269:44: error: implicit declaration of function '__ilog2'; did you mean 'ilog2'? [-Wimplicit-function-declaration]
269 | mode |= FSL_DMA_MR_SAHE | (__ilog2(size) << 14);
| ^~~~~~~
| ilog2
vim +254 drivers/dma/fsldma.h
a1ff82a9c165ba Peng Ma 2018-10-30 247
a1ff82a9c165ba Peng Ma 2018-10-30 248 #define FSL_DMA_IN(fsl_dma, addr, width) \
a1ff82a9c165ba Peng Ma 2018-10-30 249 (((fsl_dma)->feature & FSL_DMA_BIG_ENDIAN) ? \
a1ff82a9c165ba Peng Ma 2018-10-30 @250 fsl_ioread##width##be(addr) : fsl_ioread##width(addr))
a1ff82a9c165ba Peng Ma 2018-10-30 251
a1ff82a9c165ba Peng Ma 2018-10-30 252 #define FSL_DMA_OUT(fsl_dma, addr, val, width) \
a1ff82a9c165ba Peng Ma 2018-10-30 253 (((fsl_dma)->feature & FSL_DMA_BIG_ENDIAN) ? \
a1ff82a9c165ba Peng Ma 2018-10-30 @254 fsl_iowrite##width##be(val, addr) : fsl_iowrite \
a1ff82a9c165ba Peng Ma 2018-10-30 255 ##width(val, addr))
173acc7ce8538f Zhang Wei 2008-03-01 256
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform
2025-06-16 12:48 ` [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform Alexander Kochetkov
` (2 preceding siblings ...)
2025-06-17 13:00 ` kernel test robot
@ 2025-06-17 13:21 ` kernel test robot
3 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2025-06-17 13:21 UTC (permalink / raw)
To: Alexander Kochetkov, Vinod Koul, dmaengine, linux-kernel
Cc: Paul Gazzillo, Necip Fazil Yildiran, oe-kbuild-all, Nishad Saraf,
Lizhi Hou, Jacky Huang, Shan-Chun Hung, Florian Fainelli, Ray Jui,
Scott Branden, Lars-Peter Clausen, Paul Cercueil, Eugeniy Paltsev,
Manivannan Sadhasivam, Frank Li, Zhou Wang, Longfang Liu,
Andy Shevchenko, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, Keguang Zhang, Sean Wang, Matthias Brugger,
AngeloGioacchino Del Regno, Andreas Färber, Daniel Mack,
Haojian Zhuang, Robert Jarzmik
Hi Alexander,
kernel test robot noticed the following build warnings:
[auto build test WARNING on vkoul-dmaengine/next]
[also build test WARNING on shawnguo/for-next sunxi/sunxi/for-next lee-mfd/for-mfd-next linus/master v6.16-rc2 next-20250617]
[cannot apply to atorgue-stm32/stm32-next lee-mfd/for-mfd-fixes]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Alexander-Kochetkov/dmaengine-virt-dma-convert-tasklet-to-BH-workqueue-for-callback-invocation/20250616-205118
base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
patch link: https://lore.kernel.org/r/20250616124934.141782-3-al.kochet%40gmail.com
patch subject: [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform
config: sh-kismet-CONFIG_COMMON_CLK-CONFIG_MFD_INTEL_LPSS-0-0 (https://download.01.org/0day-ci/archive/20250617/202506172123.A2I5Sxtj-lkp@intel.com/config)
reproduce: (https://download.01.org/0day-ci/archive/20250617/202506172123.A2I5Sxtj-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506172123.A2I5Sxtj-lkp@intel.com/
kismet warnings: (new ones prefixed by >>)
>> kismet: WARNING: unmet direct dependencies detected for COMMON_CLK when selected by MFD_INTEL_LPSS
WARNING: unmet direct dependencies detected for COMMON_CLK
Depends on [n]: !HAVE_LEGACY_CLK [=y]
Selected by [y]:
- MFD_INTEL_LPSS [=y] && HAS_IOMEM [=y]
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-06-18 0:52 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-18 0:51 [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2025-06-16 12:48 [PATCH v2 0/2] dmaengine: virt-dma: convert tasklet to BH workqueue for callback invocation Alexander Kochetkov
2025-06-16 12:48 ` [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform Alexander Kochetkov
2025-06-17 9:30 ` kernel test robot
2025-06-17 10:16 ` Alexander Kochetkov
2025-06-17 11:13 ` Andy Shevchenko
2025-06-17 10:32 ` kernel test robot
2025-06-17 13:00 ` kernel test robot
2025-06-17 13:21 ` kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.