You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2020/01/23 22:45:50 UTC

[incubator-nuttx] branch pr156 updated: arch/arm/src/lpc17_40/lpc17_49_ethernet.c: Fix build failure.

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

acassis pushed a commit to branch pr156
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git


The following commit(s) were added to refs/heads/pr156 by this push:
     new d644b75  arch/arm/src/lpc17_40/lpc17_49_ethernet.c:  Fix build failure.
d644b75 is described below

commit d644b759b2e9db882a32da20421225deb0798e86
Author: Gregory Nutt <gn...@nuttx.org>
AuthorDate: Thu Jan 23 15:54:02 2020 -0600

    arch/arm/src/lpc17_40/lpc17_49_ethernet.c:  Fix build failure.
    
    Fix these build errors which occurred if there was no PHY:
    
    chip/lpc17_40_ethernet.c:1643:31: error: expected expression before ';' token
      ret lpc17_40_phyinit();
    
    chip/lpc17_40_ethernet.c:3941:1: error: expected identifier or '(' before '{' token
      {
    
    chip/lpc17_40_ethernet.c:448:13: warning: 'lpc17_40_macmode' used but never defined
      static void lpc17_40_macmode(uint8_t mode);
---
 arch/arm/src/lpc17xx_40xx/lpc17_40_ethernet.c | 82 ++++++++++++++++-----------
 1 file changed, 50 insertions(+), 32 deletions(-)

diff --git a/arch/arm/src/lpc17xx_40xx/lpc17_40_ethernet.c b/arch/arm/src/lpc17xx_40xx/lpc17_40_ethernet.c
index 91321dd..21ff20e 100644
--- a/arch/arm/src/lpc17xx_40xx/lpc17_40_ethernet.c
+++ b/arch/arm/src/lpc17xx_40xx/lpc17_40_ethernet.c
@@ -108,14 +108,15 @@
  * hardware!
  */
 
-#if !defined(CONFIG_LPC17_40_NINTERFACES) || CONFIG_LPC17_40_NINTERFACES > LPC17_40_NETHCONTROLLERS
+#if !defined(CONFIG_LPC17_40_NINTERFACES) || \
+    CONFIG_LPC17_40_NINTERFACES > LPC17_40_NETHCONTROLLERS
 #  undef CONFIG_LPC17_40_NINTERFACES
 #  define CONFIG_LPC17_40_NINTERFACES LPC17_40_NETHCONTROLLERS
 #endif
 
 /* The logic here has a few hooks for support for multiple interfaces, but
- * that capability is not yet in place (and I won't worry about it until I get
- * the first multi-interface LPC17xx/LPC40xx).
+ * that capability is not yet in place (and I won't worry about it until I
+ * get the first multi-interface LPC17xx/LPC40xx).
  */
 
 #if CONFIG_LPC17_40_NINTERFACES > 1
@@ -132,7 +133,7 @@
 
 #define PKTBUF_SIZE (MAX_NETDEV_PKTSIZE + CONFIG_NET_GUARDSIZE)
 
-/* Debug Configuration *****************************************************/
+/* Debug Configuration ******************************************************/
 
 /* Register debug -- can only happen of CONFIG_DEBUG_NET_INFO is selected */
 
@@ -171,7 +172,7 @@
 #define ETH_TXINTS           (ETH_INT_TXUNR | ETH_INT_TXERR | \
                               ETH_INT_TXFIN | ETH_INT_TXDONE)
 
-/* Misc. Helpers ***********************************************************/
+/* Misc. Helpers ************************************************************/
 
 /* This is a helper pointer for accessing the contents of the Ethernet header */
 
@@ -436,16 +437,14 @@ static inline int lpc17_40_phyreset(uint8_t phyaddr);
 static inline int lpc17_40_phyautoneg(uint8_t phyaddr);
 #  endif
 static int lpc17_40_phymode(uint8_t phyaddr, uint8_t mode);
-static inline int lpc17_40_phyinit(struct lpc17_40_driver_s *priv);
-#else
-#  define lpc17_40_phyinit(priv)
 #endif
+static inline int lpc17_40_phyinit(struct lpc17_40_driver_s *priv);
 
 /* EMAC Initialization functions */
 
 static inline void lpc17_40_txdescinit(struct lpc17_40_driver_s *priv);
 static inline void lpc17_40_rxdescinit(struct lpc17_40_driver_s *priv);
-static void lpc17_40_macmode(uint8_t mode);
+static inline void lpc17_40_macmode(uint8_t mode);
 static void lpc17_40_ethreset(struct lpc17_40_driver_s *priv);
 
 /****************************************************************************
@@ -659,8 +658,8 @@ static int lpc17_40_transmit(struct lpc17_40_driver_s *priv)
 
   prodidx = lpc17_40_getreg(LPC17_40_ETH_TXPRODIDX) & ETH_TXPRODIDX_MASK;
 
-  /* Get the packet address from the descriptor and set the descriptor control
-   * fields.
+  /* Get the packet address from the descriptor and set the descriptor
+   * control fields.
    */
 
   txdesc   = (uint32_t *)(LPC17_40_TXDESC_BASE + (prodidx << 3));
