mirror of https://github.com/proxmox/mirror_qemu
serial: fix DLL writes
Commitmaster0147883450
tries to handle word-sized writes to DLL/DLH, but due to a typo, this patch is causing tracebacks in all Linux kernels running the PXA serial driver, due to an unexpected DLL register value. Here is the surrounding code from drivers/tty/serial/pxa.c: serial_out(up, UART_DLL, quot & 0xff); /* LS of divisor */ /* * work around Errata #75 according to Intel(R) PXA27x * Processor Family Specification Update (Nov 2005) */ dll = serial_in(up, UART_DLL); WARN_ON(dll != (quot & 0xff)); // <-- warning Reported-by: Guenter Roeck <linux@roeck-us.net> Tested-by: Guenter Roeck <linux@roeck-us.net> Fixes:0147883450
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
parent
35f7f3fb5c
commit
61a9346f60
|
@ -345,9 +345,9 @@ static void serial_ioport_write(void *opaque, hwaddr addr, uint64_t val,
|
||||||
default:
|
default:
|
||||||
case 0:
|
case 0:
|
||||||
if (s->lcr & UART_LCR_DLAB) {
|
if (s->lcr & UART_LCR_DLAB) {
|
||||||
if (size == 2) {
|
if (size == 1) {
|
||||||
s->divider = (s->divider & 0xff00) | val;
|
s->divider = (s->divider & 0xff00) | val;
|
||||||
} else if (size == 4) {
|
} else {
|
||||||
s->divider = val;
|
s->divider = val;
|
||||||
}
|
}
|
||||||
serial_update_parameters(s);
|
serial_update_parameters(s);
|
||||||
|
|
Loading…
Reference in New Issue