diff mbox series

[for-5.2,10/19] ftgmac100: Fix interrupt status "Packet transmitted on ethernet"

Message ID 20200806132106.747414-11-clg@kaod.org
State New
Headers show
Series aspeed: mostly cleanups and some extensions | expand

Commit Message

Cédric Le Goater Aug. 6, 2020, 1:20 p.m. UTC
The second field of the TX descriptor has a set of flags to choose
when the transmit interrupt is raised : after the packet has been sent
on the ethernet or after it has been moved into the TX FIFO. But we
don't model that today.

Simply raise the "Packet transmitted on ethernet" the interrupt status
bit as soon as the packet is sent by QEMU.

Cc: Frederic Konrad <konrad.frederic@yahoo.fr>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/net/ftgmac100.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Joel Stanley Aug. 6, 2020, 11:47 p.m. UTC | #1
On Thu, 6 Aug 2020 at 13:21, Cédric Le Goater <clg@kaod.org> wrote:
>
> The second field of the TX descriptor has a set of flags to choose
> when the transmit interrupt is raised : after the packet has been sent
> on the ethernet or after it has been moved into the TX FIFO. But we
> don't model that today.

Does any software depend on this behaviour? Perhaps mention it in the
commit message so we remember why we changed it.

>
> Simply raise the "Packet transmitted on ethernet" the interrupt status
> bit as soon as the packet is sent by QEMU.

delete the second 'the'?

Reviewed-by: Joel Stanley <joel@jms.id.au>

>
> Cc: Frederic Konrad <konrad.frederic@yahoo.fr>
> Signed-off-by: Cédric Le Goater <clg@kaod.org>
> ---
>  hw/net/ftgmac100.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/hw/net/ftgmac100.c b/hw/net/ftgmac100.c
> index 0348fcf45676..aa3c05ef9882 100644
> --- a/hw/net/ftgmac100.c
> +++ b/hw/net/ftgmac100.c
> @@ -547,9 +547,7 @@ static void ftgmac100_do_tx(FTGMAC100State *s, uint32_t tx_ring,
>              qemu_send_packet(qemu_get_queue(s->nic), s->frame, frame_size);
>              ptr = s->frame;
>              frame_size = 0;
> -            if (flags & FTGMAC100_TXDES1_TXIC) {
> -                s->isr |= FTGMAC100_INT_XPKT_ETH;
> -            }
> +            s->isr |= FTGMAC100_INT_XPKT_ETH;
>          }
>
>          if (flags & FTGMAC100_TXDES1_TX2FIC) {
> --
> 2.25.4
>
Cédric Le Goater Aug. 7, 2020, 6:06 a.m. UTC | #2
On 8/7/20 1:47 AM, Joel Stanley wrote:
> On Thu, 6 Aug 2020 at 13:21, Cédric Le Goater <clg@kaod.org> wrote:
>>
>> The second field of the TX descriptor has a set of flags to choose
>> when the transmit interrupt is raised : after the packet has been sent
>> on the ethernet or after it has been moved into the TX FIFO. But we
>> don't model that today.
> 
> Does any software depend on this behaviour? 

No. I compared with HW with extra logging.

> Perhaps mention it in the
> commit message so we remember why we changed it.

OK.
 
>> Simply raise the "Packet transmitted on ethernet" the interrupt status
>> bit as soon as the packet is sent by QEMU.
> 
> delete the second 'the'?

sure :)

Thanks,

C. 

> 
> Reviewed-by: Joel Stanley <joel@jms.id.au>
> 
>>
>> Cc: Frederic Konrad <konrad.frederic@yahoo.fr>
>> Signed-off-by: Cédric Le Goater <clg@kaod.org>
>> ---
>>  hw/net/ftgmac100.c | 4 +---
>>  1 file changed, 1 insertion(+), 3 deletions(-)
>>
>> diff --git a/hw/net/ftgmac100.c b/hw/net/ftgmac100.c
>> index 0348fcf45676..aa3c05ef9882 100644
>> --- a/hw/net/ftgmac100.c
>> +++ b/hw/net/ftgmac100.c
>> @@ -547,9 +547,7 @@ static void ftgmac100_do_tx(FTGMAC100State *s, uint32_t tx_ring,
>>              qemu_send_packet(qemu_get_queue(s->nic), s->frame, frame_size);
>>              ptr = s->frame;
>>              frame_size = 0;
>> -            if (flags & FTGMAC100_TXDES1_TXIC) {
>> -                s->isr |= FTGMAC100_INT_XPKT_ETH;
>> -            }
>> +            s->isr |= FTGMAC100_INT_XPKT_ETH;
>>          }
>>
>>          if (flags & FTGMAC100_TXDES1_TX2FIC) {
>> --
>> 2.25.4
>>
diff mbox series

Patch

diff --git a/hw/net/ftgmac100.c b/hw/net/ftgmac100.c
index 0348fcf45676..aa3c05ef9882 100644
--- a/hw/net/ftgmac100.c
+++ b/hw/net/ftgmac100.c
@@ -547,9 +547,7 @@  static void ftgmac100_do_tx(FTGMAC100State *s, uint32_t tx_ring,
             qemu_send_packet(qemu_get_queue(s->nic), s->frame, frame_size);
             ptr = s->frame;
             frame_size = 0;
-            if (flags & FTGMAC100_TXDES1_TXIC) {
-                s->isr |= FTGMAC100_INT_XPKT_ETH;
-            }
+            s->isr |= FTGMAC100_INT_XPKT_ETH;
         }
 
         if (flags & FTGMAC100_TXDES1_TX2FIC) {