Thanks to visit codestin.com
Credit goes to github.com

Skip to content

UART with CTS handshake locks up in latest (4.1.16) and earlier kernels #1280

@Vlad-Apostolov

Description

@Vlad-Apostolov

When using the UART to continuously transmit data while changing often the CTS input, the UART locks up and stops transmitting. I was able to easily reproduce the problem with the WS2812B LED interface chip here:
https://www.kickstarter.com/projects/1338646202/simple-ws2812b-led-interface-controller-chip
when using it in Example 5. I managed to reproduce the problem with kernels 3.6.11 and 4.1.16.
I investigated the issue and found out that the kernel requires cts_event_workaround variable in the vendor_arm structure in amba-pl011.c to be initialized to true.
This issue has been reported and addressed for Linaro platforms in the past:
https://patches.linaro.org/1837/
https://patches.linaro.org/7461/
I built the 4.1.16 kernel with this fix and couldn’t reproduce the problem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions