xiaoxiang781216 commented on code in PR #15291:
URL: https://github.com/apache/nuttx/pull/15291#discussion_r1892191586


##########
arch/arm64/src/imx9/imx9_lpuart.c:
##########
@@ -1758,15 +1780,15 @@ static int imx9_ioctl(struct file *filep, int cmd, 
unsigned long arg)
              * implement TCSADRAIN / TCSAFLUSH
              */
 
-            flags  = spin_lock_irqsave(NULL);
-            imx9_disableuartint(priv, &ie);
+            flags  = spin_lock_irqsave(&priv->lock);

Review Comment:
   ```suggestion
               flags = spin_lock_irqsave(&priv->lock);
   ```



##########
arch/arm64/src/imx9/imx9_lpuart.c:
##########
@@ -1778,7 +1800,7 @@ static int imx9_ioctl(struct file *filep, int cmd, 
unsigned long arg)
         uint32_t regval;
         struct imx9_uart_s *priv = (struct imx9_uart_s *)dev;
 
-        flags  = spin_lock_irqsave(NULL);
+        flags  = spin_lock_irqsave(&priv->lock);
         regval   = imx9_serialin(priv, IMX9_LPUART_CTRL_OFFSET);

Review Comment:
   ```suggestion
           regval = imx9_serialin(priv, IMX9_LPUART_CTRL_OFFSET);
   ```



##########
arch/arm/src/imx9/imx9_lpuart.c:
##########
@@ -1779,7 +1802,7 @@ static int imx9_ioctl(struct file *filep, int cmd, 
unsigned long arg)
         uint32_t regval;
         struct imx9_uart_s *priv = (struct imx9_uart_s *)dev;
 
-        flags  = spin_lock_irqsave(NULL);
+        flags  = spin_lock_irqsave(&priv->lock);
         regval   = imx9_serialin(priv, IMX9_LPUART_CTRL_OFFSET);

Review Comment:
   ```suggestion
           regval = imx9_serialin(priv, IMX9_LPUART_CTRL_OFFSET);
   ```



##########
arch/arm/src/imx9/imx9_lpuart.c:
##########
@@ -1140,29 +1147,45 @@ static inline void imx9_disableuartint(struct 
imx9_uart_s *priv,
 
   regval &= ~LPUART_ALL_INTS;
   imx9_serialout(priv, IMX9_LPUART_CTRL_OFFSET, regval);
-  spin_unlock_irqrestore(NULL, flags);
+}
+
+static inline void imx9_disableuartint(struct imx9_uart_s *priv,
+                                       uint32_t *ie)
+{
+  irqstate_t flags;
+
+  flags  = spin_lock_irqsave(&priv->lock);

Review Comment:
   ```suggestion
     flags = spin_lock_irqsave(&priv->lock);
   ```



##########
arch/arm/src/imx9/imx9_lpuart.c:
##########
@@ -1140,29 +1147,45 @@ static inline void imx9_disableuartint(struct 
imx9_uart_s *priv,
 
   regval &= ~LPUART_ALL_INTS;
   imx9_serialout(priv, IMX9_LPUART_CTRL_OFFSET, regval);
-  spin_unlock_irqrestore(NULL, flags);
+}
+
+static inline void imx9_disableuartint(struct imx9_uart_s *priv,
+                                       uint32_t *ie)
+{
+  irqstate_t flags;
+
+  flags  = spin_lock_irqsave(&priv->lock);
+  imx9_disableuartint_nolock(priv, ie);
+  spin_unlock_irqrestore(&priv->lock, flags);
 }
 
 /****************************************************************************
  * Name: imx9_restoreuartint
  ****************************************************************************/
 
+static inline void imx9_restoreuartint_nolock(struct imx9_uart_s *priv,
+                                              uint32_t ie)
+{
+  uint32_t regval;
+
+  regval  = imx9_serialin(priv, IMX9_LPUART_CTRL_OFFSET);
+  regval &= ~LPUART_ALL_INTS;
+  regval |= ie;
+  imx9_serialout(priv, IMX9_LPUART_CTRL_OFFSET, regval);
+}
+
 static inline void imx9_restoreuartint(struct imx9_uart_s *priv,
-                                        uint32_t ie)
+                                       uint32_t ie)
 {
   irqstate_t flags;
-  uint32_t regval;
 
   /* Enable/disable any interrupts that are currently disabled but should be
    * enabled/disabled.
    */
 
-  flags   = spin_lock_irqsave(NULL);
-  regval  = imx9_serialin(priv, IMX9_LPUART_CTRL_OFFSET);
-  regval &= ~LPUART_ALL_INTS;
-  regval |= ie;
-  imx9_serialout(priv, IMX9_LPUART_CTRL_OFFSET, regval);
-  spin_unlock_irqrestore(NULL, flags);
+  flags   = spin_lock_irqsave(&priv->lock);

Review Comment:
   ```suggestion
     flags = spin_lock_irqsave(&priv->lock);
   ```



##########
arch/arm64/src/imx9/imx9_lpuart.c:
##########
@@ -1139,29 +1145,45 @@ static inline void imx9_disableuartint(struct 
imx9_uart_s *priv,
 
   regval &= ~LPUART_ALL_INTS;
   imx9_serialout(priv, IMX9_LPUART_CTRL_OFFSET, regval);
-  spin_unlock_irqrestore(NULL, flags);
+}
+
+static inline void imx9_disableuartint(struct imx9_uart_s *priv,
+                                       uint32_t *ie)
+{
+  irqstate_t flags;
+
+  flags  = spin_lock_irqsave(&priv->lock);

Review Comment:
   ```suggestion
     flags = spin_lock_irqsave(&priv->lock);
   ```



##########
arch/arm64/src/imx9/imx9_lpuart.c:
##########
@@ -1139,29 +1145,45 @@ static inline void imx9_disableuartint(struct 
imx9_uart_s *priv,
 
   regval &= ~LPUART_ALL_INTS;
   imx9_serialout(priv, IMX9_LPUART_CTRL_OFFSET, regval);
-  spin_unlock_irqrestore(NULL, flags);
+}
+
+static inline void imx9_disableuartint(struct imx9_uart_s *priv,
+                                       uint32_t *ie)
+{
+  irqstate_t flags;
+
+  flags  = spin_lock_irqsave(&priv->lock);
+  imx9_disableuartint_nolock(priv, ie);
+  spin_unlock_irqrestore(&priv->lock, flags);
 }
 
 /****************************************************************************
  * Name: imx9_restoreuartint
  ****************************************************************************/
 
+static inline void imx9_restoreuartint_nolock(struct imx9_uart_s *priv,
+                                              uint32_t ie)
+{
+  uint32_t regval;
+
+  regval  = imx9_serialin(priv, IMX9_LPUART_CTRL_OFFSET);
+  regval &= ~LPUART_ALL_INTS;
+  regval |= ie;
+  imx9_serialout(priv, IMX9_LPUART_CTRL_OFFSET, regval);
+}
+
 static inline void imx9_restoreuartint(struct imx9_uart_s *priv,
-                                        uint32_t ie)
+                                       uint32_t ie)
 {
   irqstate_t flags;
-  uint32_t regval;
 
   /* Enable/disable any interrupts that are currently disabled but should be
    * enabled/disabled.
    */
 
-  flags   = spin_lock_irqsave(NULL);
-  regval  = imx9_serialin(priv, IMX9_LPUART_CTRL_OFFSET);
-  regval &= ~LPUART_ALL_INTS;
-  regval |= ie;
-  imx9_serialout(priv, IMX9_LPUART_CTRL_OFFSET, regval);
-  spin_unlock_irqrestore(NULL, flags);
+  flags   = spin_lock_irqsave(&priv->lock);

Review Comment:
   ```suggestion
     flags = spin_lock_irqsave(&priv->lock);
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to