This is an automated email from the ASF dual-hosted git repository.

raiden00 pushed a commit to branch pci
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 25002adf9f81d3e2543c38b3dae9b63f48458420
Author: raiden00pl <[email protected]>
AuthorDate: Sat Jan 20 13:40:26 2024 +0100

    drivers/pcie: cosmetics
---
 drivers/pcie/pcie_root.c  | 124 +++++++++++++++++++++++++++---------------
 include/nuttx/pcie/pcie.h | 135 ++++++++++++++++++++++++++++++++++------------
 2 files changed, 184 insertions(+), 75 deletions(-)

diff --git a/drivers/pcie/pcie_root.c b/drivers/pcie/pcie_root.c
index b85c5862fa..8ee6da1a49 100644
--- a/drivers/pcie/pcie_root.c
+++ b/drivers/pcie/pcie_root.c
@@ -39,7 +39,7 @@
  * Public Data
  ****************************************************************************/
 
-struct pcie_dev_type_s *pci_device_types[] =
+FAR struct pcie_dev_type_s *g_pci_device_types[] =
 {
 #ifdef CONFIG_VIRT_QEMU_PCI_TEST
   &pcie_type_qemu_pci_test,
@@ -47,6 +47,19 @@ struct pcie_dev_type_s *pci_device_types[] =
   NULL,
 };
 
+/****************************************************************************
+ * Private Types
+ ****************************************************************************/
+
+static struct pcie_dev_type_s g_tmp_type =
+{
+  PCI_ID_ANY,                   /* vendor */
+  PCI_ID_ANY,                   /* device */
+  PCI_ID_ANY,                   /* class_rev */
+  "Unknown",                    /* name */
+  NULL,                         /* probe */
+};
+
 /****************************************************************************
  * Public Functions
  ****************************************************************************/
