I attached it as .txt.

*Please note:* I made the code build and the SPI seems to work as expected
- I am communicating with an at45db flash over SPI and mounted smartFS on
it and the communication seems to work. I am not sure if the changes that I
did are enough or if the entire spi_interrupt function should be surrounded
by the #ifdef CONFIG_STM32H7_SPI_DMA condition as well (and also where it
is called from).
It would be good if someone with more experience that understands the
impact of the change could look into it.

PS: If the changes look ok, I will register on github and create the pull
request.  Do I need to get any approvals to create branches or pull
requests on nuttx incubator?

Edi



On Fri, Oct 16, 2020 at 7:28 PM Alan Carvalho de Assis <acas...@gmail.com>
wrote:

> Hi Eduard,
>
> Unfortunately the mailing list is refusing patches with extension
> .patch, we need to rename it to .txt to get it here.
>
> BTW, you can submit a Pull Request directly to
> https://github.com/apache/incubator-nuttx and we could review it.
>
> BR,
>
> Alan
>
> On 10/16/20, Eduard Niesner <niesneredu...@gmail.com> wrote:
> > Hi all,
> >
> > I am not familiar with the code from
> nuttx\arch\arm\src\stm32h7\stm32_spi.c
> > but I believe that there is an issue.
> > "txresult" is defined and used only if the CONFIG_STM32H7_SPI_DMA is
> > defined.
> > But in the spi_interrupt function, the txresult is used regardless of
> > whether CONFIG_STM32H7_SPI_DMA is defined or not.
> >
> > This generates a build issue when you configure SPI without
> > CONFIG_STM32H7_SPI_DMA.
> >
> > Is there anyone that knows more about this?
> > I implemented a fix and it seems to be working - but since I am not
> > familiar with the code I am not sure if this is the right thing to do.
> > I attached a patch.
> >
> > Thanks,
> > Edi
> >
>
diff --git a/arch/arm/src/stm32h7/stm32_spi.c b/arch/arm/src/stm32h7/stm32_spi.c
index 268f22093b..78d96864cf 100644
--- a/arch/arm/src/stm32h7/stm32_spi.c
+++ b/arch/arm/src/stm32h7/stm32_spi.c
@@ -1022,9 +1022,10 @@ static int spi_interrupt(int irq, void *context, void 
*arg)
       spi_modifyreg(priv, STM32_SPI_IER_OFFSET, SPI_IER_EOTIE, 0);
 
       /* Set result and release wait semaphore */
-
+#ifdef CONFIG_STM32H7_SPI_DMA
       priv->txresult = 0x80;
       nxsem_post(&priv->txsem);
+#endif
     }
 
   return 0;

Reply via email to