• Graf Yang's avatar
    Blackfin Serial Driver: fix bug - SIR driver stop receiving randomly · 80d5c474
    Graf Yang authored
    Bug description:
    The IRDA receiver may can't receiving any more after processed some signals.
    
    To duplicate this issue is put three IRDA devices together, one blackfin,
    two none blackfin, they will detect each other. Let one none blackfin devices
    irdaping the blackfin devices, when it stopped print out ping information,
    it is the time that blackfin stoped receiving, the time is random.
    
    The related register bit is OK, the other devices is sending data continuously.
    But no interrupt come.
    
    Fixing:
    I tried Michael's suggestion that request the UARTx error interrupt, and reset
    the IRDA when found FE error. This method helps much, but it can't completely
    avoid stop.
    
    Reset the IRDA before every time sending the data is more safe.
    Signed-off-by: default avatarGraf Yang <graf.yang@analog.com>
    Signed-off-by: default avatarBryan Wu <cooloney@kernel.org>
    Signed-off-by: default avatarAlan Cox <alan@redhat.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    80d5c474
bfin_5xx.c 31.7 KB