Fix incorrect XMEGA serial driver stream functions (thanks to William Patterson).
[pub/lufa.git] / LUFA / Drivers / Peripheral / XMEGA / Serial_XMEGA.c
index 4e29357..ff3ac0d 100644 (file)
@@ -95,19 +95,20 @@ void Serial_SendData(USART_t* const USART,
          Serial_SendByte(USART, *((uint8_t*)Buffer++));
 }
 
-void Serial_CreateStream(FILE* Stream)
+void Serial_CreateStream(USART_t* USART, FILE* Stream)
 {
        if (!(Stream))
        {
                Stream = &USARTSerialStream;
                stdin  = Stream;
                stdout = Stream;
-       }
+    }
 
-       *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar, _FDEV_SETUP_RW);
+    *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar, _FDEV_SETUP_RW);
+    fdev_set_udata(Stream, USART);
 }
 
-void Serial_CreateBlockingStream(FILE* Stream)
+void Serial_CreateBlockingStream(USART_t* USART, FILE* Stream)
 {
        if (!(Stream))
        {
@@ -116,7 +117,8 @@ void Serial_CreateBlockingStream(FILE* Stream)
                stdout = Stream;
        }
 
-       *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar_Blocking, _FDEV_SETUP_RW);
+    *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar_Blocking, _FDEV_SETUP_RW);
+    fdev_set_udata(Stream, USART);
 }
 
 #endif