@@ -732,7 +731,8 @@ static int lpc17_40_transmit(struct lpc17_40_driver_s *priv)
 
 static int lpc17_40_txpoll(struct net_driver_s *dev)
 {
-  struct lpc17_40_driver_s *priv = (struct lpc17_40_driver_s *)dev->d_private;
+  struct lpc17_40_driver_s *priv =
+    (struct lpc17_40_driver_s *)dev->d_private;
   int ret = OK;
 
   /* If the polling resulted in data that should be sent out on the network,
@@ -779,8 +779,8 @@ static int lpc17_40_txpoll(struct net_driver_s *dev)
         }
     }
 
-  /* If zero is returned, the polling will continue until all connections have
-   * been examined.
+  /* If zero is returned, the polling will continue until all connections
+   * have been examined.
    */
 
   return ret;
@@ -893,8 +893,8 @@ static void lpc17_40_rxdone_work(FAR void *arg)
       rxstat   = (uint32_t *)(LPC17_40_RXSTAT_BASE + (considx << 3));
       pktlen   = (*rxstat & RXSTAT_INFO_RXSIZE_MASK) - 3;
 
-      /* Check for errors.  NOTE:  The DMA engine reports bogus length errors,
-       * making this a pretty useless (as well as annoying) check.
+      /* Check for errors.  NOTE:  The DMA engine reports bogus length
+       * errors, making this a pretty useless (as well as annoying) check.
        */
 
       if ((*rxstat & RXSTAT_INFO_ERROR) != 0)
@@ -910,7 +910,7 @@ static void lpc17_40_rxdone_work(FAR void *arg)
        * imply that the packet is too big.
        */
 
-      /* else */ if (pktlen > CONFIG_NET_ETH_PKTSIZE + CONFIG_NET_GUARDSIZE)
+      if (pktlen > CONFIG_NET_ETH_PKTSIZE + CONFIG_NET_GUARDSIZE)
         {
           nwarn("WARNING: Too big. considx: %08x prodidx: %08x pktlen: %d "
                 "rxstat: %08x\n",
@@ -1131,8 +1131,9 @@ static void lpc17_40_txdone_work(FAR void *arg)
   DEBUGASSERT(priv);
   DEBUGASSERT(lpc17_40_txdesc(priv) == OK);
 
-  /* Check if there is a pending Tx transfer that was scheduled by Rx handling
-   * while the Tx logic was busy.  If so, processing that pending Tx now.
+  /* Check if there is a pending Tx transfer that was scheduled by Rx
+   * handling while the Tx logic was busy.  If so, processing that pending
+   * Tx now.
    */
 
   net_lock();
@@ -1267,7 +1268,8 @@ static int lpc17_40_interrupt(int irq, void *context, FAR void *arg)
            * the descriptor was set.
            */
 
-          if ((status & ETH_INT_RXFIN) != 0 || (status & ETH_INT_RXDONE) != 0)
+          if ((status & ETH_INT_RXFIN) != 0 ||
+              (status & ETH_INT_RXDONE) != 0)
             {
               /* We have received at least one new incoming packet.
                * Disable further TX interrupts for now.  TX interrupts will
@@ -1333,8 +1335,8 @@ static int lpc17_40_interrupt(int irq, void *context, FAR void *arg)
               priv->lp_inten &= ~ETH_TXINTS;
               lpc17_40_putreg(priv->lp_inten, LPC17_40_ETH_INTEN);
 
-              /* Cancel any pending TX done work (to prevent overruns and also
-               * to avoid race conditions with the TX timeout work)
+              /* Cancel any pending TX done work (to prevent overruns and
+               * also to avoid race conditions with the TX timeout work)
                */
 
               work_cancel(ETHWORK, &priv->lp_txwork);
@@ -1441,7 +1443,8 @@ static void lpc17_40_txtimeout_expiry(int argc, uint32_t arg, ...)
     {
       /* Schedule to perform the interrupt processing on the worker thread. */
 
-      work_queue(ETHWORK, &priv->lp_txwork, lpc17_40_txtimeout_work, priv, 0);
+      work_queue(ETHWORK, &priv->lp_txwork, lpc17_40_txtimeout_work,
+                 priv, 0);
     }
 }
 
@@ -1626,7 +1629,8 @@ static void lpc17_40_ipv6multicast(FAR struct lpc17_40_driver_s *priv)
 
 static int lpc17_40_ifup(struct net_driver_s *dev)
 {
-  struct lpc17_40_driver_s *priv = (struct lpc17_40_driver_s *)dev->d_private;
+  struct lpc17_40_driver_s *priv =
+    (struct lpc17_40_driver_s *)dev->d_private;
   uint32_t regval;
   int ret;
 
@@ -1786,7 +1790,8 @@ static int lpc17_40_ifup(struct net_driver_s *dev)
 
 static int lpc17_40_ifdown(struct net_driver_s *dev)
 {
-  struct lpc17_40_driver_s *priv = (struct lpc17_40_driver_s *)dev->d_private;
+  struct lpc17_40_driver_s *priv =
+    (struct lpc17_40_driver_s *)dev->d_private;
   irqstate_t flags;
 
   /* Disable the Ethernet interrupt */
@@ -1880,7 +1885,8 @@ static int lpc17_40_txavail(struct net_driver_s *dev)
     {
       /* Schedule to serialize the poll on the worker thread. */
 
-      work_queue(ETHWORK, &priv->lp_pollwork, lpc17_40_txavail_work, priv, 0);
+      work_queue(ETHWORK, &priv->lp_pollwork, lpc17_40_txavail_work,
+                 priv, 0);
     }
 
   return OK;
@@ -2014,8 +2020,8 @@ static int lpc17_40_addmac(struct net_driver_s *dev, const uint8_t *mac)
    * calculated from the 6 byte MAC address.  Bits [28:23] out of the 32-bit
    * CRC result are taken to form the hash. The 6-bit hash is used to access
    * the hash table: it is used as an index in the 64-bit HashFilter register
-   * that has been programmed with accept values. If the selected accept value
-   * is 1, the frame is accepted.
+   * that has been programmed with accept values. If the selected accept
+   * value is 1, the frame is accepted.
    */
 
   crc = lpc17_40_calcethcrc(mac, 6);
@@ -2090,8 +2096,8 @@ static int lpc17_40_rmmac(struct net_driver_s *dev, const uint8_t *mac)
    * calculated from the 6 byte MAC address.  Bits [28:23] out of the 32-bit
    * CRC result are taken to form the hash. The 6-bit hash is used to access
    * the hash table: it is used as an index in the 64-bit HashFilter register
-   * that has been programmed with accept values. If the selected accept value
-   * is 1, the frame is accepted.
+   * that has been programmed with accept values. If the selected accept
+   * value is 1, the frame is accepted.
    */
 
   crc = lpc17_40_calcethcrc(mac, 6);
@@ -2160,7 +2166,8 @@ static int lpc17_40_eth_ioctl(struct net_driver_s *dev, int cmd,
                            unsigned long arg)
 {
 #ifdef CONFIG_NETDEV_PHY_IOCTL
-  struct lpc17_40_driver_s *priv = (struct lpc17_40_driver_s *)dev->d_private;
+  struct lpc17_40_driver_s *priv =
+    (struct lpc17_40_driver_s *)dev->d_private;
 #endif
   int ret;
 
@@ -2671,6 +2678,7 @@ static inline int lpc17_40_phyinit(struct lpc17_40_driver_s *priv)
       nerr("ERROR: No PHY detected\n");
       return -ENODEV;
     }
+
   ninfo("phyaddr: %d\n", phyaddr);
 
   /* Save the discovered PHY device address */
@@ -2684,6 +2692,7 @@ static inline int lpc17_40_phyinit(struct lpc17_40_driver_s *priv)
     {
       return ret;
     }
+
   lpc17_40_showmii(phyaddr, "After reset");
 
   /* Check for preamble suppression support */
@@ -2807,6 +2816,7 @@ static inline int lpc17_40_phyinit(struct lpc17_40_driver_s *priv)
         nerr("ERROR: Unrecognized mode: %04x\n", phyreg);
         return -ENODEV;
     }
+
 #elif defined(CONFIG_ETH0_PHY_KSZ8081)
   phyreg = lpc17_40_phyread(phyaddr, MII_KSZ8081_PHYCTRL1);
 
@@ -2834,6 +2844,7 @@ static inline int lpc17_40_phyinit(struct lpc17_40_driver_s *priv)
         nerr("ERROR: Unrecognized mode: %04x\n", phyreg);
         return -ENODEV;
     }
+
 #elif defined(CONFIG_ETH0_PHY_DP83848C)
   phyreg = lpc17_40_phyread(phyaddr, MII_DP83848C_STS);
 
@@ -2936,6 +2947,7 @@ static inline int lpc17_40_phyinit(struct lpc17_40_driver_s *priv)
   lpc17_40_showmii(phyaddr, "After final configuration");
   return ret;
 }
+
 #else
 static inline int lpc17_40_phyinit(struct lpc17_40_driver_s *priv)
 {
@@ -3074,7 +3086,7 @@ static inline void lpc17_40_rxdescinit(struct lpc17_40_driver_s *priv)
  ****************************************************************************/
 
 #ifdef LPC17_40_HAVE_PHY
-static void lpc17_40_macmode(uint8_t mode)
+static inline void lpc17_40_macmode(uint8_t mode)
 {
   uint32_t regval;
 
@@ -3133,9 +3145,15 @@ static void lpc17_40_macmode(uint8_t mode)
     {
       regval &= ~ETH_SUPP_SPEED;
     }
+
   lpc17_40_putreg(regval, LPC17_40_ETH_SUPP);
 #endif
 }
+
+#else
+static inline void lpc17_40_macmode(uint8_t mode)
+{
+}
 #endif
 
 /****************************************************************************