@@ -321,14 +321,19 @@ static void usa26_indat_callback(struct urb *urb)
321
321
/* some bytes had errors, every byte has status */
322
322
dev_dbg (& port -> dev , "%s - RX error!!!!\n" , __func__ );
323
323
for (i = 0 ; i + 1 < urb -> actual_length ; i += 2 ) {
324
- int stat = data [i ], flag = 0 ;
325
- if ( stat & RXERROR_OVERRUN )
326
- flag |= TTY_OVERRUN ;
327
- if (stat & RXERROR_FRAMING )
328
- flag |= TTY_FRAME ;
329
- if ( stat & RXERROR_PARITY )
330
- flag |= TTY_PARITY ;
324
+ int stat = data [i ];
325
+ int flag = TTY_NORMAL ;
326
+
327
+ if (stat & RXERROR_OVERRUN ) {
328
+ tty_insert_flip_char ( & port -> port , 0 ,
329
+ TTY_OVERRUN );
330
+ }
331
331
/* XXX should handle break (0x10) */
332
+ if (stat & RXERROR_PARITY )
333
+ flag = TTY_PARITY ;
334
+ else if (stat & RXERROR_FRAMING )
335
+ flag = TTY_FRAME ;
336
+
332
337
tty_insert_flip_char (& port -> port , data [i + 1 ],
333
338
flag );
334
339
}
@@ -649,14 +654,19 @@ static void usa49_indat_callback(struct urb *urb)
649
654
} else {
650
655
/* some bytes had errors, every byte has status */
651
656
for (i = 0 ; i + 1 < urb -> actual_length ; i += 2 ) {
652
- int stat = data [i ], flag = 0 ;
653
- if ( stat & RXERROR_OVERRUN )
654
- flag |= TTY_OVERRUN ;
655
- if (stat & RXERROR_FRAMING )
656
- flag |= TTY_FRAME ;
657
- if ( stat & RXERROR_PARITY )
658
- flag |= TTY_PARITY ;
657
+ int stat = data [i ];
658
+ int flag = TTY_NORMAL ;
659
+
660
+ if (stat & RXERROR_OVERRUN ) {
661
+ tty_insert_flip_char ( & port -> port , 0 ,
662
+ TTY_OVERRUN );
663
+ }
659
664
/* XXX should handle break (0x10) */
665
+ if (stat & RXERROR_PARITY )
666
+ flag = TTY_PARITY ;
667
+ else if (stat & RXERROR_FRAMING )
668
+ flag = TTY_FRAME ;
669
+
660
670
tty_insert_flip_char (& port -> port , data [i + 1 ],
661
671
flag );
662
672
}
@@ -713,15 +723,19 @@ static void usa49wg_indat_callback(struct urb *urb)
713
723
*/
714
724
for (x = 0 ; x + 1 < len &&
715
725
i + 1 < urb -> actual_length ; x += 2 ) {
716
- int stat = data [i ], flag = 0 ;
726
+ int stat = data [i ];
727
+ int flag = TTY_NORMAL ;
717
728
718
- if (stat & RXERROR_OVERRUN )
719
- flag |= TTY_OVERRUN ;
720
- if (stat & RXERROR_FRAMING )
721
- flag |= TTY_FRAME ;
722
- if (stat & RXERROR_PARITY )
723
- flag |= TTY_PARITY ;
729
+ if (stat & RXERROR_OVERRUN ) {
730
+ tty_insert_flip_char (& port -> port , 0 ,
731
+ TTY_OVERRUN );
732
+ }
724
733
/* XXX should handle break (0x10) */
734
+ if (stat & RXERROR_PARITY )
735
+ flag = TTY_PARITY ;
736
+ else if (stat & RXERROR_FRAMING )
737
+ flag = TTY_FRAME ;
738
+
725
739
tty_insert_flip_char (& port -> port , data [i + 1 ],
726
740
flag );
727
741
i += 2 ;
@@ -784,14 +798,20 @@ static void usa90_indat_callback(struct urb *urb)
784
798
/* some bytes had errors, every byte has status */
785
799
dev_dbg (& port -> dev , "%s - RX error!!!!\n" , __func__ );
786
800
for (i = 0 ; i + 1 < urb -> actual_length ; i += 2 ) {
787
- int stat = data [i ], flag = 0 ;
788
- if (stat & RXERROR_OVERRUN )
789
- flag |= TTY_OVERRUN ;
790
- if (stat & RXERROR_FRAMING )
791
- flag |= TTY_FRAME ;
792
- if (stat & RXERROR_PARITY )
793
- flag |= TTY_PARITY ;
801
+ int stat = data [i ];
802
+ int flag = TTY_NORMAL ;
803
+
804
+ if (stat & RXERROR_OVERRUN ) {
805
+ tty_insert_flip_char (
806
+ & port -> port , 0 ,
807
+ TTY_OVERRUN );
808
+ }
794
809
/* XXX should handle break (0x10) */
810
+ if (stat & RXERROR_PARITY )
811
+ flag = TTY_PARITY ;
812
+ else if (stat & RXERROR_FRAMING )
813
+ flag = TTY_FRAME ;
814
+
795
815
tty_insert_flip_char (& port -> port ,
796
816
data [i + 1 ], flag );
797
817
}
0 commit comments