From: Zhou Wang <wangzhou1@hisilicon.com>
To: kbuild-all@lists.01.org
Subject: Re: [RFC PATCH] dmaengine: hisilicon: Add Kunpeng DMA engine support
Date: Mon, 25 Nov 2019 11:09:39 +0800 [thread overview]
Message-ID: <5DDB45F3.2070806@hisilicon.com> (raw)
In-Reply-To: <201911242336.W7Py5cLy%lkp@intel.com>
[-- Attachment #1: Type: text/plain, Size: 6201 bytes --]
On 2019/11/24 23:49, kbuild test robot wrote:
> Hi Zhou,
I am not sure if this email will be replied :)
>
> [FYI, it's a private test report for your RFC patch.]
> [auto build test ERROR on linus/master]
> [also build test ERROR on v5.4-rc8 next-20191122]
> [cannot apply to slave-dma/next]
Thanks, will rebase on maintainer's branch in next verion.
> [if your patch is applied to the wrong git tree, please drop us a note to help
> improve the system. BTW, we also suggest to use '--base' option to specify the
> base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
>
> url: https://github.com/0day-ci/linux/commits/Zhou-Wang/dmaengine-hisilicon-Add-Kunpeng-DMA-engine-support/20191124-185003
> base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 6b8a794678763130b7e7d049985008641dc494e8
> config: sh-allmodconfig (attached as .config)
> compiler: sh4-linux-gcc (GCC) 7.4.0
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # save the attached .config to linux build tree
> GCC_VERSION=7.4.0 make.cross ARCH=sh
>
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@intel.com>
>
> All error/warnings (new ones prefixed by >>):
>
> drivers//dma/hisi_dma.c: In function 'hisi_dma_probe':
>>> drivers//dma/hisi_dma.c:495:8: error: implicit declaration of function 'pcim_enable_device'; did you mean 'pci_enable_device'? [-Werror=implicit-function-declaration]
> ret = pcim_enable_device(pdev);
it is pcim_enable_device, which is defined in drivers/pci/pci.c and export outside.
> ^~~~~~~~~~~~~~~~~~
> pci_enable_device
> drivers//dma/hisi_dma.c: At top level:
>>> drivers//dma/hisi_dma.c:579:1: warning: data definition has no type or storage class
> module_pci_driver(hisi_dma_pci_driver);
> ^~~~~~~~~~~~~~~~~
>>> drivers//dma/hisi_dma.c:579:1: error: type defaults to 'int' in declaration of 'module_pci_driver' [-Werror=implicit-int]
>>> drivers//dma/hisi_dma.c:579:1: warning: parameter names (without types) in function declaration
> drivers//dma/hisi_dma.c:573:26: warning: 'hisi_dma_pci_driver' defined but not used [-Wunused-variable]
> static struct pci_driver hisi_dma_pci_driver = {
> ^~~~~~~~~~~~~~~~~~~
> cc1: some warnings being treated as errors
Just copy the ways in other drivers, not sure that is the wrong here?
>
> vim +495 drivers//dma/hisi_dma.c
>
> 486
> 487 static int hisi_dma_probe(struct pci_dev *pdev, const struct pci_device_id *id)
> 488 {
> 489 struct device *dev = &pdev->dev;
> 490 struct hisi_dma_dev *hdma_dev;
> 491 struct dma_device *dma_dev;
> 492 size_t dev_size;
> 493 int ret;
> 494
> > 495 ret = pcim_enable_device(pdev);
> 496 if (ret) {
> 497 dev_err(dev, "failed to enable device mem!\n");
> 498 return ret;
> 499 }
> 500
> 501 ret = pcim_iomap_regions(pdev, 1 << PCI_BAR_2, pci_name(pdev));
> 502 if (ret) {
> 503 dev_err(dev, "failed to remap I/O region!\n");
> 504 return ret;
> 505 }
> 506
> 507 ret = pci_set_dma_mask(pdev, DMA_BIT_MASK(64));
> 508 if (ret)
> 509 return ret;
> 510
> 511 ret = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
> 512 if (ret)
> 513 return ret;
> 514
> 515 dev_size = sizeof(struct hisi_dma_chan) * HISI_DMA_CHAN_NUM +
> 516 sizeof(*hdma_dev);
> 517 hdma_dev = devm_kzalloc(dev, dev_size, GFP_KERNEL);
> 518 if (!hdma_dev)
> 519 return -EINVAL;
> 520
> 521 hdma_dev->base = pcim_iomap_table(pdev)[PCI_BAR_2];
> 522 hdma_dev->pdev = pdev;
> 523 hdma_dev->chan_num = HISI_DMA_CHAN_NUM;
> 524 hdma_dev->chan_depth = HISI_DMA_Q_DEPTH_VAL;
> 525
> 526 pci_set_drvdata(pdev, hdma_dev);
> 527 pci_set_master(pdev);
> 528
> 529 ret = pci_alloc_irq_vectors(pdev, HISI_DMA_MSI_NUM, HISI_DMA_MSI_NUM,
> 530 PCI_IRQ_MSI);
> 531 if (ret < 0) {
> 532 dev_err(dev, "Failed to allocate MSI vectors!\n");
> 533 return ret;
> 534 }
> 535
> 536 dma_dev = &hdma_dev->dma_dev;
> 537 dma_cap_set(DMA_MEMCPY, dma_dev->cap_mask);
> 538 dma_dev->device_free_chan_resources = hisi_dma_free_chan_resources;
> 539 dma_dev->device_prep_dma_memcpy = hisi_dma_prep_dma_memcpy;
> 540 dma_dev->device_tx_status = hisi_dma_tx_status;
> 541 dma_dev->device_issue_pending = hisi_dma_issue_pending;
> 542 dma_dev->device_terminate_all = hisi_dma_terminate_all;
> 543 dma_dev->device_synchronize = hisi_dma_synchronize;
> 544 dma_dev->directions = BIT(DMA_MEM_TO_MEM);
> 545 dma_dev->dev = dev;
> 546 INIT_LIST_HEAD(&dma_dev->channels);
> 547
> 548 hisi_dma_set_mode(hdma_dev, RC);
> 549
> 550 ret = hisi_dma_enable_hw_channels(hdma_dev);
> 551 if (ret < 0) {
> 552 dev_err(dev, "failed to enable hw channel!\n");
> 553 return ret;
> 554 }
> 555
> 556 ret = devm_add_action_or_reset(dev, hisi_dma_disable_hw_channels,
> 557 hdma_dev);
> 558 if (ret)
> 559 return ret;
> 560
> 561 ret = dmaenginem_async_device_register(dma_dev);
> 562 if (ret < 0)
> 563 dev_err(dev, "failed to register device!\n");
> 564
> 565 return ret;
> 566 }
> 567
> 568 static const struct pci_device_id hisi_dma_pci_tbl[] = {
> 569 { PCI_DEVICE(PCI_VENDOR_ID_HUAWEI, PCI_DEVICE_ID_HISI_DMA) },
> 570 { 0, }
> 571 };
> 572
> 573 static struct pci_driver hisi_dma_pci_driver = {
> 574 .name = "hisi_dma",
> 575 .id_table = hisi_dma_pci_tbl,
> 576 .probe = hisi_dma_probe,
> 577 };
> 578
> > 579 module_pci_driver(hisi_dma_pci_driver);
> 580
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation
>
prev parent reply other threads:[~2019-11-25 3:09 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-22 11:15 [RFC PATCH] dmaengine: hisilicon: Add Kunpeng DMA engine support Zhou Wang
2019-11-24 15:49 ` kbuild test robot
2019-11-25 3:09 ` Zhou Wang [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5DDB45F3.2070806@hisilicon.com \
--to=wangzhou1@hisilicon.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.