atmel usart and dma tx

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

 



Hi everybody,
with kernel 5.17, at91sam9g25 running at 400MHz I discovered drop outs while I write data (64 to 128B) to ttyS by one call of write(). At speed 230400 or 115200 Baud. It is not transmitted at once, there are random spaces long 200us to 1ms. It should use DMA so I think it could be transmitted at once.
Is there everything OK with DMA or some special setting needed?

dmesg:
[ 1.636666] bus: 'platform': __driver_probe_device: matched device f801c000.serial with driver at91_usart_mode [ 1.636666] bus: 'platform': really_probe: probing driver at91_usart_mode with device f801c000.serial
[    1.636666] pinctrl-at91 ahb:apb:pinctrl@fffff400: usart0-0: 2 0:0
[ 1.636666] pinctrl-at91 ahb:apb:pinctrl@fffff400: maps: function usart0 group usart0-0 num 3
[    1.636666] pinctrl-at91 ahb:apb:pinctrl@fffff400: usart0_rts-0: 1 0:2
[ 1.636666] pinctrl-at91 ahb:apb:pinctrl@fffff400: maps: function usart0 group usart0_rts-0 num 2 [ 1.636666] pinctrl-at91 ahb:apb:pinctrl@fffff400: found group selector 4 for usart0-0 [ 1.636666] pinctrl-at91 ahb:apb:pinctrl@fffff400: found group selector 5 for usart0_rts-0
[    1.636666] at91_usart_mode f801c000.serial: no init pinctrl state
[ 1.636666] pinctrl-at91 ahb:apb:pinctrl@fffff400: enable function usart0 group usart0-0 [ 1.636666] pinctrl-at91 ahb:apb:pinctrl@fffff400: enable function usart0 group usart0_rts-0
[    1.639999] at91_usart_mode f801c000.serial: no sleep pinctrl state
[    1.643333] at91_usart_mode f801c000.serial: no idle pinctrl state
[ 1.643333] Registering platform device 'atmel_usart_serial.1.auto'. Parent at f801c000.serial
[    1.643333] device: 'atmel_usart_serial.1.auto': device_add
[    1.643333] bus: 'platform': add device atmel_usart_serial.1.auto
[ 1.643333] bus: 'platform': __driver_probe_device: matched device atmel_usart_serial.1.auto with driver atmel_usart_serial [ 1.643333] bus: 'platform': really_probe: probing driver atmel_usart_serial with device atmel_usart_serial.1.auto [ 1.643333] atmel_usart_serial atmel_usart_serial.1.auto: no of_node; not parsing pinctrl DT [ 1.643333] atmel_usart_serial atmel_usart_serial.1.auto: no default pinctrl state [ 1.643333] atmel_usart_serial atmel_usart_serial.1.auto: GPIO lookup for consumer rs485-term [ 1.643333] atmel_usart_serial atmel_usart_serial.1.auto: using device tree for GPIO lookup [ 1.646666] atmel_usart_serial atmel_usart_serial.1.auto: using lookup tables for GPIO lookup [ 1.646666] atmel_usart_serial atmel_usart_serial.1.auto: No GPIO consumer rs485-term found [ 1.649999] atmel_usart_serial.1.auto: ttyS2 at MMIO 0xf801c000 (irq = 24, base_baud = 8333333) is a ATMEL_SERIAL [ 1.656666] driver: 'atmel_usart_serial': driver_bound: bound to device 'atmel_usart_serial.1.auto' [ 1.656666] bus: 'platform': really_probe: bound device atmel_usart_serial.1.auto to driver atmel_usart_serial [ 1.656666] driver: 'at91_usart_mode': driver_bound: bound to device 'f801c000.serial' [ 1.656666] bus: 'platform': really_probe: bound device f801c000.serial to driver at91_usart_mode

[ 41.606666] atmel_usart_serial atmel_usart_serial.1.auto: using dma0chan6 for rx DMA transfers [ 41.613333] atmel_usart_serial atmel_usart_serial.1.auto: using dma0chan7 for tx DMA transfers

With kernel 4.5 spaces are there too, but shorter and less frequent.
Thanks for any help,
Jiri



[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux