dma/hisilicon: use common PCI device naming
authorChengwen Feng <fengchengwen@huawei.com>
Thu, 17 Feb 2022 02:59:11 +0000 (10:59 +0800)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 23 Feb 2022 15:27:59 +0000 (16:27 +0100)
For DMA device 0000:7d:0.0, the original generated dmadev name starts
with the "7d:0.0", which is not expected.
This patch uses rte_pci_device_name API to generates the dmadev name.

Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
doc/guides/dmadevs/hisilicon.rst
drivers/dma/hisilicon/hisi_dmadev.c

index 81bf090..8c1f0f8 100644 (file)
@@ -30,8 +30,8 @@ which can be accessed using API from the ``rte_dmadev`` library.
 
 The name of the ``dmadev`` created is like "B:D.F-chX", e.g. DMA 0000:7b:00.0
 will create four ``dmadev``,
-the 1st ``dmadev`` name is "7b:00.0-ch0",
-and the 2nd ``dmadev`` name is "7b:00.0-ch1".
+the 1st ``dmadev`` name is "0000:7b:00.0-ch0",
+and the 2nd ``dmadev`` name is "0000:7b:00.0-ch1".
 
 Device Configuration
 ~~~~~~~~~~~~~~~~~~~~~
index c36acf0..9cef2cb 100644 (file)
@@ -784,24 +784,15 @@ hisi_dma_burst_capacity(const void *dev_private, uint16_t vchan)
                                      sq_head - 1 - sq_tail;
 }
 
-static void
-hisi_dma_gen_pci_device_name(const struct rte_pci_device *pci_dev,
-                            char *name, size_t size)
-{
-       memset(name, 0, size);
-       (void)snprintf(name, size, "%x:%x.%x",
-                pci_dev->addr.bus, pci_dev->addr.devid,
-                pci_dev->addr.function);
-}
-
 static void
 hisi_dma_gen_dev_name(const struct rte_pci_device *pci_dev,
-                     uint8_t queue_id, char *name, size_t size)
+                     uint8_t queue_id, char *dev_name, size_t size)
 {
-       memset(name, 0, size);
-       (void)snprintf(name, size, "%x:%x.%x-ch%u",
-                pci_dev->addr.bus, pci_dev->addr.devid,
-                pci_dev->addr.function, queue_id);
+       char name[RTE_DEV_NAME_MAX_LEN] = { 0 };
+
+       memset(dev_name, 0, size);
+       rte_pci_device_name(&pci_dev->addr, name, sizeof(name));
+       (void)snprintf(dev_name, size, "%s-ch%u", name, queue_id);
 }
 
 /**
@@ -917,7 +908,7 @@ hisi_dma_probe(struct rte_pci_driver *pci_drv __rte_unused,
        uint8_t i;
        int ret;
 
-       hisi_dma_gen_pci_device_name(pci_dev, name, sizeof(name));
+       rte_pci_device_name(&pci_dev->addr, name, sizeof(name));
 
        if (pci_dev->mem_resource[2].addr == NULL) {
                HISI_DMA_LOG(ERR, "%s BAR2 is NULL!\n", name);