[PATCH 08/30] leon, apbuart: RX delayed interrupt

Daniel Hellstrom daniel at gaisler.com
Sat Apr 29 13:49:13 UTC 2017


On 2017-04-14 05:21, Chris Johns wrote:
> On 14/4/17 5:31 am, Daniel Hellstrom wrote:
>> From: Martin Aberg <maberg at gaisler.com>
>>
>> Utilize the APBUART RX delayed interrupt if available. It also
>> enables RX FIFO interrupt when used.
>>
>> The APBUART RX delayed interrupt is supported by the GR740.
>> ---
>>   c/src/lib/libbsp/sparc/shared/uart/apbuart_cons.c | 44 +++++++++++++++++++++--
>>   1 file changed, 42 insertions(+), 2 deletions(-)
>>
>> diff --git a/c/src/lib/libbsp/sparc/shared/uart/apbuart_cons.c b/c/src/lib/libbsp/sparc/shared/uart/apbuart_cons.c
>> index b070db5..e6cbd82 100644
>> --- a/c/src/lib/libbsp/sparc/shared/uart/apbuart_cons.c
>> +++ b/c/src/lib/libbsp/sparc/shared/uart/apbuart_cons.c
>> @@ -50,6 +50,11 @@ extern void apbuart_outbyte_polled(
>>   extern int apbuart_inbyte_nonblocking(struct apbuart_regs *regs);
>>   extern struct apbuart_regs *dbg_uart; /* The debug UART */
> A minor nit, this name pollutes the application namespace.
Since the dbg_uart isn't modified by this patch, we will post a separate 
patch prefixing with leon3_ instead.

>>   
>> +/* Probed hardware capabilities */
>> +enum {
>> +	CAP_FIFO = 0x01, /* FIFO available */
>> +	CAP_DI   = 0x02, /* RX delayed interrupt available */
>> +};
>>   struct apbuart_priv {
>>   	struct console_dev condev;
>>   	struct drvmgr_dev *dev;
>> @@ -58,6 +63,7 @@ struct apbuart_priv {
>>   	char devName[32];
>>   	volatile int sending;
>>   	int mode;
>> +	int cap;
>>   };
>>   
>>   /* Getters for different interfaces. It happens to be just casting which we do
>> @@ -186,6 +192,30 @@ static const rtems_termios_device_handler handler_polled = {
>>   	.mode           = TERMIOS_POLLED
>>   };
>>   
>> +/*
>> + * APBUART hardware instantiation is flexible. Probe features here and driver
>> + * can select appropriate routines for the hardware. probecap() return value
>> + * is a CAP_ bitmask.
>> + */
>> +static int probecap(volatile struct apbuart_regs *regs)
> Why is there a volatile in this decl?
>
> I do not see volatile used like this else where in the patches.
Good comment. We will post a second version of the patch.

Thanks!

>
> Chris
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel




More information about the devel mailing list