@@ -70,29 +83,27 @@ struct pcie_dev_type_s *pci_device_types[] =
 int pci_enumerate(FAR struct pcie_bus_s *bus,
                   FAR struct pcie_dev_type_s **types)
 {
-  unsigned int bdf;
-  uint16_t vid;
-  uint16_t id;
-  uint16_t rev;
   struct pcie_dev_s tmp_dev;
-  struct pcie_dev_type_s tmp_type =
-    {
-      .name = "Unknown",
-      .vendor = PCI_ID_ANY,
-      .device = PCI_ID_ANY,
-      .class_rev = PCI_ID_ANY,
-      .probe = NULL,
-    };
+  unsigned int      bdf;
+  uint16_t          vid;
+  uint16_t          id;
+  uint16_t          rev;
+  int               i;
 
   if (!bus)
+    {
       return -EINVAL;
+    }
+
   if (!types)
+    {
       return -EINVAL;
+    }
 
   for (bdf = 0; bdf < CONFIG_PCIE_MAX_BDF; bdf++)
     {
       tmp_dev.bus = bus;
-      tmp_dev.type = &tmp_type;
+      tmp_dev.type = &g_tmp_type;
       tmp_dev.bdf = bdf;
 
       bus->ops->pci_cfg_read(&tmp_dev, PCI_CFG_VENDOR_ID, &vid, 2);
@@ -100,13 +111,15 @@ int pci_enumerate(FAR struct pcie_bus_s *bus,
       bus->ops->pci_cfg_read(&tmp_dev, PCI_CFG_REVERSION, &rev, 2);
 
       if (vid == PCI_ID_ANY)
-        continue;
+        {
+          continue;
+        }
 
       pciinfo("[%02x:%02x.%x] Found %04x:%04x, class/reversion %08x\n",
               bdf >> 8, (bdf >> 3) & 0x1f, bdf & 0x3,
               vid, id, rev);
 
-      for (int i = 0; types[i] != NULL; i++)
+      for (i = 0; types[i] != NULL; i++)
         {
           if (types[i]->vendor == PCI_ID_ANY ||
               types[i]->vendor == vid)
@@ -130,6 +143,7 @@ int pci_enumerate(FAR struct pcie_bus_s *bus,
                                   device probe function\n",
                                   bdf >> 8, (bdf >> 3) & 0x1f, bdf & 0x3);
                         }
+
                       break;
                     }
                 }
@@ -160,7 +174,7 @@ int pci_enumerate(FAR struct pcie_bus_s *bus,
 
 int pcie_initialize(FAR struct pcie_bus_s *bus)
 {
-  return pci_enumerate(bus, pci_device_types);
+  return pci_enumerate(bus, g_pci_device_types);
 }
 
 /****************************************************************************
@@ -214,25 +228,31 @@ int pci_enable_device(FAR struct pcie_dev_s *dev)
 
 int pci_find_cap(FAR struct pcie_dev_s *dev, uint16_t cap)
 {
-  uint8_t pos = PCI_CFG_CAP_PTR - 1;
+  uint8_t  pos = PCI_CFG_CAP_PTR - 1;
   uint16_t status;
-  uint8_t rcap;
+  uint8_t  rcap;
 
   dev->bus->ops->pci_cfg_read(dev, PCI_CFG_STATUS, &status, 2);
 
   if (!(status & PCI_STS_CAPS))
+    {
       return -EINVAL;
+    }
 
   while (1)
     {
       dev->bus->ops->pci_cfg_read(dev, pos + 1, &pos, 1);
       if (pos == 0)
+        {
           return -EINVAL;
+        }
 
       dev->bus->ops->pci_cfg_read(dev, pos, &rcap, 1);
 
       if (rcap == cap)
+        {
           return pos;
+        }
     }
 }
 
@@ -252,11 +272,12 @@ int pci_find_cap(FAR struct pcie_dev_s *dev, uint16_t cap)
  *
  ****************************************************************************/
 
-int pci_get_bar(FAR struct pcie_dev_s *dev, uint32_t bar,
-                uint32_t *ret)
+int pci_get_bar(FAR struct pcie_dev_s *dev, uint32_t bar, FAR uint32_t *ret)
 {
   if (bar > 5)
+    {
       return -EINVAL;
+    }
 
   dev->bus->ops->pci_cfg_read(dev, PCI_CFG_BAR + bar * 4, ret, 4);
 
@@ -279,15 +300,16 @@ int pci_get_bar(FAR struct pcie_dev_s *dev, uint32_t bar,
  *
  ****************************************************************************/
 
-int pci_get_bar64(FAR struct pcie_dev_s *dev, uint32_t bar,
-                  uint64_t *ret)
+int pci_get_bar64(FAR struct pcie_dev_s *dev, uint32_t bar, FAR uint64_t *ret)
 {
-  if (bar > 4 || ((bar % 2) != 0))
-      return -EINVAL;
-
   uint32_t barmem1;
   uint32_t barmem2;
 
+  if (bar > 4 || ((bar % 2) != 0))
+    {
+      return -EINVAL;
+    }
+
   dev->bus->ops->pci_cfg_read(dev, PCI_CFG_BAR + bar * 4, &barmem1, 4);
   dev->bus->ops->pci_cfg_read(dev, PCI_CFG_BAR + bar * 4 + 4, &barmem2, 4);
 
@@ -312,11 +334,12 @@ int pci_get_bar64(FAR struct pcie_dev_s *dev, uint32_t 
bar,
  *
  ****************************************************************************/
 
-int pci_set_bar(FAR struct pcie_dev_s *dev, uint32_t bar,
-                uint32_t val)
+int pci_set_bar(FAR struct pcie_dev_s *dev, uint32_t bar, uint32_t val)
 {
   if (bar > 5)
+    {
       return -EINVAL;
+    }
 
   dev->bus->ops->pci_cfg_write(dev, PCI_CFG_BAR + bar * 4, &val, 4);
 
@@ -339,15 +362,16 @@ int pci_set_bar(FAR struct pcie_dev_s *dev, uint32_t bar,
  *
  ****************************************************************************/
 
-int pci_set_bar64(FAR struct pcie_dev_s *dev, uint32_t bar,
-                  uint64_t val)
+int pci_set_bar64(FAR struct pcie_dev_s *dev, uint32_t bar, uint64_t val)
 {
-  if (bar > 4 || ((bar % 2) != 0))
-      return -EINVAL;
-
   uint32_t barmem1 = (uint32_t)val;
   uint32_t barmem2 = (uint32_t)(val >> 32);
 
+  if (bar > 4 || ((bar % 2) != 0))
+    {
+      return -EINVAL;
+    }
+
   dev->bus->ops->pci_cfg_write(dev, PCI_CFG_BAR + bar * 4, &barmem1, 4);
   dev->bus->ops->pci_cfg_write(dev, PCI_CFG_BAR + bar * 4 + 4, &barmem2, 4);
 
@@ -372,27 +396,35 @@ int pci_set_bar64(FAR struct pcie_dev_s *dev, uint32_t 
bar,
  ****************************************************************************/
 
 int pci_map_bar(FAR struct pcie_dev_s *dev, uint32_t bar,
-                unsigned long length, uint32_t *ret)
+                unsigned long length, FAR uint32_t *ret)
 {
+  uint32_t barmem;
+
   if (bar > 5)
+    {
       return -EINVAL;
-
-  uint32_t barmem;
+    }
 
   dev->bus->ops->pci_cfg_read(dev, PCI_CFG_BAR + bar * 4, &barmem, 4);
 
   if (((bar % 2) == 0 &&
       (barmem & PCI_BAR_64BIT) == PCI_BAR_64BIT) ||
       (barmem & PCI_BAR_IO)    == PCI_BAR_IO)
+    {
       return -EINVAL;
+    }
 
   if (!dev->bus->ops->pci_map_bar)
+    {
       return -EINVAL;
+    }
 
   dev->bus->ops->pci_map_bar(dev, barmem, length);
 
   if (ret)
-    *ret = barmem;
+    {
+      *ret = barmem;
+    }
 
   return OK;
 }
@@ -415,32 +447,40 @@ int pci_map_bar(FAR struct pcie_dev_s *dev, uint32_t bar,
  ****************************************************************************/
 
 int pci_map_bar64(FAR struct pcie_dev_s *dev, uint32_t bar,
-                  unsigned long length, uint64_t *ret)
+                  unsigned long length, FAR uint64_t *ret)
 {
-  if (bar > 4 || ((bar % 2) != 0))
-      return -EINVAL;
-
   uint32_t barmem1;
   uint32_t barmem2;
   uint64_t barmem;
 
+  if (bar > 4 || ((bar % 2) != 0))
+    {
+      return -EINVAL;
+    }
+
   dev->bus->ops->pci_cfg_read(dev, PCI_CFG_BAR + bar * 4, &barmem1, 4);
 
   if ((barmem1 & PCI_BAR_64BIT) != PCI_BAR_64BIT ||
       (barmem1 & PCI_BAR_IO)    == PCI_BAR_IO)
+    {
       return -EINVAL;
+    }
 
   dev->bus->ops->pci_cfg_read(dev, PCI_CFG_BAR + bar * 4 + 4, &barmem2, 4);
 
   barmem = ((uint64_t)barmem2 << 32) | barmem1;
 
   if (!dev->bus->ops->pci_map_bar64)
+    {
       return -EINVAL;
+    }
 
   dev->bus->ops->pci_map_bar64(dev, barmem, length);
 
   if (ret)
-    *ret = barmem;
+    {
+      *ret = barmem;
+    }
 
   return OK;
 }
diff --git a/include/nuttx/pcie/pcie.h b/include/nuttx/pcie/pcie.h
index fffc791a2d..066c3b7e16 100644
--- a/include/nuttx/pcie/pcie.h
+++ b/include/nuttx/pcie/pcie.h
@@ -107,26 +107,99 @@ struct pcie_dev_s;
 
 struct pcie_bus_ops_s
 {
-    CODE int (*pcie_enumerate)(FAR struct pcie_bus_s *bus,
-                               FAR struct pcie_dev_type_s **types);
-
-    CODE int (*pci_cfg_write)(FAR struct pcie_dev_s *dev, uintptr_t addr,
-                              FAR const void *buffer, unsigned int size);
-
-    CODE int (*pci_cfg_read)(FAR struct pcie_dev_s *dev, uintptr_t addr,
-                             FAR void *buffer, unsigned int size);
-
-    CODE int (*pci_map_bar)(FAR struct pcie_dev_s *dev, uint32_t addr,
+  /* Write 8, 16, 32, 64 bits data to PCI-E configuration space of device
+   * specified by dev.
+   *
+   * Input Parameters:
+   *   bdf    - Device private data
+   *   buffer - A pointer to the read-only buffer of data to be written
+   *   size   - The number of bytes to send from the buffer
+   *
+   * Returned Value:
+   *   0: success, <0: A negated errno
+   *
+   */
+
+  CODE int (*pci_cfg_write)(FAR struct pcie_dev_s *dev, uintptr_t addr,
+                            FAR const void *buffer, unsigned int size);
+
+  /* Read 8, 16, 32, 64 bits data to PCI-E configuration space of device
+   * specified by dev.
+   *
+   * Input Parameters:
+   *   dev    - Device private data
+   *   buffer - A pointer to a buffer to receive the data from the device
+   *   size   - The requested number of bytes to be read
+   *
+   * Returned Value:
+   *   0: success, <0: A negated errno
+   *
+   */
+
+  CODE int (*pci_cfg_read)(FAR struct pcie_dev_s *dev, uintptr_t addr,
+                           FAR void *buffer, unsigned int size);
+
+  /*  Map address in a 32 bits bar in the memory address space
+   *
+   * Input Parameters:
+   *   dev    - Device private data
+   *   bar    - Bar number
+   *   length - Map length, multiple of PAGE_SIZE
+   *   ret    - Bar Content
+   *
+   * Returned Value:
+   *   0: success, <0: A negated errno
+   *
+   */
+
+  CODE int (*pci_map_bar)(FAR struct pcie_dev_s *dev, uint32_t addr,
+                          unsigned long length);
+
+  /* Map address in a 64 bits bar in the memory address space
+   *
+   * Input Parameters:
+   *   dev    - Device private data
+   *   bar    - Bar number
+   *   length - Map length, multiple of PAGE_SIZE
+   *   ret    - Bar Content
+   *
+   * Returned Value:
+   *   0: success, <0: A negated errno
+   *
+   */
+
+  CODE int (*pci_map_bar64)(FAR struct pcie_dev_s *dev, uint64_t addr,
                             unsigned long length);
 
-    CODE int (*pci_map_bar64)(FAR struct pcie_dev_s *dev, uint64_t addr,
-                            unsigned long length);
-
-    CODE int (*pci_msi_register)(FAR struct pcie_dev_s *dev,
-                                 uint16_t vector);
-
-    CODE int (*pci_msix_register)(FAR struct pcie_dev_s *dev,
-                                  uint32_t vector, uint32_t index);
+  /* Map device MSI vectors to a platform IRQ vector
+   *
+   * Input Parameters:
+   *   dev - Device
+   *   vector - IRQ number of the platform
+   *
+   * Returned Value:
+   *   <0: Mapping failed
+   *    0: Mapping succeed
+   *
+   */
+
+  CODE int (*pci_msi_register)(FAR struct pcie_dev_s *dev, uint16_t vector);
+
+  /* Map a device MSI-X vector to a platform IRQ vector
+   *
+   * Input Parameters:
+   *   dev - Device
+   *   vector - IRQ number of the platform
+   *   index  - Device MSI-X vector number
+   *
+   * Returned Value:
+   *   <0: Mapping failed
+   *    0: Mapping succeed
+   *
+   */
+
+  CODE int (*pci_msix_register)(FAR struct pcie_dev_s *dev,
+                                uint32_t vector, uint32_t index);
 };
 
 /* PCIE bus private data. */
@@ -140,10 +213,10 @@ struct pcie_bus_s
 
 struct pcie_dev_type_s
 {
-  uint16_t      vendor;            /* Device vendor ID */
-  uint16_t      device;            /* Device ID */
-  uint32_t      class_rev;         /* Device reversion */
-  const char    *name;             /* Human readable name */
+  uint16_t        vendor;       /* Device vendor ID */
+  uint16_t        device;       /* Device ID */
+  uint32_t        class_rev;    /* Device reversion */
+  FAR const char *name;         /* Human readable name */
 
   /* Call back function when a device is probed */
 
@@ -157,7 +230,7 @@ struct pcie_dev_s
 {
     FAR struct pcie_bus_s       *bus;
     FAR struct pcie_dev_type_s  *type;
-    uint16_t                    bdf;
+    uint16_t                     bdf;
 };
 
 /****************************************************************************
@@ -246,7 +319,7 @@ int pci_find_cap(FAR struct pcie_dev_s *dev, uint16_t cap);
  ****************************************************************************/
 
 int pci_map_bar(FAR struct pcie_dev_s *dev, uint32_t bar,
-                unsigned long length, uint32_t *ret);
+                unsigned long length, FAR uint32_t *ret);
 
 /****************************************************************************
  * Name: pci_map_bar64
@@ -266,7 +339,7 @@ int pci_map_bar(FAR struct pcie_dev_s *dev, uint32_t bar,
  ****************************************************************************/
 
 int pci_map_bar64(FAR struct pcie_dev_s *dev, uint32_t bar,
-                  unsigned long length, uint64_t *ret);
+                  unsigned long length, FAR uint64_t *ret);
 
 /****************************************************************************
  * Name: pci_get_bar
@@ -284,8 +357,7 @@ int pci_map_bar64(FAR struct pcie_dev_s *dev, uint32_t bar,
  *
  ****************************************************************************/
 
-int pci_get_bar(FAR struct pcie_dev_s *dev, uint32_t bar,
-                uint32_t *ret);
+int pci_get_bar(FAR struct pcie_dev_s *dev, uint32_t bar, FAR uint32_t *ret);
 
 /****************************************************************************
  * Name: pci_get_bar64
@@ -303,8 +375,7 @@ int pci_get_bar(FAR struct pcie_dev_s *dev, uint32_t bar,
  *
  ****************************************************************************/
 
-int pci_get_bar64(FAR struct pcie_dev_s *dev, uint32_t bar,
-                  uint64_t *ret);
+int pci_get_bar64(FAR struct pcie_dev_s *dev, uint32_t bar, uint64_t *ret);
 
 /****************************************************************************
  * Name: pci_set_bar
@@ -322,8 +393,7 @@ int pci_get_bar64(FAR struct pcie_dev_s *dev, uint32_t bar,
  *
  ****************************************************************************/
 
-int pci_set_bar(FAR struct pcie_dev_s *dev, uint32_t bar,
-                uint32_t val);
+int pci_set_bar(FAR struct pcie_dev_s *dev, uint32_t bar, FAR uint32_t val);
 
 /****************************************************************************
  * Name: pci_set_bar64
@@ -341,8 +411,7 @@ int pci_set_bar(FAR struct pcie_dev_s *dev, uint32_t bar,
  *
  ****************************************************************************/
 
-int pci_set_bar64(FAR struct pcie_dev_s *dev, uint32_t bar,
-                  uint64_t val);
+int pci_set_bar64(FAR struct pcie_dev_s *dev, uint32_t bar, uint64_t val);
 
 #undef EXTERN
 #if defined(__cplusplus)

Reply via email to