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

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

commit 4f2f2ef9fbfcef769a8d80131953c241310693e5
Author: Abdelatif Guettouche <[email protected]>
AuthorDate: Mon Aug 2 11:45:15 2021 +0200

    arch/xtensa: Get the cpu member out of the read only structure.
    
    Signed-off-by: Abdelatif Guettouche <[email protected]>
---
 arch/xtensa/src/esp32/esp32_i2c.c       | 17 ++++++-----------
 arch/xtensa/src/esp32/esp32_serial.c    |  8 ++++----
 arch/xtensa/src/esp32/esp32_spi.c       | 12 +++++-------
 arch/xtensa/src/esp32/esp32_spi_slave.c | 12 +++++-------
 4 files changed, 20 insertions(+), 29 deletions(-)

diff --git a/arch/xtensa/src/esp32/esp32_i2c.c 
b/arch/xtensa/src/esp32/esp32_i2c.c
index 3eba107..2e2e158 100644
--- a/arch/xtensa/src/esp32/esp32_i2c.c
+++ b/arch/xtensa/src/esp32/esp32_i2c.c
@@ -172,7 +172,6 @@ struct esp32_i2c_config_s
   uint8_t sda_pin;            /* GPIO configuration for SDA as SDA */
 
 #ifndef CONFIG_I2C_POLLED
-  uint8_t cpu;                /* CPU ID */
   uint8_t periph;             /* Peripheral ID */
   uint8_t irq;                /* Interrupt ID */
 #endif
@@ -201,6 +200,8 @@ struct esp32_i2c_priv_s
 
 #ifndef CONFIG_I2C_POLLED
   sem_t sem_isr;               /* Interrupt wait semaphore */
+  int     cpuint;              /* CPU interrupt assigned to this I2C */
+  uint8_t cpu;                 /* CPU ID */
 #endif
 
   /* I2C work state (see enum esp32_i2cstate_e) */
@@ -212,10 +213,6 @@ struct esp32_i2c_priv_s
   uint8_t msgid;               /* Current message ID */
   ssize_t bytes;               /* Processed data bytes */
 
-#ifndef CONFIG_I2C_POLLED
-  int     cpuint;              /* CPU interrupt assigned to this I2C */
-#endif
-
   uint32_t error;              /* I2C transform error */
 
   bool ready_read;             /* If I2C has read data */
@@ -289,7 +286,6 @@ static const struct esp32_i2c_config_s esp32_i2c0_config =
   .scl_pin    = CONFIG_ESP32_I2C0_SCLPIN,
   .sda_pin    = CONFIG_ESP32_I2C0_SDAPIN,
 #ifndef CONFIG_I2C_POLLED
-  .cpu        = 0,
   .periph     = ESP32_PERIPH_I2C_EXT0,
   .irq        = ESP32_IRQ_I2C_EXT0,
 #endif
@@ -322,7 +318,6 @@ static const struct esp32_i2c_config_s esp32_i2c1_config =
   .scl_pin    = CONFIG_ESP32_I2C1_SCLPIN,
   .sda_pin    = CONFIG_ESP32_I2C1_SDAPIN,
 #ifndef CONFIG_I2C_POLLED
-  .cpu        = 0,
   .periph     = ESP32_PERIPH_I2C_EXT1,
   .irq        = ESP32_IRQ_I2C_EXT1,
 #endif
@@ -1571,14 +1566,14 @@ FAR struct i2c_master_s *esp32_i2cbus_initialize(int 
port)
 
   /* Set up to receive peripheral interrupts on the current CPU */
 
-  config->cpu = up_cpu_index();
+  priv->cpu = up_cpu_index();
   up_disable_irq(priv->cpuint);
