qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] imx_serial: Generate interrupt on tx empty if e


From: Peter Crosthwaite
Subject: Re: [Qemu-devel] [PATCH] imx_serial: Generate interrupt on tx empty if enabled
Date: Sun, 13 Sep 2015 13:17:30 -0700

On Fri, Sep 11, 2015 at 12:37 AM, Michael Tokarev <address@hidden> wrote:
>
> Can we please have some r-b or ACK for this? :)
>
> 20.08.2015 18:52, Guenter Roeck wrote:
>> Generate an interrupt if the tx buffer is empty and the tx empty interrupt
>> is enabled. This fixes a problem seen when running a Linux image since
>> Linux commit 55c3cb1358e ("serial: imx: remove unneeded imx_transmit_buffer()
>> from imx_start_tx()"). Linux now waits for the tx empty interrupt before
>> starting to send data, causing transmit stalls until there is an interrupt
>> for another reason.
>>
>> Signed-off-by: Guenter Roeck <address@hidden>


Looks right, Jean-Christophe may know more though.

Reviewed-by: Peter Crosthwaite <address@hidden>

>> ---
>>  hw/char/imx_serial.c | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/char/imx_serial.c b/hw/char/imx_serial.c
>> index f3fbc77..8dc791d 100644
>> --- a/hw/char/imx_serial.c
>> +++ b/hw/char/imx_serial.c
>> @@ -145,7 +145,9 @@ static void imx_update(IMXSerialState *s)
>>      uint32_t flags;
>>
>>      flags = (s->usr1 & s->ucr1) & (USR1_TRDY|USR1_RRDY);
>> -    if (!(s->ucr1 & UCR1_TXMPTYEN)) {
>> +    if (s->ucr1 & UCR1_TXMPTYEN) {
>> +        flags |= (s->uts1 & UTS1_TXEMPTY);
>> +    } else {
>>          flags &= ~USR1_TRDY;

Out of scope, but this conditional looks wrong (in original code too).
Why does TXMPTYEN gate TRDY?

Regards,
Peter

>>      }
>>
>>
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]