minor fixes and improvements
This commit is contained in:
parent
9c1b546b16
commit
50928211ca
3 changed files with 4 additions and 5 deletions
|
@ -3,7 +3,6 @@
|
||||||
|
|
||||||
#include <ardix/atomic.h>
|
#include <ardix/atomic.h>
|
||||||
#include <ardix/io.h>
|
#include <ardix/io.h>
|
||||||
#include <ardix/list.h>
|
|
||||||
#include <ardix/malloc.h>
|
#include <ardix/malloc.h>
|
||||||
#include <ardix/ringbuf.h>
|
#include <ardix/ringbuf.h>
|
||||||
#include <ardix/serial.h>
|
#include <ardix/serial.h>
|
||||||
|
@ -55,7 +54,6 @@ int arch_serial_init(struct serial_interface *interface)
|
||||||
/* choose the events we want an interrupt on */
|
/* choose the events we want an interrupt on */
|
||||||
REG_UART_IDR = 0xFFFFFFFF; /* make sure all interrupts are disabled first */
|
REG_UART_IDR = 0xFFFFFFFF; /* make sure all interrupts are disabled first */
|
||||||
REG_UART_IER = REG_UART_IER_RXRDY_MASK
|
REG_UART_IER = REG_UART_IER_RXRDY_MASK
|
||||||
| REG_UART_IER_ENDTX_MASK
|
|
||||||
| REG_UART_IER_OVRE_MASK
|
| REG_UART_IER_OVRE_MASK
|
||||||
| REG_UART_IER_FRAME_MASK;
|
| REG_UART_IER_FRAME_MASK;
|
||||||
|
|
||||||
|
@ -129,6 +127,7 @@ void irq_uart(void)
|
||||||
|
|
||||||
/* REG_UART_PDC_TCR has reached zero */
|
/* REG_UART_PDC_TCR has reached zero */
|
||||||
if (state & REG_UART_SR_ENDTX_MASK) {
|
if (state & REG_UART_SR_ENDTX_MASK) {
|
||||||
|
/* this might be NULL but that's ok because free() tolerates that */
|
||||||
free(arch_serial_default_interface.tx_current);
|
free(arch_serial_default_interface.tx_current);
|
||||||
|
|
||||||
/* DMA automatically does this to the actual hardware registers */
|
/* DMA automatically does this to the actual hardware registers */
|
||||||
|
|
|
@ -36,7 +36,7 @@ struct list_head {
|
||||||
#define list_last_entry(head, type, member) \
|
#define list_last_entry(head, type, member) \
|
||||||
container_of((head)->prev, type, member)
|
container_of((head)->prev, type, member)
|
||||||
|
|
||||||
#define list_is_empty(head) ((head)->next == head)
|
#define list_is_empty(head) ((head)->next == (head))
|
||||||
|
|
||||||
#define list_for_each(head, cursor) \
|
#define list_for_each(head, cursor) \
|
||||||
for (cursor = (head)->next; \
|
for (cursor = (head)->next; \
|
||||||
|
|
|
@ -15,13 +15,13 @@
|
||||||
|
|
||||||
size_t copy_from_user(void *dest, __user const void *src, size_t len)
|
size_t copy_from_user(void *dest, __user const void *src, size_t len)
|
||||||
{
|
{
|
||||||
void *tmp = memcpy(dest, src, len);
|
memcpy(dest, src, len);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t copy_to_user(__user void *dest, const void *src, size_t len)
|
size_t copy_to_user(__user void *dest, const void *src, size_t len)
|
||||||
{
|
{
|
||||||
void *tmp = memcpy(dest, src, len);
|
memcpy(dest, src, len);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue