diff mbox

[v7,11/13] xilinx_spips: Don't set TX FIFO UNDERFLOW at cmd done

Message ID 20171103000109.28244-12-frasse.iglesias@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Francisco Iglesias Nov. 3, 2017, 12:01 a.m. UTC
Don't set TX FIFO UNDERFLOW interrupt after done transmiting the commands.
Also update interrupts after reading out the interrupt status.

Signed-off-by: Francisco Iglesias <frasse.iglesias@gmail.com>
---
 hw/ssi/xilinx_spips.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Alistair Francis Nov. 23, 2017, 12:39 a.m. UTC | #1
On Thu, Nov 2, 2017 at 5:01 PM, Francisco Iglesias
<frasse.iglesias@gmail.com> wrote:
> Don't set TX FIFO UNDERFLOW interrupt after done transmiting the commands.

after transmitting the commands

> Also update interrupts after reading out the interrupt status.
>
> Signed-off-by: Francisco Iglesias <frasse.iglesias@gmail.com>

Acked-by: Alistair Francis <alistair.francis@xilinx.com>

Alistair


> ---
>  hw/ssi/xilinx_spips.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/hw/ssi/xilinx_spips.c b/hw/ssi/xilinx_spips.c
> index 7f0f317..159a89d 100644
> --- a/hw/ssi/xilinx_spips.c
> +++ b/hw/ssi/xilinx_spips.c
> @@ -329,9 +329,6 @@ static void xilinx_spips_flush_txfifo(XilinxSPIPS *s)
>          uint8_t addr_length;
>
>          if (fifo8_is_empty(&s->tx_fifo)) {
> -            if (!(s->regs[R_LQSPI_CFG] & LQSPI_CFG_LQ_MODE)) {
> -                s->regs[R_INTR_STATUS] |= IXR_TX_FIFO_UNDERFLOW;
> -            }
>              xilinx_spips_update_ixr(s);
>              return;
>          } else if (s->snoop_state == SNOOP_STRIPING) {
> @@ -530,6 +527,7 @@ static uint64_t xilinx_spips_read(void *opaque, hwaddr addr,
>          ret = s->regs[addr] & IXR_ALL;
>          s->regs[addr] = 0;
>          DB_PRINT_L(0, "addr=" TARGET_FMT_plx " = %x\n", addr * 4, ret);
> +        xilinx_spips_update_ixr(s);
>          return ret;
>      case R_INTR_MASK:
>          mask = IXR_ALL;
> --
> 2.9.3
>
>
Francisco Iglesias Nov. 23, 2017, 7:51 p.m. UTC | #2
Good day Alistair,

Thank you very much for reviewing agian! I will update the patch set
according to your comments and come back with a new version (v8)!

Best regards,
Francisco Iglesias


On 23 November 2017 at 01:39, Alistair Francis <alistair23@gmail.com> wrote:

> On Thu, Nov 2, 2017 at 5:01 PM, Francisco Iglesias
> <frasse.iglesias@gmail.com> wrote:
> > Don't set TX FIFO UNDERFLOW interrupt after done transmiting the
> commands.
>
> after transmitting the commands
>
> > Also update interrupts after reading out the interrupt status.
> >
> > Signed-off-by: Francisco Iglesias <frasse.iglesias@gmail.com>
>
> Acked-by: Alistair Francis <alistair.francis@xilinx.com>
>
> Alistair
>
>
> > ---
> >  hw/ssi/xilinx_spips.c | 4 +---
> >  1 file changed, 1 insertion(+), 3 deletions(-)
> >
> > diff --git a/hw/ssi/xilinx_spips.c b/hw/ssi/xilinx_spips.c
> > index 7f0f317..159a89d 100644
> > --- a/hw/ssi/xilinx_spips.c
> > +++ b/hw/ssi/xilinx_spips.c
> > @@ -329,9 +329,6 @@ static void xilinx_spips_flush_txfifo(XilinxSPIPS
> *s)
> >          uint8_t addr_length;
> >
> >          if (fifo8_is_empty(&s->tx_fifo)) {
> > -            if (!(s->regs[R_LQSPI_CFG] & LQSPI_CFG_LQ_MODE)) {
> > -                s->regs[R_INTR_STATUS] |= IXR_TX_FIFO_UNDERFLOW;
> > -            }
> >              xilinx_spips_update_ixr(s);
> >              return;
> >          } else if (s->snoop_state == SNOOP_STRIPING) {
> > @@ -530,6 +527,7 @@ static uint64_t xilinx_spips_read(void *opaque,
> hwaddr addr,
> >          ret = s->regs[addr] & IXR_ALL;
> >          s->regs[addr] = 0;
> >          DB_PRINT_L(0, "addr=" TARGET_FMT_plx " = %x\n", addr * 4, ret);
> > +        xilinx_spips_update_ixr(s);
> >          return ret;
> >      case R_INTR_MASK:
> >          mask = IXR_ALL;
> > --
> > 2.9.3
> >
> >
>
diff mbox

Patch

diff --git a/hw/ssi/xilinx_spips.c b/hw/ssi/xilinx_spips.c
index 7f0f317..159a89d 100644
--- a/hw/ssi/xilinx_spips.c
+++ b/hw/ssi/xilinx_spips.c
@@ -329,9 +329,6 @@  static void xilinx_spips_flush_txfifo(XilinxSPIPS *s)
         uint8_t addr_length;
 
         if (fifo8_is_empty(&s->tx_fifo)) {
-            if (!(s->regs[R_LQSPI_CFG] & LQSPI_CFG_LQ_MODE)) {
-                s->regs[R_INTR_STATUS] |= IXR_TX_FIFO_UNDERFLOW;
-            }
             xilinx_spips_update_ixr(s);
             return;
         } else if (s->snoop_state == SNOOP_STRIPING) {
@@ -530,6 +527,7 @@  static uint64_t xilinx_spips_read(void *opaque, hwaddr addr,
         ret = s->regs[addr] & IXR_ALL;
         s->regs[addr] = 0;
         DB_PRINT_L(0, "addr=" TARGET_FMT_plx " = %x\n", addr * 4, ret);
+        xilinx_spips_update_ixr(s);
         return ret;
     case R_INTR_MASK:
         mask = IXR_ALL;