Procházet zdrojové kódy

Kernel: Swap baud rate divisor registers in SerialDevice::set_baud

These were accidentally the wrong way around (LSB part of the divisor
into the MSB register, MSB part of the divisor into the LSB register)
as can be seen in the specification (and in the comments themselves)
Idan Horowitz před 4 roky
rodič
revize
be57c424f3
1 změnil soubory, kde provedl 2 přidání a 2 odebrání
  1. 2 2
      Kernel/Devices/SerialDevice.cpp

+ 2 - 2
Kernel/Devices/SerialDevice.cpp

@@ -87,8 +87,8 @@ void SerialDevice::set_baud(Baud baud)
     m_baud = baud;
 
     IO::out8(m_base_addr + 3, IO::in8(m_base_addr + 3) | 0x80); // turn on DLAB
-    IO::out8(m_base_addr + 0, ((u8)(baud)) >> 2);               // lower half of divisor
-    IO::out8(m_base_addr + 1, ((u8)(baud)) & 0xff);             // upper half of divisor
+    IO::out8(m_base_addr + 0, ((u8)(baud)) & 0xff);             // lower half of divisor
+    IO::out8(m_base_addr + 1, ((u8)(baud)) >> 2);               // upper half of divisor
     IO::out8(m_base_addr + 3, IO::in8(m_base_addr + 3) & 0x7f); // turn off DLAB
 }