]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/commit
MFC: r234901
authormarius <marius@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sat, 26 May 2012 09:16:37 +0000 (09:16 +0000)
committermarius <marius@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sat, 26 May 2012 09:16:37 +0000 (09:16 +0000)
commite8a2efbdab4c9326bb10a2ab2c7bf690b695be54
tree5c38c716d462715e20589fa8cd6cbc72aec396db
parentc631a393df43f0e1868c9da5721817f88ccb780f
MFC: r234901

- Add missing locking in at91_usart_getc().
- Align the RX buffers on the cache line size, otherwise the requirement
  of partial cache line flushes on every are pretty much guaranteed. [1]
- Make the code setting the RX timeout match its comment (apparently,
  start and stop bits were missed in the previous calculation). [1]
- Cover the busdma operations in at91_usart_bus_{ipend,transmit}() with
  the hardware mutex, too, so these don't race against each other.
- In at91_usart_bus_ipend(), reduce duplication in the code dealing with
  TX interrupts.
- In at91_usart_bus_ipend(), turn the code dealing with RX interrupts
  into an else-if cascade in order reduce its complexity and to improve
  its run-time behavior.
- In at91_usart_bus_ipend(), add missing BUS_DMASYNC_PREREAD calls on
  the RX buffer map before handing things over to the hardware again. [1]
- In at91_usart_bus_getsig(), used a variable of sufficient width for
  storing the contents of USART_CSR.
- Use KOBJMETHOD_END.
- Remove an unused header.

Submitted by: Ian Lepore [1]
Reviewed by: Ian Lepore

git-svn-id: svn://svn.freebsd.org/base/stable/9@236088 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/arm/at91/uart_dev_at91usart.c