-  esp32_attach_peripheral(config->cpu, config->periph, priv->cpuint);
+  esp32_attach_peripheral(priv->cpu, config->periph, priv->cpuint);
 
   ret = irq_attach(config->irq, esp32_i2c_irq, priv);
   if (ret != OK)
     {
-      esp32_detach_peripheral(config->cpu, config->periph, priv->cpuint);
+      esp32_detach_peripheral(priv->cpu, config->periph, priv->cpuint);
       esp32_free_cpuint(priv->cpuint);
 
       leave_critical_section(flags);
@@ -1630,7 +1625,7 @@ int esp32_i2cbus_uninitialize(FAR struct i2c_master_s 
*dev)
 
 #ifndef CONFIG_I2C_POLLED
   up_disable_irq(priv->cpuint);
-  esp32_detach_peripheral(priv->config->cpu,
+  esp32_detach_peripheral(priv->cpu,
                           priv->config->periph,
                           priv->cpuint);
   esp32_free_cpuint(priv->cpuint);
diff --git a/arch/xtensa/src/esp32/esp32_serial.c 
b/arch/xtensa/src/esp32/esp32_serial.c
index 6e178f2..352aad2 100644
--- a/arch/xtensa/src/esp32/esp32_serial.c
+++ b/arch/xtensa/src/esp32/esp32_serial.c
@@ -227,7 +227,6 @@ struct esp32_dmadesc_s 
s_dma_txdesc[UART_DMA_CONTROLLERS_NUM]
 struct esp32_config_s
 {
   const uint8_t id;             /* UART id */
-  uint8_t  cpu;                 /* CPU ID */
   uint8_t  periph;              /* UART peripheral ID */
   uint8_t  irq;                 /* IRQ number assigned to the peripheral */
   uint8_t  txpin;               /* Tx pin number (0-39) */
@@ -256,6 +255,7 @@ struct esp32_dev_s
   uint32_t baud;                       /* Configured baud */
   uint32_t status;                     /* Saved status bits */
   int      cpuint;                     /* CPU interrupt assigned to this UART 
*/
+  uint8_t  cpu;                        /* CPU ID */
   uint8_t  parity;                     /* 0=none, 1=odd, 2=even */
   uint8_t  bits;                       /* Number of bits (5-9) */
   bool     stopbits2;                  /* true: Configure with 2 stop bits 
instead of 1 */
@@ -1025,12 +1025,12 @@ static int esp32_attach(struct uart_dev_s *dev)
 
   /* Set up to receive peripheral interrupts on the current CPU */
 
-  priv->config->cpu = up_cpu_index();
+  priv->cpu = up_cpu_index();
 
   /* Attach the GPIO peripheral to the allocated CPU interrupt */
 
   up_disable_irq(priv->cpuint);
-  esp32_attach_peripheral(priv->config->cpu, priv->config->periph,
+  esp32_attach_peripheral(priv->cpu, priv->config->periph,
                           priv->cpuint);
 
   /* Attach and enable the IRQ */
@@ -1069,7 +1069,7 @@ static void esp32_detach(struct uart_dev_s *dev)
 
   /* Disassociate the peripheral interrupt from the CPU interrupt */
 
-  esp32_detach_peripheral(priv->config->cpu, priv->config->periph,
+  esp32_detach_peripheral(priv->cpu, priv->config->periph,
                           priv->cpuint);
 
   /* And release the CPU interrupt */
diff --git a/arch/xtensa/src/esp32/esp32_spi.c 
b/arch/xtensa/src/esp32/esp32_spi.c
index 12d746d..5c9b8e0 100644
--- a/arch/xtensa/src/esp32/esp32_spi.c
+++ b/arch/xtensa/src/esp32/esp32_spi.c
@@ -109,7 +109,6 @@ struct esp32_spi_config_s
   uint8_t miso_pin;           /* GPIO configuration for MISO */
   uint8_t clk_pin;            /* GPIO configuration for CLK */
 
-  uint8_t cpu;                /* CPU ID */
   uint8_t periph;             /* peripher ID */
   uint8_t irq;                /* Interrupt ID */
 
@@ -153,6 +152,7 @@ struct esp32_spi_priv_s
   sem_t            sem_isr;
 
   int              cpuint;      /* SPI interrupt ID */
+  uint8_t          cpu;         /* CPU ID */
 
   uint32_t         frequency;   /* Requested clock frequency */
   uint32_t         actual;      /* Actual clock frequency */
@@ -214,7 +214,6 @@ static const struct esp32_spi_config_s esp32_spi2_config =
   .mosi_pin     = CONFIG_ESP32_SPI2_MOSIPIN,
   .miso_pin     = CONFIG_ESP32_SPI2_MISOPIN,
   .clk_pin      = CONFIG_ESP32_SPI2_CLKPIN,
-  .cpu          = 0,
   .periph       = ESP32_PERIPH_SPI2,
   .irq          = ESP32_IRQ_SPI2,
   .clk_bit      = DPORT_SPI_CLK_EN_2,
@@ -289,7 +288,6 @@ static const struct esp32_spi_config_s esp32_spi3_config =
   .mosi_pin     = CONFIG_ESP32_SPI3_MOSIPIN,
   .miso_pin     = CONFIG_ESP32_SPI3_MISOPIN,
   .clk_pin      = CONFIG_ESP32_SPI3_CLKPIN,
-  .cpu          = 0,
   .periph       = ESP32_PERIPH_SPI3,
   .irq          = ESP32_IRQ_SPI3,
   .clk_bit      = DPORT_SPI_CLK_EN,
@@ -1475,15 +1473,15 @@ FAR struct spi_dev_s *esp32_spibus_initialize(int port)
 
       /* Set up to receive peripheral interrupts on the current CPU */
 
-      priv->config->cpu = up_cpu_index();
+      priv->cpu = up_cpu_index();
       up_disable_irq(priv->cpuint);
-      esp32_attach_peripheral(priv->config->cpu,
+      esp32_attach_peripheral(priv->cpu,
                               priv->config->periph,
                               priv->cpuint);
       ret = irq_attach(priv->config->irq, esp32_spi_interrupt, priv);
       if (ret != OK)
         {
-          esp32_detach_peripheral(priv->config->cpu,
+          esp32_detach_peripheral(priv->cpu,
                                   priv->config->periph,
                                   priv->cpuint);
           esp32_free_cpuint(priv->cpuint);
@@ -1537,7 +1535,7 @@ int esp32_spibus_uninitialize(FAR struct spi_dev_s *dev)
   if (priv->config->use_dma)
     {
       up_disable_irq(priv->cpuint);
-      esp32_detach_peripheral(priv->config->cpu,
+      esp32_detach_peripheral(priv->cpu,
                               priv->config->periph,
                               priv->cpuint);
       esp32_free_cpuint(priv->cpuint);
diff --git a/arch/xtensa/src/esp32/esp32_spi_slave.c 
b/arch/xtensa/src/esp32/esp32_spi_slave.c
index 0d13bec..7764bc9 100644
--- a/arch/xtensa/src/esp32/esp32_spi_slave.c
+++ b/arch/xtensa/src/esp32/esp32_spi_slave.c
@@ -101,7 +101,6 @@ struct esp32_spislv_config_s
   uint8_t miso_pin;           /* GPIO configuration for MISO */
   uint8_t clk_pin;            /* GPIO configuration for CLK */
 
-  uint8_t cpu;                /* CPU ID */
   uint8_t periph;             /* peripher ID */
   uint8_t irq;                /* Interrupt ID */
 
@@ -136,6 +135,7 @@ struct esp32_spislv_priv_s
 
   const struct esp32_spislv_config_s *config; /* Port configuration */
 
+  uint8_t          cpu;         /* CPU ID */
   int              cpuint;      /* SPI interrupt ID */
 
   enum spi_mode_e  mode;        /* Actual SPI hardware mode */
@@ -200,7 +200,6 @@ static const struct esp32_spislv_config_s esp32_spi2_config 
=
   .mosi_pin     = CONFIG_ESP32_SPI2_MOSIPIN,
   .miso_pin     = CONFIG_ESP32_SPI2_MISOPIN,
   .clk_pin      = CONFIG_ESP32_SPI2_CLKPIN,
-  .cpu          = 0,
   .periph       = ESP32_PERIPH_SPI2,
   .irq          = ESP32_IRQ_SPI2,
   .clk_bit      = DPORT_SPI_CLK_EN_2,
@@ -254,7 +253,6 @@ static const struct esp32_spislv_config_s esp32_spi3_config 
=
   .mosi_pin     = CONFIG_ESP32_SPI3_MOSIPIN,
   .miso_pin     = CONFIG_ESP32_SPI3_MISOPIN,
   .clk_pin      = CONFIG_ESP32_SPI3_CLKPIN,
-  .cpu          = 0,
   .periph       = ESP32_PERIPH_SPI3,
   .irq          = ESP32_IRQ_SPI3,
   .clk_bit      = DPORT_SPI_CLK_EN,
@@ -1308,16 +1306,16 @@ FAR struct spi_slave_ctrlr_s 
*esp32_spislv_ctrlr_initialize(int port)
 
   /* Set up to receive peripheral interrupts on the current CPU */
 
-  priv->config->cpu = up_cpu_index();
+  priv->cpu = up_cpu_index();
   up_disable_irq(priv->cpuint);
-  esp32_attach_peripheral(priv->config->cpu,
+  esp32_attach_peripheral(priv->cpu,
                           priv->config->periph,
                           priv->cpuint);
 
   ret = irq_attach(priv->config->irq, esp32_spislv_interrupt, priv);
   if (ret != OK)
     {
-      esp32_detach_peripheral(priv->config->cpu,
+      esp32_detach_peripheral(priv->cpu,
                               priv->config->periph,
                               priv->cpuint);
       esp32_free_cpuint(priv->cpuint);
@@ -1369,7 +1367,7 @@ int esp32_spislv_ctrlr_uninitialize(FAR struct 
spi_slave_ctrlr_s *ctrlr)
     }
 
   up_disable_irq(priv->cpuint);
-  esp32_detach_peripheral(priv->config->cpu,
+  esp32_detach_peripheral(priv->cpu,
                           priv->config->periph,
                           priv->cpuint);
   esp32_free_cpuint(priv->cpuint);

Reply via email to